// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/unittest_lite.proto

#ifndef PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5flite_2eproto
#define PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5flite_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/map.h>  // IWYU pragma: export
#include <google/protobuf/map_entry_lite.h>
#include <google/protobuf/map_field_lite.h>
#include <google/protobuf/generated_enum_util.h>
#include <google/protobuf/unittest_import_lite.pb.h>
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2funittest_5flite_2eproto 

namespace protobuf_google_2fprotobuf_2funittest_5flite_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[30];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
}  // namespace protobuf_google_2fprotobuf_2funittest_5flite_2eproto
namespace protobuf_unittest {
class ForeignMessageLite;
class ForeignMessageLiteDefaultTypeInternal;
extern ForeignMessageLiteDefaultTypeInternal _ForeignMessageLite_default_instance_;
class NonPackedFixed32;
class NonPackedFixed32DefaultTypeInternal;
extern NonPackedFixed32DefaultTypeInternal _NonPackedFixed32_default_instance_;
class NonPackedInt32;
class NonPackedInt32DefaultTypeInternal;
extern NonPackedInt32DefaultTypeInternal _NonPackedInt32_default_instance_;
class OptionalGroup_extension_lite;
class OptionalGroup_extension_liteDefaultTypeInternal;
extern OptionalGroup_extension_liteDefaultTypeInternal _OptionalGroup_extension_lite_default_instance_;
class PackedFixed32;
class PackedFixed32DefaultTypeInternal;
extern PackedFixed32DefaultTypeInternal _PackedFixed32_default_instance_;
class PackedInt32;
class PackedInt32DefaultTypeInternal;
extern PackedInt32DefaultTypeInternal _PackedInt32_default_instance_;
class RepeatedGroup_extension_lite;
class RepeatedGroup_extension_liteDefaultTypeInternal;
extern RepeatedGroup_extension_liteDefaultTypeInternal _RepeatedGroup_extension_lite_default_instance_;
class TestAllExtensionsLite;
class TestAllExtensionsLiteDefaultTypeInternal;
extern TestAllExtensionsLiteDefaultTypeInternal _TestAllExtensionsLite_default_instance_;
class TestAllTypesLite;
class TestAllTypesLiteDefaultTypeInternal;
extern TestAllTypesLiteDefaultTypeInternal _TestAllTypesLite_default_instance_;
class TestAllTypesLite_NestedMessage;
class TestAllTypesLite_NestedMessageDefaultTypeInternal;
extern TestAllTypesLite_NestedMessageDefaultTypeInternal _TestAllTypesLite_NestedMessage_default_instance_;
class TestAllTypesLite_OptionalGroup;
class TestAllTypesLite_OptionalGroupDefaultTypeInternal;
extern TestAllTypesLite_OptionalGroupDefaultTypeInternal _TestAllTypesLite_OptionalGroup_default_instance_;
class TestAllTypesLite_RepeatedGroup;
class TestAllTypesLite_RepeatedGroupDefaultTypeInternal;
extern TestAllTypesLite_RepeatedGroupDefaultTypeInternal _TestAllTypesLite_RepeatedGroup_default_instance_;
class TestDeprecatedLite;
class TestDeprecatedLiteDefaultTypeInternal;
extern TestDeprecatedLiteDefaultTypeInternal _TestDeprecatedLite_default_instance_;
class TestEmptyMessageLite;
class TestEmptyMessageLiteDefaultTypeInternal;
extern TestEmptyMessageLiteDefaultTypeInternal _TestEmptyMessageLite_default_instance_;
class TestEmptyMessageWithExtensionsLite;
class TestEmptyMessageWithExtensionsLiteDefaultTypeInternal;
extern TestEmptyMessageWithExtensionsLiteDefaultTypeInternal _TestEmptyMessageWithExtensionsLite_default_instance_;
class TestHugeFieldNumbersLite;
class TestHugeFieldNumbersLiteDefaultTypeInternal;
extern TestHugeFieldNumbersLiteDefaultTypeInternal _TestHugeFieldNumbersLite_default_instance_;
class TestHugeFieldNumbersLite_OptionalGroup;
class TestHugeFieldNumbersLite_OptionalGroupDefaultTypeInternal;
extern TestHugeFieldNumbersLite_OptionalGroupDefaultTypeInternal _TestHugeFieldNumbersLite_OptionalGroup_default_instance_;
class TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse;
class TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUseDefaultTypeInternal;
extern TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUseDefaultTypeInternal _TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse_default_instance_;
class TestNestedExtensionLite;
class TestNestedExtensionLiteDefaultTypeInternal;
extern TestNestedExtensionLiteDefaultTypeInternal _TestNestedExtensionLite_default_instance_;
class TestOneofParsingLite;
class TestOneofParsingLiteDefaultTypeInternal;
extern TestOneofParsingLiteDefaultTypeInternal _TestOneofParsingLite_default_instance_;
class TestPackedExtensionsLite;
class TestPackedExtensionsLiteDefaultTypeInternal;
extern TestPackedExtensionsLiteDefaultTypeInternal _TestPackedExtensionsLite_default_instance_;
class TestPackedTypesLite;
class TestPackedTypesLiteDefaultTypeInternal;
extern TestPackedTypesLiteDefaultTypeInternal _TestPackedTypesLite_default_instance_;
class TestParsingMergeLite;
class TestParsingMergeLiteDefaultTypeInternal;
extern TestParsingMergeLiteDefaultTypeInternal _TestParsingMergeLite_default_instance_;
class TestParsingMergeLite_OptionalGroup;
class TestParsingMergeLite_OptionalGroupDefaultTypeInternal;
extern TestParsingMergeLite_OptionalGroupDefaultTypeInternal _TestParsingMergeLite_OptionalGroup_default_instance_;
class TestParsingMergeLite_RepeatedFieldsGenerator;
class TestParsingMergeLite_RepeatedFieldsGeneratorDefaultTypeInternal;
extern TestParsingMergeLite_RepeatedFieldsGeneratorDefaultTypeInternal _TestParsingMergeLite_RepeatedFieldsGenerator_default_instance_;
class TestParsingMergeLite_RepeatedFieldsGenerator_Group1;
class TestParsingMergeLite_RepeatedFieldsGenerator_Group1DefaultTypeInternal;
extern TestParsingMergeLite_RepeatedFieldsGenerator_Group1DefaultTypeInternal _TestParsingMergeLite_RepeatedFieldsGenerator_Group1_default_instance_;
class TestParsingMergeLite_RepeatedFieldsGenerator_Group2;
class TestParsingMergeLite_RepeatedFieldsGenerator_Group2DefaultTypeInternal;
extern TestParsingMergeLite_RepeatedFieldsGenerator_Group2DefaultTypeInternal _TestParsingMergeLite_RepeatedFieldsGenerator_Group2_default_instance_;
class TestParsingMergeLite_RepeatedGroup;
class TestParsingMergeLite_RepeatedGroupDefaultTypeInternal;
extern TestParsingMergeLite_RepeatedGroupDefaultTypeInternal _TestParsingMergeLite_RepeatedGroup_default_instance_;
class V1MessageLite;
class V1MessageLiteDefaultTypeInternal;
extern V1MessageLiteDefaultTypeInternal _V1MessageLite_default_instance_;
class V2MessageLite;
class V2MessageLiteDefaultTypeInternal;
extern V2MessageLiteDefaultTypeInternal _V2MessageLite_default_instance_;
}  // namespace protobuf_unittest
namespace google {
namespace protobuf {
template<> ::protobuf_unittest::ForeignMessageLite* Arena::CreateMaybeMessage<::protobuf_unittest::ForeignMessageLite>(Arena*);
template<> ::protobuf_unittest::NonPackedFixed32* Arena::CreateMaybeMessage<::protobuf_unittest::NonPackedFixed32>(Arena*);
template<> ::protobuf_unittest::NonPackedInt32* Arena::CreateMaybeMessage<::protobuf_unittest::NonPackedInt32>(Arena*);
template<> ::protobuf_unittest::OptionalGroup_extension_lite* Arena::CreateMaybeMessage<::protobuf_unittest::OptionalGroup_extension_lite>(Arena*);
template<> ::protobuf_unittest::PackedFixed32* Arena::CreateMaybeMessage<::protobuf_unittest::PackedFixed32>(Arena*);
template<> ::protobuf_unittest::PackedInt32* Arena::CreateMaybeMessage<::protobuf_unittest::PackedInt32>(Arena*);
template<> ::protobuf_unittest::RepeatedGroup_extension_lite* Arena::CreateMaybeMessage<::protobuf_unittest::RepeatedGroup_extension_lite>(Arena*);
template<> ::protobuf_unittest::TestAllExtensionsLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestAllExtensionsLite>(Arena*);
template<> ::protobuf_unittest::TestAllTypesLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(Arena*);
template<> ::protobuf_unittest::TestAllTypesLite_NestedMessage* Arena::CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite_NestedMessage>(Arena*);
template<> ::protobuf_unittest::TestAllTypesLite_OptionalGroup* Arena::CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite_OptionalGroup>(Arena*);
template<> ::protobuf_unittest::TestAllTypesLite_RepeatedGroup* Arena::CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite_RepeatedGroup>(Arena*);
template<> ::protobuf_unittest::TestDeprecatedLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestDeprecatedLite>(Arena*);
template<> ::protobuf_unittest::TestEmptyMessageLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestEmptyMessageLite>(Arena*);
template<> ::protobuf_unittest::TestEmptyMessageWithExtensionsLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestEmptyMessageWithExtensionsLite>(Arena*);
template<> ::protobuf_unittest::TestHugeFieldNumbersLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestHugeFieldNumbersLite>(Arena*);
template<> ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* Arena::CreateMaybeMessage<::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup>(Arena*);
template<> ::protobuf_unittest::TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse* Arena::CreateMaybeMessage<::protobuf_unittest::TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse>(Arena*);
template<> ::protobuf_unittest::TestNestedExtensionLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestNestedExtensionLite>(Arena*);
template<> ::protobuf_unittest::TestOneofParsingLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestOneofParsingLite>(Arena*);
template<> ::protobuf_unittest::TestPackedExtensionsLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestPackedExtensionsLite>(Arena*);
template<> ::protobuf_unittest::TestPackedTypesLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestPackedTypesLite>(Arena*);
template<> ::protobuf_unittest::TestParsingMergeLite* Arena::CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite>(Arena*);
template<> ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* Arena::CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite_OptionalGroup>(Arena*);
template<> ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator* Arena::CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator>(Arena*);
template<> ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1* Arena::CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1>(Arena*);
template<> ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2* Arena::CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2>(Arena*);
template<> ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup* Arena::CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite_RepeatedGroup>(Arena*);
template<> ::protobuf_unittest::V1MessageLite* Arena::CreateMaybeMessage<::protobuf_unittest::V1MessageLite>(Arena*);
template<> ::protobuf_unittest::V2MessageLite* Arena::CreateMaybeMessage<::protobuf_unittest::V2MessageLite>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace protobuf_unittest {

enum TestAllTypesLite_NestedEnum {
  TestAllTypesLite_NestedEnum_FOO = 1,
  TestAllTypesLite_NestedEnum_BAR = 2,
  TestAllTypesLite_NestedEnum_BAZ = 3
};
bool TestAllTypesLite_NestedEnum_IsValid(int value);
const TestAllTypesLite_NestedEnum TestAllTypesLite_NestedEnum_NestedEnum_MIN = TestAllTypesLite_NestedEnum_FOO;
const TestAllTypesLite_NestedEnum TestAllTypesLite_NestedEnum_NestedEnum_MAX = TestAllTypesLite_NestedEnum_BAZ;
const int TestAllTypesLite_NestedEnum_NestedEnum_ARRAYSIZE = TestAllTypesLite_NestedEnum_NestedEnum_MAX + 1;

enum ForeignEnumLite {
  FOREIGN_LITE_FOO = 4,
  FOREIGN_LITE_BAR = 5,
  FOREIGN_LITE_BAZ = 6
};
bool ForeignEnumLite_IsValid(int value);
const ForeignEnumLite ForeignEnumLite_MIN = FOREIGN_LITE_FOO;
const ForeignEnumLite ForeignEnumLite_MAX = FOREIGN_LITE_BAZ;
const int ForeignEnumLite_ARRAYSIZE = ForeignEnumLite_MAX + 1;

enum V1EnumLite {
  V1_FIRST = 1
};
bool V1EnumLite_IsValid(int value);
const V1EnumLite V1EnumLite_MIN = V1_FIRST;
const V1EnumLite V1EnumLite_MAX = V1_FIRST;
const int V1EnumLite_ARRAYSIZE = V1EnumLite_MAX + 1;

enum V2EnumLite {
  V2_FIRST = 1,
  V2_SECOND = 2
};
bool V2EnumLite_IsValid(int value);
const V2EnumLite V2EnumLite_MIN = V2_FIRST;
const V2EnumLite V2EnumLite_MAX = V2_SECOND;
const int V2EnumLite_ARRAYSIZE = V2EnumLite_MAX + 1;

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

class TestAllTypesLite_NestedMessage : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestAllTypesLite.NestedMessage) */ {
 public:
  TestAllTypesLite_NestedMessage();
  virtual ~TestAllTypesLite_NestedMessage();

  TestAllTypesLite_NestedMessage(const TestAllTypesLite_NestedMessage& from);

  inline TestAllTypesLite_NestedMessage& operator=(const TestAllTypesLite_NestedMessage& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestAllTypesLite_NestedMessage(TestAllTypesLite_NestedMessage&& from) noexcept
    : TestAllTypesLite_NestedMessage() {
    *this = ::std::move(from);
  }

  inline TestAllTypesLite_NestedMessage& operator=(TestAllTypesLite_NestedMessage&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestAllTypesLite_NestedMessage& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestAllTypesLite_NestedMessage* internal_default_instance() {
    return reinterpret_cast<const TestAllTypesLite_NestedMessage*>(
               &_TestAllTypesLite_NestedMessage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(TestAllTypesLite_NestedMessage* other);
  friend void swap(TestAllTypesLite_NestedMessage& a, TestAllTypesLite_NestedMessage& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestAllTypesLite_NestedMessage* New() const final {
    return CreateMaybeMessage<TestAllTypesLite_NestedMessage>(NULL);
  }

  TestAllTypesLite_NestedMessage* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllTypesLite_NestedMessage>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllTypesLite_NestedMessage& from);
  void MergeFrom(const TestAllTypesLite_NestedMessage& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllTypesLite_NestedMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int64 cc = 2;
  bool has_cc() const;
  void clear_cc();
  static const int kCcFieldNumber = 2;
  ::google::protobuf::int64 cc() const;
  void set_cc(::google::protobuf::int64 value);

  // optional int32 bb = 1;
  bool has_bb() const;
  void clear_bb();
  static const int kBbFieldNumber = 1;
  ::google::protobuf::int32 bb() const;
  void set_bb(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypesLite.NestedMessage)
 private:
  void set_has_bb();
  void clear_has_bb();
  void set_has_cc();
  void clear_has_cc();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int64 cc_;
  ::google::protobuf::int32 bb_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestAllTypesLite_OptionalGroup : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestAllTypesLite.OptionalGroup) */ {
 public:
  TestAllTypesLite_OptionalGroup();
  virtual ~TestAllTypesLite_OptionalGroup();

  TestAllTypesLite_OptionalGroup(const TestAllTypesLite_OptionalGroup& from);

  inline TestAllTypesLite_OptionalGroup& operator=(const TestAllTypesLite_OptionalGroup& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestAllTypesLite_OptionalGroup(TestAllTypesLite_OptionalGroup&& from) noexcept
    : TestAllTypesLite_OptionalGroup() {
    *this = ::std::move(from);
  }

  inline TestAllTypesLite_OptionalGroup& operator=(TestAllTypesLite_OptionalGroup&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestAllTypesLite_OptionalGroup& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestAllTypesLite_OptionalGroup* internal_default_instance() {
    return reinterpret_cast<const TestAllTypesLite_OptionalGroup*>(
               &_TestAllTypesLite_OptionalGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  void Swap(TestAllTypesLite_OptionalGroup* other);
  friend void swap(TestAllTypesLite_OptionalGroup& a, TestAllTypesLite_OptionalGroup& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestAllTypesLite_OptionalGroup* New() const final {
    return CreateMaybeMessage<TestAllTypesLite_OptionalGroup>(NULL);
  }

  TestAllTypesLite_OptionalGroup* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllTypesLite_OptionalGroup>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllTypesLite_OptionalGroup& from);
  void MergeFrom(const TestAllTypesLite_OptionalGroup& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllTypesLite_OptionalGroup* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 a = 17;
  bool has_a() const;
  void clear_a();
  static const int kAFieldNumber = 17;
  ::google::protobuf::int32 a() const;
  void set_a(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypesLite.OptionalGroup)
 private:
  void set_has_a();
  void clear_has_a();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 a_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestAllTypesLite_RepeatedGroup : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestAllTypesLite.RepeatedGroup) */ {
 public:
  TestAllTypesLite_RepeatedGroup();
  virtual ~TestAllTypesLite_RepeatedGroup();

  TestAllTypesLite_RepeatedGroup(const TestAllTypesLite_RepeatedGroup& from);

  inline TestAllTypesLite_RepeatedGroup& operator=(const TestAllTypesLite_RepeatedGroup& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestAllTypesLite_RepeatedGroup(TestAllTypesLite_RepeatedGroup&& from) noexcept
    : TestAllTypesLite_RepeatedGroup() {
    *this = ::std::move(from);
  }

  inline TestAllTypesLite_RepeatedGroup& operator=(TestAllTypesLite_RepeatedGroup&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestAllTypesLite_RepeatedGroup& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestAllTypesLite_RepeatedGroup* internal_default_instance() {
    return reinterpret_cast<const TestAllTypesLite_RepeatedGroup*>(
               &_TestAllTypesLite_RepeatedGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  void Swap(TestAllTypesLite_RepeatedGroup* other);
  friend void swap(TestAllTypesLite_RepeatedGroup& a, TestAllTypesLite_RepeatedGroup& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestAllTypesLite_RepeatedGroup* New() const final {
    return CreateMaybeMessage<TestAllTypesLite_RepeatedGroup>(NULL);
  }

  TestAllTypesLite_RepeatedGroup* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllTypesLite_RepeatedGroup>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllTypesLite_RepeatedGroup& from);
  void MergeFrom(const TestAllTypesLite_RepeatedGroup& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllTypesLite_RepeatedGroup* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 a = 47;
  bool has_a() const;
  void clear_a();
  static const int kAFieldNumber = 47;
  ::google::protobuf::int32 a() const;
  void set_a(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypesLite.RepeatedGroup)
 private:
  void set_has_a();
  void clear_has_a();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 a_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestAllTypesLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestAllTypesLite) */ {
 public:
  TestAllTypesLite();
  virtual ~TestAllTypesLite();

  TestAllTypesLite(const TestAllTypesLite& from);

  inline TestAllTypesLite& operator=(const TestAllTypesLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestAllTypesLite(TestAllTypesLite&& from) noexcept
    : TestAllTypesLite() {
    *this = ::std::move(from);
  }

  inline TestAllTypesLite& operator=(TestAllTypesLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestAllTypesLite& default_instance();

  enum OneofFieldCase {
    kOneofUint32 = 111,
    kOneofNestedMessage = 112,
    kOneofString = 113,
    kOneofBytes = 114,
    kOneofLazyNestedMessage = 115,
    ONEOF_FIELD_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestAllTypesLite* internal_default_instance() {
    return reinterpret_cast<const TestAllTypesLite*>(
               &_TestAllTypesLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  void Swap(TestAllTypesLite* other);
  friend void swap(TestAllTypesLite& a, TestAllTypesLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestAllTypesLite* New() const final {
    return CreateMaybeMessage<TestAllTypesLite>(NULL);
  }

  TestAllTypesLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllTypesLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllTypesLite& from);
  void MergeFrom(const TestAllTypesLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllTypesLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef TestAllTypesLite_NestedMessage NestedMessage;
  typedef TestAllTypesLite_OptionalGroup OptionalGroup;
  typedef TestAllTypesLite_RepeatedGroup RepeatedGroup;

  typedef TestAllTypesLite_NestedEnum NestedEnum;
  static const NestedEnum FOO =
    TestAllTypesLite_NestedEnum_FOO;
  static const NestedEnum BAR =
    TestAllTypesLite_NestedEnum_BAR;
  static const NestedEnum BAZ =
    TestAllTypesLite_NestedEnum_BAZ;
  static inline bool NestedEnum_IsValid(int value) {
    return TestAllTypesLite_NestedEnum_IsValid(value);
  }
  static const NestedEnum NestedEnum_MIN =
    TestAllTypesLite_NestedEnum_NestedEnum_MIN;
  static const NestedEnum NestedEnum_MAX =
    TestAllTypesLite_NestedEnum_NestedEnum_MAX;
  static const int NestedEnum_ARRAYSIZE =
    TestAllTypesLite_NestedEnum_NestedEnum_ARRAYSIZE;

  // accessors -------------------------------------------------------

  // repeated int32 repeated_int32 = 31;
  int repeated_int32_size() const;
  void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 31;
  ::google::protobuf::int32 repeated_int32(int index) const;
  void set_repeated_int32(int index, ::google::protobuf::int32 value);
  void add_repeated_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();

  // repeated int64 repeated_int64 = 32;
  int repeated_int64_size() const;
  void clear_repeated_int64();
  static const int kRepeatedInt64FieldNumber = 32;
  ::google::protobuf::int64 repeated_int64(int index) const;
  void set_repeated_int64(int index, ::google::protobuf::int64 value);
  void add_repeated_int64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_int64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_int64();

  // repeated uint32 repeated_uint32 = 33;
  int repeated_uint32_size() const;
  void clear_repeated_uint32();
  static const int kRepeatedUint32FieldNumber = 33;
  ::google::protobuf::uint32 repeated_uint32(int index) const;
  void set_repeated_uint32(int index, ::google::protobuf::uint32 value);
  void add_repeated_uint32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_uint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_uint32();

  // repeated uint64 repeated_uint64 = 34;
  int repeated_uint64_size() const;
  void clear_repeated_uint64();
  static const int kRepeatedUint64FieldNumber = 34;
  ::google::protobuf::uint64 repeated_uint64(int index) const;
  void set_repeated_uint64(int index, ::google::protobuf::uint64 value);
  void add_repeated_uint64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_uint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_uint64();

  // repeated sint32 repeated_sint32 = 35;
  int repeated_sint32_size() const;
  void clear_repeated_sint32();
  static const int kRepeatedSint32FieldNumber = 35;
  ::google::protobuf::int32 repeated_sint32(int index) const;
  void set_repeated_sint32(int index, ::google::protobuf::int32 value);
  void add_repeated_sint32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sint32();

  // repeated sint64 repeated_sint64 = 36;
  int repeated_sint64_size() const;
  void clear_repeated_sint64();
  static const int kRepeatedSint64FieldNumber = 36;
  ::google::protobuf::int64 repeated_sint64(int index) const;
  void set_repeated_sint64(int index, ::google::protobuf::int64 value);
  void add_repeated_sint64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sint64();

  // repeated fixed32 repeated_fixed32 = 37;
  int repeated_fixed32_size() const;
  void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 37;
  ::google::protobuf::uint32 repeated_fixed32(int index) const;
  void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  void add_repeated_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();

  // repeated fixed64 repeated_fixed64 = 38;
  int repeated_fixed64_size() const;
  void clear_repeated_fixed64();
  static const int kRepeatedFixed64FieldNumber = 38;
  ::google::protobuf::uint64 repeated_fixed64(int index) const;
  void set_repeated_fixed64(int index, ::google::protobuf::uint64 value);
  void add_repeated_fixed64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      repeated_fixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_repeated_fixed64();

  // repeated sfixed32 repeated_sfixed32 = 39;
  int repeated_sfixed32_size() const;
  void clear_repeated_sfixed32();
  static const int kRepeatedSfixed32FieldNumber = 39;
  ::google::protobuf::int32 repeated_sfixed32(int index) const;
  void set_repeated_sfixed32(int index, ::google::protobuf::int32 value);
  void add_repeated_sfixed32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_sfixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_sfixed32();

  // repeated sfixed64 repeated_sfixed64 = 40;
  int repeated_sfixed64_size() const;
  void clear_repeated_sfixed64();
  static const int kRepeatedSfixed64FieldNumber = 40;
  ::google::protobuf::int64 repeated_sfixed64(int index) const;
  void set_repeated_sfixed64(int index, ::google::protobuf::int64 value);
  void add_repeated_sfixed64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      repeated_sfixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_repeated_sfixed64();

  // repeated float repeated_float = 41;
  int repeated_float_size() const;
  void clear_repeated_float();
  static const int kRepeatedFloatFieldNumber = 41;
  float repeated_float(int index) const;
  void set_repeated_float(int index, float value);
  void add_repeated_float(float value);
  const ::google::protobuf::RepeatedField< float >&
      repeated_float() const;
  ::google::protobuf::RepeatedField< float >*
      mutable_repeated_float();

  // repeated double repeated_double = 42;
  int repeated_double_size() const;
  void clear_repeated_double();
  static const int kRepeatedDoubleFieldNumber = 42;
  double repeated_double(int index) const;
  void set_repeated_double(int index, double value);
  void add_repeated_double(double value);
  const ::google::protobuf::RepeatedField< double >&
      repeated_double() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_repeated_double();

  // repeated bool repeated_bool = 43;
  int repeated_bool_size() const;
  void clear_repeated_bool();
  static const int kRepeatedBoolFieldNumber = 43;
  bool repeated_bool(int index) const;
  void set_repeated_bool(int index, bool value);
  void add_repeated_bool(bool value);
  const ::google::protobuf::RepeatedField< bool >&
      repeated_bool() const;
  ::google::protobuf::RepeatedField< bool >*
      mutable_repeated_bool();

  // repeated string repeated_string = 44;
  int repeated_string_size() const;
  void clear_repeated_string();
  static const int kRepeatedStringFieldNumber = 44;
  const ::std::string& repeated_string(int index) const;
  ::std::string* mutable_repeated_string(int index);
  void set_repeated_string(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_string(int index, ::std::string&& value);
  #endif
  void set_repeated_string(int index, const char* value);
  void set_repeated_string(int index, const char* value, size_t size);
  ::std::string* add_repeated_string();
  void add_repeated_string(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_string(::std::string&& value);
  #endif
  void add_repeated_string(const char* value);
  void add_repeated_string(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string();

  // repeated bytes repeated_bytes = 45;
  int repeated_bytes_size() const;
  void clear_repeated_bytes();
  static const int kRepeatedBytesFieldNumber = 45;
  const ::std::string& repeated_bytes(int index) const;
  ::std::string* mutable_repeated_bytes(int index);
  void set_repeated_bytes(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_bytes(int index, ::std::string&& value);
  #endif
  void set_repeated_bytes(int index, const char* value);
  void set_repeated_bytes(int index, const void* value, size_t size);
  ::std::string* add_repeated_bytes();
  void add_repeated_bytes(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_bytes(::std::string&& value);
  #endif
  void add_repeated_bytes(const char* value);
  void add_repeated_bytes(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_bytes() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_bytes();

  // repeated group RepeatedGroup = 46 { ... };
  int repeatedgroup_size() const;
  void clear_repeatedgroup();
  static const int kRepeatedgroupFieldNumber = 46;
  ::protobuf_unittest::TestAllTypesLite_RepeatedGroup* mutable_repeatedgroup(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_RepeatedGroup >*
      mutable_repeatedgroup();
  const ::protobuf_unittest::TestAllTypesLite_RepeatedGroup& repeatedgroup(int index) const;
  ::protobuf_unittest::TestAllTypesLite_RepeatedGroup* add_repeatedgroup();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_RepeatedGroup >&
      repeatedgroup() const;

  // repeated .protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message = 48;
  int repeated_nested_message_size() const;
  void clear_repeated_nested_message();
  static const int kRepeatedNestedMessageFieldNumber = 48;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* mutable_repeated_nested_message(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >*
      mutable_repeated_nested_message();
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& repeated_nested_message(int index) const;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* add_repeated_nested_message();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >&
      repeated_nested_message() const;

  // repeated .protobuf_unittest.ForeignMessageLite repeated_foreign_message = 49;
  int repeated_foreign_message_size() const;
  void clear_repeated_foreign_message();
  static const int kRepeatedForeignMessageFieldNumber = 49;
  ::protobuf_unittest::ForeignMessageLite* mutable_repeated_foreign_message(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessageLite >*
      mutable_repeated_foreign_message();
  const ::protobuf_unittest::ForeignMessageLite& repeated_foreign_message(int index) const;
  ::protobuf_unittest::ForeignMessageLite* add_repeated_foreign_message();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessageLite >&
      repeated_foreign_message() const;

  // repeated .protobuf_unittest_import.ImportMessageLite repeated_import_message = 50;
  int repeated_import_message_size() const;
  void clear_repeated_import_message();
  static const int kRepeatedImportMessageFieldNumber = 50;
  ::protobuf_unittest_import::ImportMessageLite* mutable_repeated_import_message(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessageLite >*
      mutable_repeated_import_message();
  const ::protobuf_unittest_import::ImportMessageLite& repeated_import_message(int index) const;
  ::protobuf_unittest_import::ImportMessageLite* add_repeated_import_message();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessageLite >&
      repeated_import_message() const;

  // repeated .protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum = 51;
  int repeated_nested_enum_size() const;
  void clear_repeated_nested_enum();
  static const int kRepeatedNestedEnumFieldNumber = 51;
  ::protobuf_unittest::TestAllTypesLite_NestedEnum repeated_nested_enum(int index) const;
  void set_repeated_nested_enum(int index, ::protobuf_unittest::TestAllTypesLite_NestedEnum value);
  void add_repeated_nested_enum(::protobuf_unittest::TestAllTypesLite_NestedEnum value);
  const ::google::protobuf::RepeatedField<int>& repeated_nested_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_repeated_nested_enum();

  // repeated .protobuf_unittest.ForeignEnumLite repeated_foreign_enum = 52;
  int repeated_foreign_enum_size() const;
  void clear_repeated_foreign_enum();
  static const int kRepeatedForeignEnumFieldNumber = 52;
  ::protobuf_unittest::ForeignEnumLite repeated_foreign_enum(int index) const;
  void set_repeated_foreign_enum(int index, ::protobuf_unittest::ForeignEnumLite value);
  void add_repeated_foreign_enum(::protobuf_unittest::ForeignEnumLite value);
  const ::google::protobuf::RepeatedField<int>& repeated_foreign_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_repeated_foreign_enum();

  // repeated .protobuf_unittest_import.ImportEnumLite repeated_import_enum = 53;
  int repeated_import_enum_size() const;
  void clear_repeated_import_enum();
  static const int kRepeatedImportEnumFieldNumber = 53;
  ::protobuf_unittest_import::ImportEnumLite repeated_import_enum(int index) const;
  void set_repeated_import_enum(int index, ::protobuf_unittest_import::ImportEnumLite value);
  void add_repeated_import_enum(::protobuf_unittest_import::ImportEnumLite value);
  const ::google::protobuf::RepeatedField<int>& repeated_import_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_repeated_import_enum();

  // repeated string repeated_string_piece = 54 [ctype = STRING_PIECE];
  int repeated_string_piece_size() const;
  void clear_repeated_string_piece();
  static const int kRepeatedStringPieceFieldNumber = 54;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& repeated_string_piece(int index) const;
  ::std::string* mutable_repeated_string_piece(int index);
  void set_repeated_string_piece(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_string_piece(int index, ::std::string&& value);
  #endif
  void set_repeated_string_piece(int index, const char* value);
  void set_repeated_string_piece(int index, const char* value, size_t size);
  ::std::string* add_repeated_string_piece();
  void add_repeated_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_string_piece(::std::string&& value);
  #endif
  void add_repeated_string_piece(const char* value);
  void add_repeated_string_piece(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_string_piece() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_string_piece();
 public:

  // repeated string repeated_cord = 55 [ctype = CORD];
  int repeated_cord_size() const;
  void clear_repeated_cord();
  static const int kRepeatedCordFieldNumber = 55;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& repeated_cord(int index) const;
  ::std::string* mutable_repeated_cord(int index);
  void set_repeated_cord(int index, const ::std::string& value);
  #if LANG_CXX11
  void set_repeated_cord(int index, ::std::string&& value);
  #endif
  void set_repeated_cord(int index, const char* value);
  void set_repeated_cord(int index, const char* value, size_t size);
  ::std::string* add_repeated_cord();
  void add_repeated_cord(const ::std::string& value);
  #if LANG_CXX11
  void add_repeated_cord(::std::string&& value);
  #endif
  void add_repeated_cord(const char* value);
  void add_repeated_cord(const char* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& repeated_cord() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_repeated_cord();
 public:

  // repeated .protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message = 57 [lazy = true];
  int repeated_lazy_message_size() const;
  void clear_repeated_lazy_message();
  static const int kRepeatedLazyMessageFieldNumber = 57;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* mutable_repeated_lazy_message(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >*
      mutable_repeated_lazy_message();
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& repeated_lazy_message(int index) const;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* add_repeated_lazy_message();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >&
      repeated_lazy_message() const;

  // optional string optional_string = 14;
  bool has_optional_string() const;
  void clear_optional_string();
  static const int kOptionalStringFieldNumber = 14;
  const ::std::string& optional_string() const;
  void set_optional_string(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_string(::std::string&& value);
  #endif
  void set_optional_string(const char* value);
  void set_optional_string(const char* value, size_t size);
  ::std::string* mutable_optional_string();
  ::std::string* release_optional_string();
  void set_allocated_optional_string(::std::string* optional_string);

  // optional bytes optional_bytes = 15;
  bool has_optional_bytes() const;
  void clear_optional_bytes();
  static const int kOptionalBytesFieldNumber = 15;
  const ::std::string& optional_bytes() const;
  void set_optional_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_bytes(::std::string&& value);
  #endif
  void set_optional_bytes(const char* value);
  void set_optional_bytes(const void* value, size_t size);
  ::std::string* mutable_optional_bytes();
  ::std::string* release_optional_bytes();
  void set_allocated_optional_bytes(::std::string* optional_bytes);

  // optional string optional_string_piece = 24 [ctype = STRING_PIECE];
  bool has_optional_string_piece() const;
  void clear_optional_string_piece();
  static const int kOptionalStringPieceFieldNumber = 24;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& optional_string_piece() const;
  void set_optional_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_string_piece(::std::string&& value);
  #endif
  void set_optional_string_piece(const char* value);
  void set_optional_string_piece(const char* value, size_t size);
  ::std::string* mutable_optional_string_piece();
  ::std::string* release_optional_string_piece();
  void set_allocated_optional_string_piece(::std::string* optional_string_piece);
 public:

  // optional string optional_cord = 25 [ctype = CORD];
  bool has_optional_cord() const;
  void clear_optional_cord();
  static const int kOptionalCordFieldNumber = 25;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& optional_cord() const;
  void set_optional_cord(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_cord(::std::string&& value);
  #endif
  void set_optional_cord(const char* value);
  void set_optional_cord(const char* value, size_t size);
  ::std::string* mutable_optional_cord();
  ::std::string* release_optional_cord();
  void set_allocated_optional_cord(::std::string* optional_cord);
 public:

  // optional string default_string = 74 [default = "hello"];
  bool has_default_string() const;
  void clear_default_string();
  static const int kDefaultStringFieldNumber = 74;
  const ::std::string& default_string() const;
  void set_default_string(const ::std::string& value);
  #if LANG_CXX11
  void set_default_string(::std::string&& value);
  #endif
  void set_default_string(const char* value);
  void set_default_string(const char* value, size_t size);
  ::std::string* mutable_default_string();
  ::std::string* release_default_string();
  void set_allocated_default_string(::std::string* default_string);

  // optional bytes default_bytes = 75 [default = "world"];
  bool has_default_bytes() const;
  void clear_default_bytes();
  static const int kDefaultBytesFieldNumber = 75;
  const ::std::string& default_bytes() const;
  void set_default_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_default_bytes(::std::string&& value);
  #endif
  void set_default_bytes(const char* value);
  void set_default_bytes(const void* value, size_t size);
  ::std::string* mutable_default_bytes();
  ::std::string* release_default_bytes();
  void set_allocated_default_bytes(::std::string* default_bytes);

  // optional string default_string_piece = 84 [default = "abc", ctype = STRING_PIECE];
  bool has_default_string_piece() const;
  void clear_default_string_piece();
  static const int kDefaultStringPieceFieldNumber = 84;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& default_string_piece() const;
  void set_default_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void set_default_string_piece(::std::string&& value);
  #endif
  void set_default_string_piece(const char* value);
  void set_default_string_piece(const char* value, size_t size);
  ::std::string* mutable_default_string_piece();
  ::std::string* release_default_string_piece();
  void set_allocated_default_string_piece(::std::string* default_string_piece);
 public:

  // optional string default_cord = 85 [default = "123", ctype = CORD];
  bool has_default_cord() const;
  void clear_default_cord();
  static const int kDefaultCordFieldNumber = 85;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& default_cord() const;
  void set_default_cord(const ::std::string& value);
  #if LANG_CXX11
  void set_default_cord(::std::string&& value);
  #endif
  void set_default_cord(const char* value);
  void set_default_cord(const char* value, size_t size);
  ::std::string* mutable_default_cord();
  ::std::string* release_default_cord();
  void set_allocated_default_cord(::std::string* default_cord);
 public:

  // optional group OptionalGroup = 16 { ... };
  bool has_optionalgroup() const;
  void clear_optionalgroup();
  static const int kOptionalgroupFieldNumber = 16;
  private:
  const ::protobuf_unittest::TestAllTypesLite_OptionalGroup& _internal_optionalgroup() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite_OptionalGroup& optionalgroup() const;
  ::protobuf_unittest::TestAllTypesLite_OptionalGroup* release_optionalgroup();
  ::protobuf_unittest::TestAllTypesLite_OptionalGroup* mutable_optionalgroup();
  void set_allocated_optionalgroup(::protobuf_unittest::TestAllTypesLite_OptionalGroup* optionalgroup);

  // optional .protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message = 18;
  bool has_optional_nested_message() const;
  void clear_optional_nested_message();
  static const int kOptionalNestedMessageFieldNumber = 18;
  private:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& _internal_optional_nested_message() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& optional_nested_message() const;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* release_optional_nested_message();
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* mutable_optional_nested_message();
  void set_allocated_optional_nested_message(::protobuf_unittest::TestAllTypesLite_NestedMessage* optional_nested_message);

  // optional .protobuf_unittest.ForeignMessageLite optional_foreign_message = 19;
  bool has_optional_foreign_message() const;
  void clear_optional_foreign_message();
  static const int kOptionalForeignMessageFieldNumber = 19;
  private:
  const ::protobuf_unittest::ForeignMessageLite& _internal_optional_foreign_message() const;
  public:
  const ::protobuf_unittest::ForeignMessageLite& optional_foreign_message() const;
  ::protobuf_unittest::ForeignMessageLite* release_optional_foreign_message();
  ::protobuf_unittest::ForeignMessageLite* mutable_optional_foreign_message();
  void set_allocated_optional_foreign_message(::protobuf_unittest::ForeignMessageLite* optional_foreign_message);

  // optional .protobuf_unittest_import.ImportMessageLite optional_import_message = 20;
  bool has_optional_import_message() const;
  void clear_optional_import_message();
  static const int kOptionalImportMessageFieldNumber = 20;
  private:
  const ::protobuf_unittest_import::ImportMessageLite& _internal_optional_import_message() const;
  public:
  const ::protobuf_unittest_import::ImportMessageLite& optional_import_message() const;
  ::protobuf_unittest_import::ImportMessageLite* release_optional_import_message();
  ::protobuf_unittest_import::ImportMessageLite* mutable_optional_import_message();
  void set_allocated_optional_import_message(::protobuf_unittest_import::ImportMessageLite* optional_import_message);

  // optional .protobuf_unittest_import.PublicImportMessageLite optional_public_import_message = 26;
  bool has_optional_public_import_message() const;
  void clear_optional_public_import_message();
  static const int kOptionalPublicImportMessageFieldNumber = 26;
  private:
  const ::protobuf_unittest_import::PublicImportMessageLite& _internal_optional_public_import_message() const;
  public:
  const ::protobuf_unittest_import::PublicImportMessageLite& optional_public_import_message() const;
  ::protobuf_unittest_import::PublicImportMessageLite* release_optional_public_import_message();
  ::protobuf_unittest_import::PublicImportMessageLite* mutable_optional_public_import_message();
  void set_allocated_optional_public_import_message(::protobuf_unittest_import::PublicImportMessageLite* optional_public_import_message);

  // optional .protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message = 27 [lazy = true];
  bool has_optional_lazy_message() const;
  void clear_optional_lazy_message();
  static const int kOptionalLazyMessageFieldNumber = 27;
  private:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& _internal_optional_lazy_message() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& optional_lazy_message() const;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* release_optional_lazy_message();
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* mutable_optional_lazy_message();
  void set_allocated_optional_lazy_message(::protobuf_unittest::TestAllTypesLite_NestedMessage* optional_lazy_message);

  // optional int64 optional_int64 = 2;
  bool has_optional_int64() const;
  void clear_optional_int64();
  static const int kOptionalInt64FieldNumber = 2;
  ::google::protobuf::int64 optional_int64() const;
  void set_optional_int64(::google::protobuf::int64 value);

  // optional int32 optional_int32 = 1;
  bool has_optional_int32() const;
  void clear_optional_int32();
  static const int kOptionalInt32FieldNumber = 1;
  ::google::protobuf::int32 optional_int32() const;
  void set_optional_int32(::google::protobuf::int32 value);

  // optional uint32 optional_uint32 = 3;
  bool has_optional_uint32() const;
  void clear_optional_uint32();
  static const int kOptionalUint32FieldNumber = 3;
  ::google::protobuf::uint32 optional_uint32() const;
  void set_optional_uint32(::google::protobuf::uint32 value);

  // optional uint64 optional_uint64 = 4;
  bool has_optional_uint64() const;
  void clear_optional_uint64();
  static const int kOptionalUint64FieldNumber = 4;
  ::google::protobuf::uint64 optional_uint64() const;
  void set_optional_uint64(::google::protobuf::uint64 value);

  // optional sint64 optional_sint64 = 6;
  bool has_optional_sint64() const;
  void clear_optional_sint64();
  static const int kOptionalSint64FieldNumber = 6;
  ::google::protobuf::int64 optional_sint64() const;
  void set_optional_sint64(::google::protobuf::int64 value);

  // optional sint32 optional_sint32 = 5;
  bool has_optional_sint32() const;
  void clear_optional_sint32();
  static const int kOptionalSint32FieldNumber = 5;
  ::google::protobuf::int32 optional_sint32() const;
  void set_optional_sint32(::google::protobuf::int32 value);

  // optional fixed32 optional_fixed32 = 7;
  bool has_optional_fixed32() const;
  void clear_optional_fixed32();
  static const int kOptionalFixed32FieldNumber = 7;
  ::google::protobuf::uint32 optional_fixed32() const;
  void set_optional_fixed32(::google::protobuf::uint32 value);

  // optional fixed64 optional_fixed64 = 8;
  bool has_optional_fixed64() const;
  void clear_optional_fixed64();
  static const int kOptionalFixed64FieldNumber = 8;
  ::google::protobuf::uint64 optional_fixed64() const;
  void set_optional_fixed64(::google::protobuf::uint64 value);

  // optional sfixed64 optional_sfixed64 = 10;
  bool has_optional_sfixed64() const;
  void clear_optional_sfixed64();
  static const int kOptionalSfixed64FieldNumber = 10;
  ::google::protobuf::int64 optional_sfixed64() const;
  void set_optional_sfixed64(::google::protobuf::int64 value);

  // optional sfixed32 optional_sfixed32 = 9;
  bool has_optional_sfixed32() const;
  void clear_optional_sfixed32();
  static const int kOptionalSfixed32FieldNumber = 9;
  ::google::protobuf::int32 optional_sfixed32() const;
  void set_optional_sfixed32(::google::protobuf::int32 value);

  // optional float optional_float = 11;
  bool has_optional_float() const;
  void clear_optional_float();
  static const int kOptionalFloatFieldNumber = 11;
  float optional_float() const;
  void set_optional_float(float value);

  // optional double optional_double = 12;
  bool has_optional_double() const;
  void clear_optional_double();
  static const int kOptionalDoubleFieldNumber = 12;
  double optional_double() const;
  void set_optional_double(double value);

  // optional bool optional_bool = 13;
  bool has_optional_bool() const;
  void clear_optional_bool();
  static const int kOptionalBoolFieldNumber = 13;
  bool optional_bool() const;
  void set_optional_bool(bool value);

  // optional int32 deceptively_named_list = 116;
  bool has_deceptively_named_list() const;
  void clear_deceptively_named_list();
  static const int kDeceptivelyNamedListFieldNumber = 116;
  ::google::protobuf::int32 deceptively_named_list() const;
  void set_deceptively_named_list(::google::protobuf::int32 value);

  // optional .protobuf_unittest_import.ImportEnumLite default_import_enum = 83 [default = IMPORT_LITE_BAR];
  bool has_default_import_enum() const;
  void clear_default_import_enum();
  static const int kDefaultImportEnumFieldNumber = 83;
  ::protobuf_unittest_import::ImportEnumLite default_import_enum() const;
  void set_default_import_enum(::protobuf_unittest_import::ImportEnumLite value);

  // optional .protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum = 21;
  bool has_optional_nested_enum() const;
  void clear_optional_nested_enum();
  static const int kOptionalNestedEnumFieldNumber = 21;
  ::protobuf_unittest::TestAllTypesLite_NestedEnum optional_nested_enum() const;
  void set_optional_nested_enum(::protobuf_unittest::TestAllTypesLite_NestedEnum value);

  // optional .protobuf_unittest.ForeignEnumLite optional_foreign_enum = 22;
  bool has_optional_foreign_enum() const;
  void clear_optional_foreign_enum();
  static const int kOptionalForeignEnumFieldNumber = 22;
  ::protobuf_unittest::ForeignEnumLite optional_foreign_enum() const;
  void set_optional_foreign_enum(::protobuf_unittest::ForeignEnumLite value);

  // optional .protobuf_unittest_import.ImportEnumLite optional_import_enum = 23;
  bool has_optional_import_enum() const;
  void clear_optional_import_enum();
  static const int kOptionalImportEnumFieldNumber = 23;
  ::protobuf_unittest_import::ImportEnumLite optional_import_enum() const;
  void set_optional_import_enum(::protobuf_unittest_import::ImportEnumLite value);

  // optional int32 default_int32 = 61 [default = 41];
  bool has_default_int32() const;
  void clear_default_int32();
  static const int kDefaultInt32FieldNumber = 61;
  ::google::protobuf::int32 default_int32() const;
  void set_default_int32(::google::protobuf::int32 value);

  // optional int64 default_int64 = 62 [default = 42];
  bool has_default_int64() const;
  void clear_default_int64();
  static const int kDefaultInt64FieldNumber = 62;
  ::google::protobuf::int64 default_int64() const;
  void set_default_int64(::google::protobuf::int64 value);

  // optional uint64 default_uint64 = 64 [default = 44];
  bool has_default_uint64() const;
  void clear_default_uint64();
  static const int kDefaultUint64FieldNumber = 64;
  ::google::protobuf::uint64 default_uint64() const;
  void set_default_uint64(::google::protobuf::uint64 value);

  // optional uint32 default_uint32 = 63 [default = 43];
  bool has_default_uint32() const;
  void clear_default_uint32();
  static const int kDefaultUint32FieldNumber = 63;
  ::google::protobuf::uint32 default_uint32() const;
  void set_default_uint32(::google::protobuf::uint32 value);

  // optional sint32 default_sint32 = 65 [default = -45];
  bool has_default_sint32() const;
  void clear_default_sint32();
  static const int kDefaultSint32FieldNumber = 65;
  ::google::protobuf::int32 default_sint32() const;
  void set_default_sint32(::google::protobuf::int32 value);

  // optional sint64 default_sint64 = 66 [default = 46];
  bool has_default_sint64() const;
  void clear_default_sint64();
  static const int kDefaultSint64FieldNumber = 66;
  ::google::protobuf::int64 default_sint64() const;
  void set_default_sint64(::google::protobuf::int64 value);

  // optional fixed64 default_fixed64 = 68 [default = 48];
  bool has_default_fixed64() const;
  void clear_default_fixed64();
  static const int kDefaultFixed64FieldNumber = 68;
  ::google::protobuf::uint64 default_fixed64() const;
  void set_default_fixed64(::google::protobuf::uint64 value);

  // optional fixed32 default_fixed32 = 67 [default = 47];
  bool has_default_fixed32() const;
  void clear_default_fixed32();
  static const int kDefaultFixed32FieldNumber = 67;
  ::google::protobuf::uint32 default_fixed32() const;
  void set_default_fixed32(::google::protobuf::uint32 value);

  // optional sfixed32 default_sfixed32 = 69 [default = 49];
  bool has_default_sfixed32() const;
  void clear_default_sfixed32();
  static const int kDefaultSfixed32FieldNumber = 69;
  ::google::protobuf::int32 default_sfixed32() const;
  void set_default_sfixed32(::google::protobuf::int32 value);

  // optional sfixed64 default_sfixed64 = 70 [default = -50];
  bool has_default_sfixed64() const;
  void clear_default_sfixed64();
  static const int kDefaultSfixed64FieldNumber = 70;
  ::google::protobuf::int64 default_sfixed64() const;
  void set_default_sfixed64(::google::protobuf::int64 value);

  // optional double default_double = 72 [default = 52000];
  bool has_default_double() const;
  void clear_default_double();
  static const int kDefaultDoubleFieldNumber = 72;
  double default_double() const;
  void set_default_double(double value);

  // optional float default_float = 71 [default = 51.5];
  bool has_default_float() const;
  void clear_default_float();
  static const int kDefaultFloatFieldNumber = 71;
  float default_float() const;
  void set_default_float(float value);

  // optional bool default_bool = 73 [default = true];
  bool has_default_bool() const;
  void clear_default_bool();
  static const int kDefaultBoolFieldNumber = 73;
  bool default_bool() const;
  void set_default_bool(bool value);

  // optional .protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum = 81 [default = BAR];
  bool has_default_nested_enum() const;
  void clear_default_nested_enum();
  static const int kDefaultNestedEnumFieldNumber = 81;
  ::protobuf_unittest::TestAllTypesLite_NestedEnum default_nested_enum() const;
  void set_default_nested_enum(::protobuf_unittest::TestAllTypesLite_NestedEnum value);

  // optional .protobuf_unittest.ForeignEnumLite default_foreign_enum = 82 [default = FOREIGN_LITE_BAR];
  bool has_default_foreign_enum() const;
  void clear_default_foreign_enum();
  static const int kDefaultForeignEnumFieldNumber = 82;
  ::protobuf_unittest::ForeignEnumLite default_foreign_enum() const;
  void set_default_foreign_enum(::protobuf_unittest::ForeignEnumLite value);

  // optional uint32 oneof_uint32 = 111;
  bool has_oneof_uint32() const;
  void clear_oneof_uint32();
  static const int kOneofUint32FieldNumber = 111;
  ::google::protobuf::uint32 oneof_uint32() const;
  void set_oneof_uint32(::google::protobuf::uint32 value);

  // optional .protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message = 112;
  bool has_oneof_nested_message() const;
  void clear_oneof_nested_message();
  static const int kOneofNestedMessageFieldNumber = 112;
  private:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& _internal_oneof_nested_message() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& oneof_nested_message() const;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* release_oneof_nested_message();
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* mutable_oneof_nested_message();
  void set_allocated_oneof_nested_message(::protobuf_unittest::TestAllTypesLite_NestedMessage* oneof_nested_message);

  // optional string oneof_string = 113;
  bool has_oneof_string() const;
  void clear_oneof_string();
  static const int kOneofStringFieldNumber = 113;
  const ::std::string& oneof_string() const;
  void set_oneof_string(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_string(::std::string&& value);
  #endif
  void set_oneof_string(const char* value);
  void set_oneof_string(const char* value, size_t size);
  ::std::string* mutable_oneof_string();
  ::std::string* release_oneof_string();
  void set_allocated_oneof_string(::std::string* oneof_string);

  // optional bytes oneof_bytes = 114;
  bool has_oneof_bytes() const;
  void clear_oneof_bytes();
  static const int kOneofBytesFieldNumber = 114;
  const ::std::string& oneof_bytes() const;
  void set_oneof_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_bytes(::std::string&& value);
  #endif
  void set_oneof_bytes(const char* value);
  void set_oneof_bytes(const void* value, size_t size);
  ::std::string* mutable_oneof_bytes();
  ::std::string* release_oneof_bytes();
  void set_allocated_oneof_bytes(::std::string* oneof_bytes);

  // optional .protobuf_unittest.TestAllTypesLite.NestedMessage oneof_lazy_nested_message = 115 [lazy = true];
  bool has_oneof_lazy_nested_message() const;
  void clear_oneof_lazy_nested_message();
  static const int kOneofLazyNestedMessageFieldNumber = 115;
  private:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& _internal_oneof_lazy_nested_message() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage& oneof_lazy_nested_message() const;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* release_oneof_lazy_nested_message();
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* mutable_oneof_lazy_nested_message();
  void set_allocated_oneof_lazy_nested_message(::protobuf_unittest::TestAllTypesLite_NestedMessage* oneof_lazy_nested_message);

  void clear_oneof_field();
  OneofFieldCase oneof_field_case() const;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllTypesLite)
 private:
  void set_has_optional_int32();
  void clear_has_optional_int32();
  void set_has_optional_int64();
  void clear_has_optional_int64();
  void set_has_optional_uint32();
  void clear_has_optional_uint32();
  void set_has_optional_uint64();
  void clear_has_optional_uint64();
  void set_has_optional_sint32();
  void clear_has_optional_sint32();
  void set_has_optional_sint64();
  void clear_has_optional_sint64();
  void set_has_optional_fixed32();
  void clear_has_optional_fixed32();
  void set_has_optional_fixed64();
  void clear_has_optional_fixed64();
  void set_has_optional_sfixed32();
  void clear_has_optional_sfixed32();
  void set_has_optional_sfixed64();
  void clear_has_optional_sfixed64();
  void set_has_optional_float();
  void clear_has_optional_float();
  void set_has_optional_double();
  void clear_has_optional_double();
  void set_has_optional_bool();
  void clear_has_optional_bool();
  void set_has_optional_string();
  void clear_has_optional_string();
  void set_has_optional_bytes();
  void clear_has_optional_bytes();
  void set_has_optionalgroup();
  void clear_has_optionalgroup();
  void set_has_optional_nested_message();
  void clear_has_optional_nested_message();
  void set_has_optional_foreign_message();
  void clear_has_optional_foreign_message();
  void set_has_optional_import_message();
  void clear_has_optional_import_message();
  void set_has_optional_nested_enum();
  void clear_has_optional_nested_enum();
  void set_has_optional_foreign_enum();
  void clear_has_optional_foreign_enum();
  void set_has_optional_import_enum();
  void clear_has_optional_import_enum();
  void set_has_optional_string_piece();
  void clear_has_optional_string_piece();
  void set_has_optional_cord();
  void clear_has_optional_cord();
  void set_has_optional_public_import_message();
  void clear_has_optional_public_import_message();
  void set_has_optional_lazy_message();
  void clear_has_optional_lazy_message();
  void set_has_default_int32();
  void clear_has_default_int32();
  void set_has_default_int64();
  void clear_has_default_int64();
  void set_has_default_uint32();
  void clear_has_default_uint32();
  void set_has_default_uint64();
  void clear_has_default_uint64();
  void set_has_default_sint32();
  void clear_has_default_sint32();
  void set_has_default_sint64();
  void clear_has_default_sint64();
  void set_has_default_fixed32();
  void clear_has_default_fixed32();
  void set_has_default_fixed64();
  void clear_has_default_fixed64();
  void set_has_default_sfixed32();
  void clear_has_default_sfixed32();
  void set_has_default_sfixed64();
  void clear_has_default_sfixed64();
  void set_has_default_float();
  void clear_has_default_float();
  void set_has_default_double();
  void clear_has_default_double();
  void set_has_default_bool();
  void clear_has_default_bool();
  void set_has_default_string();
  void clear_has_default_string();
  void set_has_default_bytes();
  void clear_has_default_bytes();
  void set_has_default_nested_enum();
  void clear_has_default_nested_enum();
  void set_has_default_foreign_enum();
  void clear_has_default_foreign_enum();
  void set_has_default_import_enum();
  void clear_has_default_import_enum();
  void set_has_default_string_piece();
  void clear_has_default_string_piece();
  void set_has_default_cord();
  void clear_has_default_cord();
  void set_has_oneof_uint32();
  void set_has_oneof_nested_message();
  void set_has_oneof_string();
  void set_has_oneof_bytes();
  void set_has_oneof_lazy_nested_message();
  void set_has_deceptively_named_list();
  void clear_has_deceptively_named_list();

  inline bool has_oneof_field() const;
  inline void clear_has_oneof_field();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<2> _has_bits_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_int64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_uint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_uint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sint32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sint64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > repeated_fixed64_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_sfixed32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > repeated_sfixed64_;
  ::google::protobuf::RepeatedField< float > repeated_float_;
  ::google::protobuf::RepeatedField< double > repeated_double_;
  ::google::protobuf::RepeatedField< bool > repeated_bool_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_bytes_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_RepeatedGroup > repeatedgroup_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage > repeated_nested_message_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessageLite > repeated_foreign_message_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessageLite > repeated_import_message_;
  ::google::protobuf::RepeatedField<int> repeated_nested_enum_;
  ::google::protobuf::RepeatedField<int> repeated_foreign_enum_;
  ::google::protobuf::RepeatedField<int> repeated_import_enum_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_string_piece_;
  ::google::protobuf::RepeatedPtrField< ::std::string> repeated_cord_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage > repeated_lazy_message_;
  ::google::protobuf::internal::ArenaStringPtr optional_string_;
  ::google::protobuf::internal::ArenaStringPtr optional_bytes_;
  ::google::protobuf::internal::ArenaStringPtr optional_string_piece_;
  ::google::protobuf::internal::ArenaStringPtr optional_cord_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_default_string_;
  private:
  ::google::protobuf::internal::ArenaStringPtr default_string_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_default_bytes_;
  private:
  ::google::protobuf::internal::ArenaStringPtr default_bytes_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_default_string_piece_;
  private:
  ::google::protobuf::internal::ArenaStringPtr default_string_piece_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_default_cord_;
  private:
  ::google::protobuf::internal::ArenaStringPtr default_cord_;
  ::protobuf_unittest::TestAllTypesLite_OptionalGroup* optionalgroup_;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* optional_nested_message_;
  ::protobuf_unittest::ForeignMessageLite* optional_foreign_message_;
  ::protobuf_unittest_import::ImportMessageLite* optional_import_message_;
  ::protobuf_unittest_import::PublicImportMessageLite* optional_public_import_message_;
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* optional_lazy_message_;
  ::google::protobuf::int64 optional_int64_;
  ::google::protobuf::int32 optional_int32_;
  ::google::protobuf::uint32 optional_uint32_;
  ::google::protobuf::uint64 optional_uint64_;
  ::google::protobuf::int64 optional_sint64_;
  ::google::protobuf::int32 optional_sint32_;
  ::google::protobuf::uint32 optional_fixed32_;
  ::google::protobuf::uint64 optional_fixed64_;
  ::google::protobuf::int64 optional_sfixed64_;
  ::google::protobuf::int32 optional_sfixed32_;
  float optional_float_;
  double optional_double_;
  bool optional_bool_;
  ::google::protobuf::int32 deceptively_named_list_;
  int default_import_enum_;
  int optional_nested_enum_;
  int optional_foreign_enum_;
  int optional_import_enum_;
  ::google::protobuf::int32 default_int32_;
  ::google::protobuf::int64 default_int64_;
  ::google::protobuf::uint64 default_uint64_;
  ::google::protobuf::uint32 default_uint32_;
  ::google::protobuf::int32 default_sint32_;
  ::google::protobuf::int64 default_sint64_;
  ::google::protobuf::uint64 default_fixed64_;
  ::google::protobuf::uint32 default_fixed32_;
  ::google::protobuf::int32 default_sfixed32_;
  ::google::protobuf::int64 default_sfixed64_;
  double default_double_;
  float default_float_;
  bool default_bool_;
  int default_nested_enum_;
  int default_foreign_enum_;
  union OneofFieldUnion {
    OneofFieldUnion() {}
    ::google::protobuf::uint32 oneof_uint32_;
    ::protobuf_unittest::TestAllTypesLite_NestedMessage* oneof_nested_message_;
    ::google::protobuf::internal::ArenaStringPtr oneof_string_;
    ::google::protobuf::internal::ArenaStringPtr oneof_bytes_;
    ::protobuf_unittest::TestAllTypesLite_NestedMessage* oneof_lazy_nested_message_;
  } oneof_field_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class ForeignMessageLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.ForeignMessageLite) */ {
 public:
  ForeignMessageLite();
  virtual ~ForeignMessageLite();

  ForeignMessageLite(const ForeignMessageLite& from);

  inline ForeignMessageLite& operator=(const ForeignMessageLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  ForeignMessageLite(ForeignMessageLite&& from) noexcept
    : ForeignMessageLite() {
    *this = ::std::move(from);
  }

  inline ForeignMessageLite& operator=(ForeignMessageLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const ForeignMessageLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ForeignMessageLite* internal_default_instance() {
    return reinterpret_cast<const ForeignMessageLite*>(
               &_ForeignMessageLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  void Swap(ForeignMessageLite* other);
  friend void swap(ForeignMessageLite& a, ForeignMessageLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline ForeignMessageLite* New() const final {
    return CreateMaybeMessage<ForeignMessageLite>(NULL);
  }

  ForeignMessageLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ForeignMessageLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const ForeignMessageLite& from);
  void MergeFrom(const ForeignMessageLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(ForeignMessageLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 c = 1;
  bool has_c() const;
  void clear_c();
  static const int kCFieldNumber = 1;
  ::google::protobuf::int32 c() const;
  void set_c(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.ForeignMessageLite)
 private:
  void set_has_c();
  void clear_has_c();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 c_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestPackedTypesLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestPackedTypesLite) */ {
 public:
  TestPackedTypesLite();
  virtual ~TestPackedTypesLite();

  TestPackedTypesLite(const TestPackedTypesLite& from);

  inline TestPackedTypesLite& operator=(const TestPackedTypesLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestPackedTypesLite(TestPackedTypesLite&& from) noexcept
    : TestPackedTypesLite() {
    *this = ::std::move(from);
  }

  inline TestPackedTypesLite& operator=(TestPackedTypesLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestPackedTypesLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestPackedTypesLite* internal_default_instance() {
    return reinterpret_cast<const TestPackedTypesLite*>(
               &_TestPackedTypesLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    5;

  void Swap(TestPackedTypesLite* other);
  friend void swap(TestPackedTypesLite& a, TestPackedTypesLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestPackedTypesLite* New() const final {
    return CreateMaybeMessage<TestPackedTypesLite>(NULL);
  }

  TestPackedTypesLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestPackedTypesLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestPackedTypesLite& from);
  void MergeFrom(const TestPackedTypesLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestPackedTypesLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated int32 packed_int32 = 90 [packed = true];
  int packed_int32_size() const;
  void clear_packed_int32();
  static const int kPackedInt32FieldNumber = 90;
  ::google::protobuf::int32 packed_int32(int index) const;
  void set_packed_int32(int index, ::google::protobuf::int32 value);
  void add_packed_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_int32();

  // repeated int64 packed_int64 = 91 [packed = true];
  int packed_int64_size() const;
  void clear_packed_int64();
  static const int kPackedInt64FieldNumber = 91;
  ::google::protobuf::int64 packed_int64(int index) const;
  void set_packed_int64(int index, ::google::protobuf::int64 value);
  void add_packed_int64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_int64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_int64();

  // repeated uint32 packed_uint32 = 92 [packed = true];
  int packed_uint32_size() const;
  void clear_packed_uint32();
  static const int kPackedUint32FieldNumber = 92;
  ::google::protobuf::uint32 packed_uint32(int index) const;
  void set_packed_uint32(int index, ::google::protobuf::uint32 value);
  void add_packed_uint32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      packed_uint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_packed_uint32();

  // repeated uint64 packed_uint64 = 93 [packed = true];
  int packed_uint64_size() const;
  void clear_packed_uint64();
  static const int kPackedUint64FieldNumber = 93;
  ::google::protobuf::uint64 packed_uint64(int index) const;
  void set_packed_uint64(int index, ::google::protobuf::uint64 value);
  void add_packed_uint64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      packed_uint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_packed_uint64();

  // repeated sint32 packed_sint32 = 94 [packed = true];
  int packed_sint32_size() const;
  void clear_packed_sint32();
  static const int kPackedSint32FieldNumber = 94;
  ::google::protobuf::int32 packed_sint32(int index) const;
  void set_packed_sint32(int index, ::google::protobuf::int32 value);
  void add_packed_sint32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_sint32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_sint32();

  // repeated sint64 packed_sint64 = 95 [packed = true];
  int packed_sint64_size() const;
  void clear_packed_sint64();
  static const int kPackedSint64FieldNumber = 95;
  ::google::protobuf::int64 packed_sint64(int index) const;
  void set_packed_sint64(int index, ::google::protobuf::int64 value);
  void add_packed_sint64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_sint64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_sint64();

  // repeated fixed32 packed_fixed32 = 96 [packed = true];
  int packed_fixed32_size() const;
  void clear_packed_fixed32();
  static const int kPackedFixed32FieldNumber = 96;
  ::google::protobuf::uint32 packed_fixed32(int index) const;
  void set_packed_fixed32(int index, ::google::protobuf::uint32 value);
  void add_packed_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      packed_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_packed_fixed32();

  // repeated fixed64 packed_fixed64 = 97 [packed = true];
  int packed_fixed64_size() const;
  void clear_packed_fixed64();
  static const int kPackedFixed64FieldNumber = 97;
  ::google::protobuf::uint64 packed_fixed64(int index) const;
  void set_packed_fixed64(int index, ::google::protobuf::uint64 value);
  void add_packed_fixed64(::google::protobuf::uint64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      packed_fixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_packed_fixed64();

  // repeated sfixed32 packed_sfixed32 = 98 [packed = true];
  int packed_sfixed32_size() const;
  void clear_packed_sfixed32();
  static const int kPackedSfixed32FieldNumber = 98;
  ::google::protobuf::int32 packed_sfixed32(int index) const;
  void set_packed_sfixed32(int index, ::google::protobuf::int32 value);
  void add_packed_sfixed32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_sfixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_sfixed32();

  // repeated sfixed64 packed_sfixed64 = 99 [packed = true];
  int packed_sfixed64_size() const;
  void clear_packed_sfixed64();
  static const int kPackedSfixed64FieldNumber = 99;
  ::google::protobuf::int64 packed_sfixed64(int index) const;
  void set_packed_sfixed64(int index, ::google::protobuf::int64 value);
  void add_packed_sfixed64(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      packed_sfixed64() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_packed_sfixed64();

  // repeated float packed_float = 100 [packed = true];
  int packed_float_size() const;
  void clear_packed_float();
  static const int kPackedFloatFieldNumber = 100;
  float packed_float(int index) const;
  void set_packed_float(int index, float value);
  void add_packed_float(float value);
  const ::google::protobuf::RepeatedField< float >&
      packed_float() const;
  ::google::protobuf::RepeatedField< float >*
      mutable_packed_float();

  // repeated double packed_double = 101 [packed = true];
  int packed_double_size() const;
  void clear_packed_double();
  static const int kPackedDoubleFieldNumber = 101;
  double packed_double(int index) const;
  void set_packed_double(int index, double value);
  void add_packed_double(double value);
  const ::google::protobuf::RepeatedField< double >&
      packed_double() const;
  ::google::protobuf::RepeatedField< double >*
      mutable_packed_double();

  // repeated bool packed_bool = 102 [packed = true];
  int packed_bool_size() const;
  void clear_packed_bool();
  static const int kPackedBoolFieldNumber = 102;
  bool packed_bool(int index) const;
  void set_packed_bool(int index, bool value);
  void add_packed_bool(bool value);
  const ::google::protobuf::RepeatedField< bool >&
      packed_bool() const;
  ::google::protobuf::RepeatedField< bool >*
      mutable_packed_bool();

  // repeated .protobuf_unittest.ForeignEnumLite packed_enum = 103 [packed = true];
  int packed_enum_size() const;
  void clear_packed_enum();
  static const int kPackedEnumFieldNumber = 103;
  ::protobuf_unittest::ForeignEnumLite packed_enum(int index) const;
  void set_packed_enum(int index, ::protobuf_unittest::ForeignEnumLite value);
  void add_packed_enum(::protobuf_unittest::ForeignEnumLite value);
  const ::google::protobuf::RepeatedField<int>& packed_enum() const;
  ::google::protobuf::RepeatedField<int>* mutable_packed_enum();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestPackedTypesLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_int32_;
  mutable int _packed_int32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_int64_;
  mutable int _packed_int64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > packed_uint32_;
  mutable int _packed_uint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > packed_uint64_;
  mutable int _packed_uint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_sint32_;
  mutable int _packed_sint32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_sint64_;
  mutable int _packed_sint64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > packed_fixed32_;
  mutable int _packed_fixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > packed_fixed64_;
  mutable int _packed_fixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_sfixed32_;
  mutable int _packed_sfixed32_cached_byte_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > packed_sfixed64_;
  mutable int _packed_sfixed64_cached_byte_size_;
  ::google::protobuf::RepeatedField< float > packed_float_;
  mutable int _packed_float_cached_byte_size_;
  ::google::protobuf::RepeatedField< double > packed_double_;
  mutable int _packed_double_cached_byte_size_;
  ::google::protobuf::RepeatedField< bool > packed_bool_;
  mutable int _packed_bool_cached_byte_size_;
  ::google::protobuf::RepeatedField<int> packed_enum_;
  mutable int _packed_enum_cached_byte_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestAllExtensionsLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestAllExtensionsLite) */ {
 public:
  TestAllExtensionsLite();
  virtual ~TestAllExtensionsLite();

  TestAllExtensionsLite(const TestAllExtensionsLite& from);

  inline TestAllExtensionsLite& operator=(const TestAllExtensionsLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestAllExtensionsLite(TestAllExtensionsLite&& from) noexcept
    : TestAllExtensionsLite() {
    *this = ::std::move(from);
  }

  inline TestAllExtensionsLite& operator=(TestAllExtensionsLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestAllExtensionsLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestAllExtensionsLite* internal_default_instance() {
    return reinterpret_cast<const TestAllExtensionsLite*>(
               &_TestAllExtensionsLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    6;

  void Swap(TestAllExtensionsLite* other);
  friend void swap(TestAllExtensionsLite& a, TestAllExtensionsLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestAllExtensionsLite* New() const final {
    return CreateMaybeMessage<TestAllExtensionsLite>(NULL);
  }

  TestAllExtensionsLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestAllExtensionsLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestAllExtensionsLite& from);
  void MergeFrom(const TestAllExtensionsLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestAllExtensionsLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestAllExtensionsLite)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestAllExtensionsLite)
 private:

  ::google::protobuf::internal::ExtensionSet _extensions_;

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class OptionalGroup_extension_lite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.OptionalGroup_extension_lite) */ {
 public:
  OptionalGroup_extension_lite();
  virtual ~OptionalGroup_extension_lite();

  OptionalGroup_extension_lite(const OptionalGroup_extension_lite& from);

  inline OptionalGroup_extension_lite& operator=(const OptionalGroup_extension_lite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  OptionalGroup_extension_lite(OptionalGroup_extension_lite&& from) noexcept
    : OptionalGroup_extension_lite() {
    *this = ::std::move(from);
  }

  inline OptionalGroup_extension_lite& operator=(OptionalGroup_extension_lite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const OptionalGroup_extension_lite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const OptionalGroup_extension_lite* internal_default_instance() {
    return reinterpret_cast<const OptionalGroup_extension_lite*>(
               &_OptionalGroup_extension_lite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    7;

  void Swap(OptionalGroup_extension_lite* other);
  friend void swap(OptionalGroup_extension_lite& a, OptionalGroup_extension_lite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline OptionalGroup_extension_lite* New() const final {
    return CreateMaybeMessage<OptionalGroup_extension_lite>(NULL);
  }

  OptionalGroup_extension_lite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<OptionalGroup_extension_lite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const OptionalGroup_extension_lite& from);
  void MergeFrom(const OptionalGroup_extension_lite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(OptionalGroup_extension_lite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 a = 17;
  bool has_a() const;
  void clear_a();
  static const int kAFieldNumber = 17;
  ::google::protobuf::int32 a() const;
  void set_a(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.OptionalGroup_extension_lite)
 private:
  void set_has_a();
  void clear_has_a();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 a_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class RepeatedGroup_extension_lite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.RepeatedGroup_extension_lite) */ {
 public:
  RepeatedGroup_extension_lite();
  virtual ~RepeatedGroup_extension_lite();

  RepeatedGroup_extension_lite(const RepeatedGroup_extension_lite& from);

  inline RepeatedGroup_extension_lite& operator=(const RepeatedGroup_extension_lite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  RepeatedGroup_extension_lite(RepeatedGroup_extension_lite&& from) noexcept
    : RepeatedGroup_extension_lite() {
    *this = ::std::move(from);
  }

  inline RepeatedGroup_extension_lite& operator=(RepeatedGroup_extension_lite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const RepeatedGroup_extension_lite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const RepeatedGroup_extension_lite* internal_default_instance() {
    return reinterpret_cast<const RepeatedGroup_extension_lite*>(
               &_RepeatedGroup_extension_lite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    8;

  void Swap(RepeatedGroup_extension_lite* other);
  friend void swap(RepeatedGroup_extension_lite& a, RepeatedGroup_extension_lite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline RepeatedGroup_extension_lite* New() const final {
    return CreateMaybeMessage<RepeatedGroup_extension_lite>(NULL);
  }

  RepeatedGroup_extension_lite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<RepeatedGroup_extension_lite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const RepeatedGroup_extension_lite& from);
  void MergeFrom(const RepeatedGroup_extension_lite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(RepeatedGroup_extension_lite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 a = 47;
  bool has_a() const;
  void clear_a();
  static const int kAFieldNumber = 47;
  ::google::protobuf::int32 a() const;
  void set_a(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.RepeatedGroup_extension_lite)
 private:
  void set_has_a();
  void clear_has_a();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 a_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestPackedExtensionsLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestPackedExtensionsLite) */ {
 public:
  TestPackedExtensionsLite();
  virtual ~TestPackedExtensionsLite();

  TestPackedExtensionsLite(const TestPackedExtensionsLite& from);

  inline TestPackedExtensionsLite& operator=(const TestPackedExtensionsLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestPackedExtensionsLite(TestPackedExtensionsLite&& from) noexcept
    : TestPackedExtensionsLite() {
    *this = ::std::move(from);
  }

  inline TestPackedExtensionsLite& operator=(TestPackedExtensionsLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestPackedExtensionsLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestPackedExtensionsLite* internal_default_instance() {
    return reinterpret_cast<const TestPackedExtensionsLite*>(
               &_TestPackedExtensionsLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    9;

  void Swap(TestPackedExtensionsLite* other);
  friend void swap(TestPackedExtensionsLite& a, TestPackedExtensionsLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestPackedExtensionsLite* New() const final {
    return CreateMaybeMessage<TestPackedExtensionsLite>(NULL);
  }

  TestPackedExtensionsLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestPackedExtensionsLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestPackedExtensionsLite& from);
  void MergeFrom(const TestPackedExtensionsLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestPackedExtensionsLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestPackedExtensionsLite)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestPackedExtensionsLite)
 private:

  ::google::protobuf::internal::ExtensionSet _extensions_;

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestNestedExtensionLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestNestedExtensionLite) */ {
 public:
  TestNestedExtensionLite();
  virtual ~TestNestedExtensionLite();

  TestNestedExtensionLite(const TestNestedExtensionLite& from);

  inline TestNestedExtensionLite& operator=(const TestNestedExtensionLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestNestedExtensionLite(TestNestedExtensionLite&& from) noexcept
    : TestNestedExtensionLite() {
    *this = ::std::move(from);
  }

  inline TestNestedExtensionLite& operator=(TestNestedExtensionLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestNestedExtensionLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestNestedExtensionLite* internal_default_instance() {
    return reinterpret_cast<const TestNestedExtensionLite*>(
               &_TestNestedExtensionLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    10;

  void Swap(TestNestedExtensionLite* other);
  friend void swap(TestNestedExtensionLite& a, TestNestedExtensionLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestNestedExtensionLite* New() const final {
    return CreateMaybeMessage<TestNestedExtensionLite>(NULL);
  }

  TestNestedExtensionLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestNestedExtensionLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestNestedExtensionLite& from);
  void MergeFrom(const TestNestedExtensionLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestNestedExtensionLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  static const int kNestedExtensionFieldNumber = 12345;
  static ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
      ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
    nested_extension;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestNestedExtensionLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestDeprecatedLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestDeprecatedLite) */ {
 public:
  TestDeprecatedLite();
  virtual ~TestDeprecatedLite();

  TestDeprecatedLite(const TestDeprecatedLite& from);

  inline TestDeprecatedLite& operator=(const TestDeprecatedLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestDeprecatedLite(TestDeprecatedLite&& from) noexcept
    : TestDeprecatedLite() {
    *this = ::std::move(from);
  }

  inline TestDeprecatedLite& operator=(TestDeprecatedLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestDeprecatedLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestDeprecatedLite* internal_default_instance() {
    return reinterpret_cast<const TestDeprecatedLite*>(
               &_TestDeprecatedLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    11;

  void Swap(TestDeprecatedLite* other);
  friend void swap(TestDeprecatedLite& a, TestDeprecatedLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestDeprecatedLite* New() const final {
    return CreateMaybeMessage<TestDeprecatedLite>(NULL);
  }

  TestDeprecatedLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestDeprecatedLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestDeprecatedLite& from);
  void MergeFrom(const TestDeprecatedLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestDeprecatedLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 deprecated_field = 1 [deprecated = true];
  GOOGLE_PROTOBUF_DEPRECATED_ATTR bool has_deprecated_field() const;
  GOOGLE_PROTOBUF_DEPRECATED_ATTR void clear_deprecated_field();
  GOOGLE_PROTOBUF_DEPRECATED_ATTR static const int kDeprecatedFieldFieldNumber = 1;
  GOOGLE_PROTOBUF_DEPRECATED_ATTR ::google::protobuf::int32 deprecated_field() const;
  GOOGLE_PROTOBUF_DEPRECATED_ATTR void set_deprecated_field(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestDeprecatedLite)
 private:
  void set_has_deprecated_field();
  void clear_has_deprecated_field();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 deprecated_field_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestParsingMergeLite_RepeatedFieldsGenerator_Group1 : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1) */ {
 public:
  TestParsingMergeLite_RepeatedFieldsGenerator_Group1();
  virtual ~TestParsingMergeLite_RepeatedFieldsGenerator_Group1();

  TestParsingMergeLite_RepeatedFieldsGenerator_Group1(const TestParsingMergeLite_RepeatedFieldsGenerator_Group1& from);

  inline TestParsingMergeLite_RepeatedFieldsGenerator_Group1& operator=(const TestParsingMergeLite_RepeatedFieldsGenerator_Group1& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestParsingMergeLite_RepeatedFieldsGenerator_Group1(TestParsingMergeLite_RepeatedFieldsGenerator_Group1&& from) noexcept
    : TestParsingMergeLite_RepeatedFieldsGenerator_Group1() {
    *this = ::std::move(from);
  }

  inline TestParsingMergeLite_RepeatedFieldsGenerator_Group1& operator=(TestParsingMergeLite_RepeatedFieldsGenerator_Group1&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestParsingMergeLite_RepeatedFieldsGenerator_Group1& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestParsingMergeLite_RepeatedFieldsGenerator_Group1* internal_default_instance() {
    return reinterpret_cast<const TestParsingMergeLite_RepeatedFieldsGenerator_Group1*>(
               &_TestParsingMergeLite_RepeatedFieldsGenerator_Group1_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    12;

  void Swap(TestParsingMergeLite_RepeatedFieldsGenerator_Group1* other);
  friend void swap(TestParsingMergeLite_RepeatedFieldsGenerator_Group1& a, TestParsingMergeLite_RepeatedFieldsGenerator_Group1& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestParsingMergeLite_RepeatedFieldsGenerator_Group1* New() const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedFieldsGenerator_Group1>(NULL);
  }

  TestParsingMergeLite_RepeatedFieldsGenerator_Group1* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedFieldsGenerator_Group1>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestParsingMergeLite_RepeatedFieldsGenerator_Group1& from);
  void MergeFrom(const TestParsingMergeLite_RepeatedFieldsGenerator_Group1& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestParsingMergeLite_RepeatedFieldsGenerator_Group1* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .protobuf_unittest.TestAllTypesLite field1 = 11;
  bool has_field1() const;
  void clear_field1();
  static const int kField1FieldNumber = 11;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_field1() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& field1() const;
  ::protobuf_unittest::TestAllTypesLite* release_field1();
  ::protobuf_unittest::TestAllTypesLite* mutable_field1();
  void set_allocated_field1(::protobuf_unittest::TestAllTypesLite* field1);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1)
 private:
  void set_has_field1();
  void clear_has_field1();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::protobuf_unittest::TestAllTypesLite* field1_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestParsingMergeLite_RepeatedFieldsGenerator_Group2 : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2) */ {
 public:
  TestParsingMergeLite_RepeatedFieldsGenerator_Group2();
  virtual ~TestParsingMergeLite_RepeatedFieldsGenerator_Group2();

  TestParsingMergeLite_RepeatedFieldsGenerator_Group2(const TestParsingMergeLite_RepeatedFieldsGenerator_Group2& from);

  inline TestParsingMergeLite_RepeatedFieldsGenerator_Group2& operator=(const TestParsingMergeLite_RepeatedFieldsGenerator_Group2& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestParsingMergeLite_RepeatedFieldsGenerator_Group2(TestParsingMergeLite_RepeatedFieldsGenerator_Group2&& from) noexcept
    : TestParsingMergeLite_RepeatedFieldsGenerator_Group2() {
    *this = ::std::move(from);
  }

  inline TestParsingMergeLite_RepeatedFieldsGenerator_Group2& operator=(TestParsingMergeLite_RepeatedFieldsGenerator_Group2&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestParsingMergeLite_RepeatedFieldsGenerator_Group2& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestParsingMergeLite_RepeatedFieldsGenerator_Group2* internal_default_instance() {
    return reinterpret_cast<const TestParsingMergeLite_RepeatedFieldsGenerator_Group2*>(
               &_TestParsingMergeLite_RepeatedFieldsGenerator_Group2_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    13;

  void Swap(TestParsingMergeLite_RepeatedFieldsGenerator_Group2* other);
  friend void swap(TestParsingMergeLite_RepeatedFieldsGenerator_Group2& a, TestParsingMergeLite_RepeatedFieldsGenerator_Group2& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestParsingMergeLite_RepeatedFieldsGenerator_Group2* New() const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedFieldsGenerator_Group2>(NULL);
  }

  TestParsingMergeLite_RepeatedFieldsGenerator_Group2* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedFieldsGenerator_Group2>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestParsingMergeLite_RepeatedFieldsGenerator_Group2& from);
  void MergeFrom(const TestParsingMergeLite_RepeatedFieldsGenerator_Group2& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestParsingMergeLite_RepeatedFieldsGenerator_Group2* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .protobuf_unittest.TestAllTypesLite field1 = 21;
  bool has_field1() const;
  void clear_field1();
  static const int kField1FieldNumber = 21;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_field1() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& field1() const;
  ::protobuf_unittest::TestAllTypesLite* release_field1();
  ::protobuf_unittest::TestAllTypesLite* mutable_field1();
  void set_allocated_field1(::protobuf_unittest::TestAllTypesLite* field1);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2)
 private:
  void set_has_field1();
  void clear_has_field1();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::protobuf_unittest::TestAllTypesLite* field1_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestParsingMergeLite_RepeatedFieldsGenerator : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator) */ {
 public:
  TestParsingMergeLite_RepeatedFieldsGenerator();
  virtual ~TestParsingMergeLite_RepeatedFieldsGenerator();

  TestParsingMergeLite_RepeatedFieldsGenerator(const TestParsingMergeLite_RepeatedFieldsGenerator& from);

  inline TestParsingMergeLite_RepeatedFieldsGenerator& operator=(const TestParsingMergeLite_RepeatedFieldsGenerator& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestParsingMergeLite_RepeatedFieldsGenerator(TestParsingMergeLite_RepeatedFieldsGenerator&& from) noexcept
    : TestParsingMergeLite_RepeatedFieldsGenerator() {
    *this = ::std::move(from);
  }

  inline TestParsingMergeLite_RepeatedFieldsGenerator& operator=(TestParsingMergeLite_RepeatedFieldsGenerator&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestParsingMergeLite_RepeatedFieldsGenerator& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestParsingMergeLite_RepeatedFieldsGenerator* internal_default_instance() {
    return reinterpret_cast<const TestParsingMergeLite_RepeatedFieldsGenerator*>(
               &_TestParsingMergeLite_RepeatedFieldsGenerator_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    14;

  void Swap(TestParsingMergeLite_RepeatedFieldsGenerator* other);
  friend void swap(TestParsingMergeLite_RepeatedFieldsGenerator& a, TestParsingMergeLite_RepeatedFieldsGenerator& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestParsingMergeLite_RepeatedFieldsGenerator* New() const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedFieldsGenerator>(NULL);
  }

  TestParsingMergeLite_RepeatedFieldsGenerator* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedFieldsGenerator>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestParsingMergeLite_RepeatedFieldsGenerator& from);
  void MergeFrom(const TestParsingMergeLite_RepeatedFieldsGenerator& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestParsingMergeLite_RepeatedFieldsGenerator* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef TestParsingMergeLite_RepeatedFieldsGenerator_Group1 Group1;
  typedef TestParsingMergeLite_RepeatedFieldsGenerator_Group2 Group2;

  // accessors -------------------------------------------------------

  // repeated .protobuf_unittest.TestAllTypesLite field1 = 1;
  int field1_size() const;
  void clear_field1();
  static const int kField1FieldNumber = 1;
  ::protobuf_unittest::TestAllTypesLite* mutable_field1(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
      mutable_field1();
  const ::protobuf_unittest::TestAllTypesLite& field1(int index) const;
  ::protobuf_unittest::TestAllTypesLite* add_field1();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
      field1() const;

  // repeated .protobuf_unittest.TestAllTypesLite field2 = 2;
  int field2_size() const;
  void clear_field2();
  static const int kField2FieldNumber = 2;
  ::protobuf_unittest::TestAllTypesLite* mutable_field2(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
      mutable_field2();
  const ::protobuf_unittest::TestAllTypesLite& field2(int index) const;
  ::protobuf_unittest::TestAllTypesLite* add_field2();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
      field2() const;

  // repeated .protobuf_unittest.TestAllTypesLite field3 = 3;
  int field3_size() const;
  void clear_field3();
  static const int kField3FieldNumber = 3;
  ::protobuf_unittest::TestAllTypesLite* mutable_field3(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
      mutable_field3();
  const ::protobuf_unittest::TestAllTypesLite& field3(int index) const;
  ::protobuf_unittest::TestAllTypesLite* add_field3();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
      field3() const;

  // repeated group Group1 = 10 { ... };
  int group1_size() const;
  void clear_group1();
  static const int kGroup1FieldNumber = 10;
  ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1* mutable_group1(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1 >*
      mutable_group1();
  const ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1& group1(int index) const;
  ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1* add_group1();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1 >&
      group1() const;

  // repeated group Group2 = 20 { ... };
  int group2_size() const;
  void clear_group2();
  static const int kGroup2FieldNumber = 20;
  ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2* mutable_group2(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2 >*
      mutable_group2();
  const ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2& group2(int index) const;
  ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2* add_group2();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2 >&
      group2() const;

  // repeated .protobuf_unittest.TestAllTypesLite ext1 = 1000;
  int ext1_size() const;
  void clear_ext1();
  static const int kExt1FieldNumber = 1000;
  ::protobuf_unittest::TestAllTypesLite* mutable_ext1(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
      mutable_ext1();
  const ::protobuf_unittest::TestAllTypesLite& ext1(int index) const;
  ::protobuf_unittest::TestAllTypesLite* add_ext1();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
      ext1() const;

  // repeated .protobuf_unittest.TestAllTypesLite ext2 = 1001;
  int ext2_size() const;
  void clear_ext2();
  static const int kExt2FieldNumber = 1001;
  ::protobuf_unittest::TestAllTypesLite* mutable_ext2(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
      mutable_ext2();
  const ::protobuf_unittest::TestAllTypesLite& ext2(int index) const;
  ::protobuf_unittest::TestAllTypesLite* add_ext2();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
      ext2() const;

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite > field1_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite > field2_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite > field3_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1 > group1_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2 > group2_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite > ext1_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite > ext2_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestParsingMergeLite_OptionalGroup : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestParsingMergeLite.OptionalGroup) */ {
 public:
  TestParsingMergeLite_OptionalGroup();
  virtual ~TestParsingMergeLite_OptionalGroup();

  TestParsingMergeLite_OptionalGroup(const TestParsingMergeLite_OptionalGroup& from);

  inline TestParsingMergeLite_OptionalGroup& operator=(const TestParsingMergeLite_OptionalGroup& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestParsingMergeLite_OptionalGroup(TestParsingMergeLite_OptionalGroup&& from) noexcept
    : TestParsingMergeLite_OptionalGroup() {
    *this = ::std::move(from);
  }

  inline TestParsingMergeLite_OptionalGroup& operator=(TestParsingMergeLite_OptionalGroup&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestParsingMergeLite_OptionalGroup& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestParsingMergeLite_OptionalGroup* internal_default_instance() {
    return reinterpret_cast<const TestParsingMergeLite_OptionalGroup*>(
               &_TestParsingMergeLite_OptionalGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    15;

  void Swap(TestParsingMergeLite_OptionalGroup* other);
  friend void swap(TestParsingMergeLite_OptionalGroup& a, TestParsingMergeLite_OptionalGroup& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestParsingMergeLite_OptionalGroup* New() const final {
    return CreateMaybeMessage<TestParsingMergeLite_OptionalGroup>(NULL);
  }

  TestParsingMergeLite_OptionalGroup* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestParsingMergeLite_OptionalGroup>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestParsingMergeLite_OptionalGroup& from);
  void MergeFrom(const TestParsingMergeLite_OptionalGroup& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestParsingMergeLite_OptionalGroup* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .protobuf_unittest.TestAllTypesLite optional_group_all_types = 11;
  bool has_optional_group_all_types() const;
  void clear_optional_group_all_types();
  static const int kOptionalGroupAllTypesFieldNumber = 11;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_optional_group_all_types() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& optional_group_all_types() const;
  ::protobuf_unittest::TestAllTypesLite* release_optional_group_all_types();
  ::protobuf_unittest::TestAllTypesLite* mutable_optional_group_all_types();
  void set_allocated_optional_group_all_types(::protobuf_unittest::TestAllTypesLite* optional_group_all_types);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMergeLite.OptionalGroup)
 private:
  void set_has_optional_group_all_types();
  void clear_has_optional_group_all_types();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::protobuf_unittest::TestAllTypesLite* optional_group_all_types_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestParsingMergeLite_RepeatedGroup : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestParsingMergeLite.RepeatedGroup) */ {
 public:
  TestParsingMergeLite_RepeatedGroup();
  virtual ~TestParsingMergeLite_RepeatedGroup();

  TestParsingMergeLite_RepeatedGroup(const TestParsingMergeLite_RepeatedGroup& from);

  inline TestParsingMergeLite_RepeatedGroup& operator=(const TestParsingMergeLite_RepeatedGroup& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestParsingMergeLite_RepeatedGroup(TestParsingMergeLite_RepeatedGroup&& from) noexcept
    : TestParsingMergeLite_RepeatedGroup() {
    *this = ::std::move(from);
  }

  inline TestParsingMergeLite_RepeatedGroup& operator=(TestParsingMergeLite_RepeatedGroup&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestParsingMergeLite_RepeatedGroup& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestParsingMergeLite_RepeatedGroup* internal_default_instance() {
    return reinterpret_cast<const TestParsingMergeLite_RepeatedGroup*>(
               &_TestParsingMergeLite_RepeatedGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    16;

  void Swap(TestParsingMergeLite_RepeatedGroup* other);
  friend void swap(TestParsingMergeLite_RepeatedGroup& a, TestParsingMergeLite_RepeatedGroup& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestParsingMergeLite_RepeatedGroup* New() const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedGroup>(NULL);
  }

  TestParsingMergeLite_RepeatedGroup* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestParsingMergeLite_RepeatedGroup>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestParsingMergeLite_RepeatedGroup& from);
  void MergeFrom(const TestParsingMergeLite_RepeatedGroup& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestParsingMergeLite_RepeatedGroup* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional .protobuf_unittest.TestAllTypesLite repeated_group_all_types = 21;
  bool has_repeated_group_all_types() const;
  void clear_repeated_group_all_types();
  static const int kRepeatedGroupAllTypesFieldNumber = 21;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_repeated_group_all_types() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& repeated_group_all_types() const;
  ::protobuf_unittest::TestAllTypesLite* release_repeated_group_all_types();
  ::protobuf_unittest::TestAllTypesLite* mutable_repeated_group_all_types();
  void set_allocated_repeated_group_all_types(::protobuf_unittest::TestAllTypesLite* repeated_group_all_types);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMergeLite.RepeatedGroup)
 private:
  void set_has_repeated_group_all_types();
  void clear_has_repeated_group_all_types();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::protobuf_unittest::TestAllTypesLite* repeated_group_all_types_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestParsingMergeLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestParsingMergeLite) */ {
 public:
  TestParsingMergeLite();
  virtual ~TestParsingMergeLite();

  TestParsingMergeLite(const TestParsingMergeLite& from);

  inline TestParsingMergeLite& operator=(const TestParsingMergeLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestParsingMergeLite(TestParsingMergeLite&& from) noexcept
    : TestParsingMergeLite() {
    *this = ::std::move(from);
  }

  inline TestParsingMergeLite& operator=(TestParsingMergeLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestParsingMergeLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestParsingMergeLite* internal_default_instance() {
    return reinterpret_cast<const TestParsingMergeLite*>(
               &_TestParsingMergeLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    17;

  void Swap(TestParsingMergeLite* other);
  friend void swap(TestParsingMergeLite& a, TestParsingMergeLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestParsingMergeLite* New() const final {
    return CreateMaybeMessage<TestParsingMergeLite>(NULL);
  }

  TestParsingMergeLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestParsingMergeLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestParsingMergeLite& from);
  void MergeFrom(const TestParsingMergeLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestParsingMergeLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef TestParsingMergeLite_RepeatedFieldsGenerator RepeatedFieldsGenerator;
  typedef TestParsingMergeLite_OptionalGroup OptionalGroup;
  typedef TestParsingMergeLite_RepeatedGroup RepeatedGroup;

  // accessors -------------------------------------------------------

  // repeated .protobuf_unittest.TestAllTypesLite repeated_all_types = 3;
  int repeated_all_types_size() const;
  void clear_repeated_all_types();
  static const int kRepeatedAllTypesFieldNumber = 3;
  ::protobuf_unittest::TestAllTypesLite* mutable_repeated_all_types(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
      mutable_repeated_all_types();
  const ::protobuf_unittest::TestAllTypesLite& repeated_all_types(int index) const;
  ::protobuf_unittest::TestAllTypesLite* add_repeated_all_types();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
      repeated_all_types() const;

  // repeated group RepeatedGroup = 20 { ... };
  int repeatedgroup_size() const;
  void clear_repeatedgroup();
  static const int kRepeatedgroupFieldNumber = 20;
  ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup* mutable_repeatedgroup(int index);
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup >*
      mutable_repeatedgroup();
  const ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup& repeatedgroup(int index) const;
  ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup* add_repeatedgroup();
  const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup >&
      repeatedgroup() const;

  // required .protobuf_unittest.TestAllTypesLite required_all_types = 1;
  bool has_required_all_types() const;
  void clear_required_all_types();
  static const int kRequiredAllTypesFieldNumber = 1;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_required_all_types() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& required_all_types() const;
  ::protobuf_unittest::TestAllTypesLite* release_required_all_types();
  ::protobuf_unittest::TestAllTypesLite* mutable_required_all_types();
  void set_allocated_required_all_types(::protobuf_unittest::TestAllTypesLite* required_all_types);

  // optional .protobuf_unittest.TestAllTypesLite optional_all_types = 2;
  bool has_optional_all_types() const;
  void clear_optional_all_types();
  static const int kOptionalAllTypesFieldNumber = 2;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_optional_all_types() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& optional_all_types() const;
  ::protobuf_unittest::TestAllTypesLite* release_optional_all_types();
  ::protobuf_unittest::TestAllTypesLite* mutable_optional_all_types();
  void set_allocated_optional_all_types(::protobuf_unittest::TestAllTypesLite* optional_all_types);

  // optional group OptionalGroup = 10 { ... };
  bool has_optionalgroup() const;
  void clear_optionalgroup();
  static const int kOptionalgroupFieldNumber = 10;
  private:
  const ::protobuf_unittest::TestParsingMergeLite_OptionalGroup& _internal_optionalgroup() const;
  public:
  const ::protobuf_unittest::TestParsingMergeLite_OptionalGroup& optionalgroup() const;
  ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* release_optionalgroup();
  ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* mutable_optionalgroup();
  void set_allocated_optionalgroup(::protobuf_unittest::TestParsingMergeLite_OptionalGroup* optionalgroup);

  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestParsingMergeLite)
  static const int kOptionalExtFieldNumber = 1000;
  static ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestParsingMergeLite,
      ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestAllTypesLite >, 11, false >
    optional_ext;
  static const int kRepeatedExtFieldNumber = 1001;
  static ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestParsingMergeLite,
      ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::TestAllTypesLite >, 11, false >
    repeated_ext;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestParsingMergeLite)
 private:
  void set_has_required_all_types();
  void clear_has_required_all_types();
  void set_has_optional_all_types();
  void clear_has_optional_all_types();
  void set_has_optionalgroup();
  void clear_has_optionalgroup();

  ::google::protobuf::internal::ExtensionSet _extensions_;

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite > repeated_all_types_;
  ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup > repeatedgroup_;
  ::protobuf_unittest::TestAllTypesLite* required_all_types_;
  ::protobuf_unittest::TestAllTypesLite* optional_all_types_;
  ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* optionalgroup_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestEmptyMessageLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestEmptyMessageLite) */ {
 public:
  TestEmptyMessageLite();
  virtual ~TestEmptyMessageLite();

  TestEmptyMessageLite(const TestEmptyMessageLite& from);

  inline TestEmptyMessageLite& operator=(const TestEmptyMessageLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestEmptyMessageLite(TestEmptyMessageLite&& from) noexcept
    : TestEmptyMessageLite() {
    *this = ::std::move(from);
  }

  inline TestEmptyMessageLite& operator=(TestEmptyMessageLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestEmptyMessageLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestEmptyMessageLite* internal_default_instance() {
    return reinterpret_cast<const TestEmptyMessageLite*>(
               &_TestEmptyMessageLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    18;

  void Swap(TestEmptyMessageLite* other);
  friend void swap(TestEmptyMessageLite& a, TestEmptyMessageLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestEmptyMessageLite* New() const final {
    return CreateMaybeMessage<TestEmptyMessageLite>(NULL);
  }

  TestEmptyMessageLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestEmptyMessageLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestEmptyMessageLite& from);
  void MergeFrom(const TestEmptyMessageLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestEmptyMessageLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestEmptyMessageLite)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestEmptyMessageWithExtensionsLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestEmptyMessageWithExtensionsLite) */ {
 public:
  TestEmptyMessageWithExtensionsLite();
  virtual ~TestEmptyMessageWithExtensionsLite();

  TestEmptyMessageWithExtensionsLite(const TestEmptyMessageWithExtensionsLite& from);

  inline TestEmptyMessageWithExtensionsLite& operator=(const TestEmptyMessageWithExtensionsLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestEmptyMessageWithExtensionsLite(TestEmptyMessageWithExtensionsLite&& from) noexcept
    : TestEmptyMessageWithExtensionsLite() {
    *this = ::std::move(from);
  }

  inline TestEmptyMessageWithExtensionsLite& operator=(TestEmptyMessageWithExtensionsLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestEmptyMessageWithExtensionsLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestEmptyMessageWithExtensionsLite* internal_default_instance() {
    return reinterpret_cast<const TestEmptyMessageWithExtensionsLite*>(
               &_TestEmptyMessageWithExtensionsLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    19;

  void Swap(TestEmptyMessageWithExtensionsLite* other);
  friend void swap(TestEmptyMessageWithExtensionsLite& a, TestEmptyMessageWithExtensionsLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestEmptyMessageWithExtensionsLite* New() const final {
    return CreateMaybeMessage<TestEmptyMessageWithExtensionsLite>(NULL);
  }

  TestEmptyMessageWithExtensionsLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestEmptyMessageWithExtensionsLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestEmptyMessageWithExtensionsLite& from);
  void MergeFrom(const TestEmptyMessageWithExtensionsLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestEmptyMessageWithExtensionsLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestEmptyMessageWithExtensionsLite)
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestEmptyMessageWithExtensionsLite)
 private:

  ::google::protobuf::internal::ExtensionSet _extensions_;

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class V1MessageLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.V1MessageLite) */ {
 public:
  V1MessageLite();
  virtual ~V1MessageLite();

  V1MessageLite(const V1MessageLite& from);

  inline V1MessageLite& operator=(const V1MessageLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  V1MessageLite(V1MessageLite&& from) noexcept
    : V1MessageLite() {
    *this = ::std::move(from);
  }

  inline V1MessageLite& operator=(V1MessageLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const V1MessageLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const V1MessageLite* internal_default_instance() {
    return reinterpret_cast<const V1MessageLite*>(
               &_V1MessageLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    20;

  void Swap(V1MessageLite* other);
  friend void swap(V1MessageLite& a, V1MessageLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline V1MessageLite* New() const final {
    return CreateMaybeMessage<V1MessageLite>(NULL);
  }

  V1MessageLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<V1MessageLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const V1MessageLite& from);
  void MergeFrom(const V1MessageLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(V1MessageLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required int32 int_field = 1;
  bool has_int_field() const;
  void clear_int_field();
  static const int kIntFieldFieldNumber = 1;
  ::google::protobuf::int32 int_field() const;
  void set_int_field(::google::protobuf::int32 value);

  // optional .protobuf_unittest.V1EnumLite enum_field = 2 [default = V1_FIRST];
  bool has_enum_field() const;
  void clear_enum_field();
  static const int kEnumFieldFieldNumber = 2;
  ::protobuf_unittest::V1EnumLite enum_field() const;
  void set_enum_field(::protobuf_unittest::V1EnumLite value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.V1MessageLite)
 private:
  void set_has_int_field();
  void clear_has_int_field();
  void set_has_enum_field();
  void clear_has_enum_field();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 int_field_;
  int enum_field_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class V2MessageLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.V2MessageLite) */ {
 public:
  V2MessageLite();
  virtual ~V2MessageLite();

  V2MessageLite(const V2MessageLite& from);

  inline V2MessageLite& operator=(const V2MessageLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  V2MessageLite(V2MessageLite&& from) noexcept
    : V2MessageLite() {
    *this = ::std::move(from);
  }

  inline V2MessageLite& operator=(V2MessageLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const V2MessageLite& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const V2MessageLite* internal_default_instance() {
    return reinterpret_cast<const V2MessageLite*>(
               &_V2MessageLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    21;

  void Swap(V2MessageLite* other);
  friend void swap(V2MessageLite& a, V2MessageLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline V2MessageLite* New() const final {
    return CreateMaybeMessage<V2MessageLite>(NULL);
  }

  V2MessageLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<V2MessageLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const V2MessageLite& from);
  void MergeFrom(const V2MessageLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(V2MessageLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // required int32 int_field = 1;
  bool has_int_field() const;
  void clear_int_field();
  static const int kIntFieldFieldNumber = 1;
  ::google::protobuf::int32 int_field() const;
  void set_int_field(::google::protobuf::int32 value);

  // optional .protobuf_unittest.V2EnumLite enum_field = 2 [default = V2_FIRST];
  bool has_enum_field() const;
  void clear_enum_field();
  static const int kEnumFieldFieldNumber = 2;
  ::protobuf_unittest::V2EnumLite enum_field() const;
  void set_enum_field(::protobuf_unittest::V2EnumLite value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.V2MessageLite)
 private:
  void set_has_int_field();
  void clear_has_int_field();
  void set_has_enum_field();
  void clear_has_enum_field();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 int_field_;
  int enum_field_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestHugeFieldNumbersLite_OptionalGroup : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup) */ {
 public:
  TestHugeFieldNumbersLite_OptionalGroup();
  virtual ~TestHugeFieldNumbersLite_OptionalGroup();

  TestHugeFieldNumbersLite_OptionalGroup(const TestHugeFieldNumbersLite_OptionalGroup& from);

  inline TestHugeFieldNumbersLite_OptionalGroup& operator=(const TestHugeFieldNumbersLite_OptionalGroup& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestHugeFieldNumbersLite_OptionalGroup(TestHugeFieldNumbersLite_OptionalGroup&& from) noexcept
    : TestHugeFieldNumbersLite_OptionalGroup() {
    *this = ::std::move(from);
  }

  inline TestHugeFieldNumbersLite_OptionalGroup& operator=(TestHugeFieldNumbersLite_OptionalGroup&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestHugeFieldNumbersLite_OptionalGroup& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestHugeFieldNumbersLite_OptionalGroup* internal_default_instance() {
    return reinterpret_cast<const TestHugeFieldNumbersLite_OptionalGroup*>(
               &_TestHugeFieldNumbersLite_OptionalGroup_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    22;

  void Swap(TestHugeFieldNumbersLite_OptionalGroup* other);
  friend void swap(TestHugeFieldNumbersLite_OptionalGroup& a, TestHugeFieldNumbersLite_OptionalGroup& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestHugeFieldNumbersLite_OptionalGroup* New() const final {
    return CreateMaybeMessage<TestHugeFieldNumbersLite_OptionalGroup>(NULL);
  }

  TestHugeFieldNumbersLite_OptionalGroup* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestHugeFieldNumbersLite_OptionalGroup>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestHugeFieldNumbersLite_OptionalGroup& from);
  void MergeFrom(const TestHugeFieldNumbersLite_OptionalGroup& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestHugeFieldNumbersLite_OptionalGroup* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 group_a = 536870009;
  bool has_group_a() const;
  void clear_group_a();
  static const int kGroupAFieldNumber = 536870009;
  ::google::protobuf::int32 group_a() const;
  void set_group_a(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup)
 private:
  void set_has_group_a();
  void clear_has_group_a();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::int32 group_a_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse : public ::google::protobuf::internal::MapEntryLite<TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > {
public:
  typedef ::google::protobuf::internal::MapEntryLite<TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse, 
    ::std::string, ::std::string,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
    0 > SuperType;
  TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse();
  TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse(::google::protobuf::Arena* arena);
  void MergeFrom(const TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse& other);
  static const TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse* internal_default_instance() { return reinterpret_cast<const TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse*>(&_TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse_default_instance_); }
};

// -------------------------------------------------------------------

class TestHugeFieldNumbersLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestHugeFieldNumbersLite) */ {
 public:
  TestHugeFieldNumbersLite();
  virtual ~TestHugeFieldNumbersLite();

  TestHugeFieldNumbersLite(const TestHugeFieldNumbersLite& from);

  inline TestHugeFieldNumbersLite& operator=(const TestHugeFieldNumbersLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestHugeFieldNumbersLite(TestHugeFieldNumbersLite&& from) noexcept
    : TestHugeFieldNumbersLite() {
    *this = ::std::move(from);
  }

  inline TestHugeFieldNumbersLite& operator=(TestHugeFieldNumbersLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestHugeFieldNumbersLite& default_instance();

  enum OneofFieldCase {
    kOneofUint32 = 536870011,
    kOneofTestAllTypes = 536870012,
    kOneofString = 536870013,
    kOneofBytes = 536870014,
    ONEOF_FIELD_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestHugeFieldNumbersLite* internal_default_instance() {
    return reinterpret_cast<const TestHugeFieldNumbersLite*>(
               &_TestHugeFieldNumbersLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    24;

  void Swap(TestHugeFieldNumbersLite* other);
  friend void swap(TestHugeFieldNumbersLite& a, TestHugeFieldNumbersLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestHugeFieldNumbersLite* New() const final {
    return CreateMaybeMessage<TestHugeFieldNumbersLite>(NULL);
  }

  TestHugeFieldNumbersLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestHugeFieldNumbersLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestHugeFieldNumbersLite& from);
  void MergeFrom(const TestHugeFieldNumbersLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestHugeFieldNumbersLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef TestHugeFieldNumbersLite_OptionalGroup OptionalGroup;

  // accessors -------------------------------------------------------

  // repeated int32 repeated_int32 = 536870002 [packed = false];
  int repeated_int32_size() const;
  void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 536870002;
  ::google::protobuf::int32 repeated_int32(int index) const;
  void set_repeated_int32(int index, ::google::protobuf::int32 value);
  void add_repeated_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();

  // repeated int32 packed_int32 = 536870003 [packed = true];
  int packed_int32_size() const;
  void clear_packed_int32();
  static const int kPackedInt32FieldNumber = 536870003;
  ::google::protobuf::int32 packed_int32(int index) const;
  void set_packed_int32(int index, ::google::protobuf::int32 value);
  void add_packed_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      packed_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_packed_int32();

  // map<string, string> string_string_map = 536870010;
  int string_string_map_size() const;
  void clear_string_string_map();
  static const int kStringStringMapFieldNumber = 536870010;
  const ::google::protobuf::Map< ::std::string, ::std::string >&
      string_string_map() const;
  ::google::protobuf::Map< ::std::string, ::std::string >*
      mutable_string_string_map();

  // optional string optional_string = 536870005;
  bool has_optional_string() const;
  void clear_optional_string();
  static const int kOptionalStringFieldNumber = 536870005;
  const ::std::string& optional_string() const;
  void set_optional_string(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_string(::std::string&& value);
  #endif
  void set_optional_string(const char* value);
  void set_optional_string(const char* value, size_t size);
  ::std::string* mutable_optional_string();
  ::std::string* release_optional_string();
  void set_allocated_optional_string(::std::string* optional_string);

  // optional bytes optional_bytes = 536870006;
  bool has_optional_bytes() const;
  void clear_optional_bytes();
  static const int kOptionalBytesFieldNumber = 536870006;
  const ::std::string& optional_bytes() const;
  void set_optional_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_optional_bytes(::std::string&& value);
  #endif
  void set_optional_bytes(const char* value);
  void set_optional_bytes(const void* value, size_t size);
  ::std::string* mutable_optional_bytes();
  ::std::string* release_optional_bytes();
  void set_allocated_optional_bytes(::std::string* optional_bytes);

  // optional .protobuf_unittest.ForeignMessageLite optional_message = 536870007;
  bool has_optional_message() const;
  void clear_optional_message();
  static const int kOptionalMessageFieldNumber = 536870007;
  private:
  const ::protobuf_unittest::ForeignMessageLite& _internal_optional_message() const;
  public:
  const ::protobuf_unittest::ForeignMessageLite& optional_message() const;
  ::protobuf_unittest::ForeignMessageLite* release_optional_message();
  ::protobuf_unittest::ForeignMessageLite* mutable_optional_message();
  void set_allocated_optional_message(::protobuf_unittest::ForeignMessageLite* optional_message);

  // optional group OptionalGroup = 536870008 { ... };
  bool has_optionalgroup() const;
  void clear_optionalgroup();
  static const int kOptionalgroupFieldNumber = 536870008;
  private:
  const ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup& _internal_optionalgroup() const;
  public:
  const ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup& optionalgroup() const;
  ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* release_optionalgroup();
  ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* mutable_optionalgroup();
  void set_allocated_optionalgroup(::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* optionalgroup);

  // optional int32 optional_int32 = 536870000;
  bool has_optional_int32() const;
  void clear_optional_int32();
  static const int kOptionalInt32FieldNumber = 536870000;
  ::google::protobuf::int32 optional_int32() const;
  void set_optional_int32(::google::protobuf::int32 value);

  // optional int32 fixed_32 = 536870001;
  bool has_fixed_32() const;
  void clear_fixed_32();
  static const int kFixed32FieldNumber = 536870001;
  ::google::protobuf::int32 fixed_32() const;
  void set_fixed_32(::google::protobuf::int32 value);

  // optional .protobuf_unittest.ForeignEnumLite optional_enum = 536870004;
  bool has_optional_enum() const;
  void clear_optional_enum();
  static const int kOptionalEnumFieldNumber = 536870004;
  ::protobuf_unittest::ForeignEnumLite optional_enum() const;
  void set_optional_enum(::protobuf_unittest::ForeignEnumLite value);

  // optional uint32 oneof_uint32 = 536870011;
  bool has_oneof_uint32() const;
  void clear_oneof_uint32();
  static const int kOneofUint32FieldNumber = 536870011;
  ::google::protobuf::uint32 oneof_uint32() const;
  void set_oneof_uint32(::google::protobuf::uint32 value);

  // optional .protobuf_unittest.TestAllTypesLite oneof_test_all_types = 536870012;
  bool has_oneof_test_all_types() const;
  void clear_oneof_test_all_types();
  static const int kOneofTestAllTypesFieldNumber = 536870012;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_oneof_test_all_types() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& oneof_test_all_types() const;
  ::protobuf_unittest::TestAllTypesLite* release_oneof_test_all_types();
  ::protobuf_unittest::TestAllTypesLite* mutable_oneof_test_all_types();
  void set_allocated_oneof_test_all_types(::protobuf_unittest::TestAllTypesLite* oneof_test_all_types);

  // optional string oneof_string = 536870013;
  bool has_oneof_string() const;
  void clear_oneof_string();
  static const int kOneofStringFieldNumber = 536870013;
  const ::std::string& oneof_string() const;
  void set_oneof_string(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_string(::std::string&& value);
  #endif
  void set_oneof_string(const char* value);
  void set_oneof_string(const char* value, size_t size);
  ::std::string* mutable_oneof_string();
  ::std::string* release_oneof_string();
  void set_allocated_oneof_string(::std::string* oneof_string);

  // optional bytes oneof_bytes = 536870014;
  bool has_oneof_bytes() const;
  void clear_oneof_bytes();
  static const int kOneofBytesFieldNumber = 536870014;
  const ::std::string& oneof_bytes() const;
  void set_oneof_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_bytes(::std::string&& value);
  #endif
  void set_oneof_bytes(const char* value);
  void set_oneof_bytes(const void* value, size_t size);
  ::std::string* mutable_oneof_bytes();
  ::std::string* release_oneof_bytes();
  void set_allocated_oneof_bytes(::std::string* oneof_bytes);

  GOOGLE_PROTOBUF_EXTENSION_ACCESSORS(TestHugeFieldNumbersLite)
  void clear_oneof_field();
  OneofFieldCase oneof_field_case() const;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestHugeFieldNumbersLite)
 private:
  void set_has_optional_int32();
  void clear_has_optional_int32();
  void set_has_fixed_32();
  void clear_has_fixed_32();
  void set_has_optional_enum();
  void clear_has_optional_enum();
  void set_has_optional_string();
  void clear_has_optional_string();
  void set_has_optional_bytes();
  void clear_has_optional_bytes();
  void set_has_optional_message();
  void clear_has_optional_message();
  void set_has_optionalgroup();
  void clear_has_optionalgroup();
  void set_has_oneof_uint32();
  void set_has_oneof_test_all_types();
  void set_has_oneof_string();
  void set_has_oneof_bytes();

  inline bool has_oneof_field() const;
  inline void clear_has_oneof_field();

  ::google::protobuf::internal::ExtensionSet _extensions_;

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > packed_int32_;
  mutable int _packed_int32_cached_byte_size_;
  ::google::protobuf::internal::MapFieldLite<
      TestHugeFieldNumbersLite_StringStringMapEntry_DoNotUse,
      ::std::string, ::std::string,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
      0 > string_string_map_;
  ::google::protobuf::internal::ArenaStringPtr optional_string_;
  ::google::protobuf::internal::ArenaStringPtr optional_bytes_;
  ::protobuf_unittest::ForeignMessageLite* optional_message_;
  ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* optionalgroup_;
  ::google::protobuf::int32 optional_int32_;
  ::google::protobuf::int32 fixed_32_;
  int optional_enum_;
  union OneofFieldUnion {
    OneofFieldUnion() {}
    ::google::protobuf::uint32 oneof_uint32_;
    ::protobuf_unittest::TestAllTypesLite* oneof_test_all_types_;
    ::google::protobuf::internal::ArenaStringPtr oneof_string_;
    ::google::protobuf::internal::ArenaStringPtr oneof_bytes_;
  } oneof_field_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class TestOneofParsingLite : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.TestOneofParsingLite) */ {
 public:
  TestOneofParsingLite();
  virtual ~TestOneofParsingLite();

  TestOneofParsingLite(const TestOneofParsingLite& from);

  inline TestOneofParsingLite& operator=(const TestOneofParsingLite& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  TestOneofParsingLite(TestOneofParsingLite&& from) noexcept
    : TestOneofParsingLite() {
    *this = ::std::move(from);
  }

  inline TestOneofParsingLite& operator=(TestOneofParsingLite&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const TestOneofParsingLite& default_instance();

  enum OneofFieldCase {
    kOneofInt32 = 1,
    kOneofSubmessage = 2,
    kOneofString = 3,
    kOneofBytes = 4,
    kOneofStringCord = 5,
    kOneofBytesCord = 6,
    kOneofStringStringPiece = 7,
    kOneofBytesStringPiece = 8,
    kOneofEnum = 9,
    ONEOF_FIELD_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const TestOneofParsingLite* internal_default_instance() {
    return reinterpret_cast<const TestOneofParsingLite*>(
               &_TestOneofParsingLite_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    25;

  void Swap(TestOneofParsingLite* other);
  friend void swap(TestOneofParsingLite& a, TestOneofParsingLite& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline TestOneofParsingLite* New() const final {
    return CreateMaybeMessage<TestOneofParsingLite>(NULL);
  }

  TestOneofParsingLite* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<TestOneofParsingLite>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const TestOneofParsingLite& from);
  void MergeFrom(const TestOneofParsingLite& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(TestOneofParsingLite* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // optional int32 oneof_int32 = 1;
  bool has_oneof_int32() const;
  void clear_oneof_int32();
  static const int kOneofInt32FieldNumber = 1;
  ::google::protobuf::int32 oneof_int32() const;
  void set_oneof_int32(::google::protobuf::int32 value);

  // optional .protobuf_unittest.TestAllTypesLite oneof_submessage = 2;
  bool has_oneof_submessage() const;
  void clear_oneof_submessage();
  static const int kOneofSubmessageFieldNumber = 2;
  private:
  const ::protobuf_unittest::TestAllTypesLite& _internal_oneof_submessage() const;
  public:
  const ::protobuf_unittest::TestAllTypesLite& oneof_submessage() const;
  ::protobuf_unittest::TestAllTypesLite* release_oneof_submessage();
  ::protobuf_unittest::TestAllTypesLite* mutable_oneof_submessage();
  void set_allocated_oneof_submessage(::protobuf_unittest::TestAllTypesLite* oneof_submessage);

  // optional string oneof_string = 3;
  bool has_oneof_string() const;
  void clear_oneof_string();
  static const int kOneofStringFieldNumber = 3;
  const ::std::string& oneof_string() const;
  void set_oneof_string(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_string(::std::string&& value);
  #endif
  void set_oneof_string(const char* value);
  void set_oneof_string(const char* value, size_t size);
  ::std::string* mutable_oneof_string();
  ::std::string* release_oneof_string();
  void set_allocated_oneof_string(::std::string* oneof_string);

  // optional bytes oneof_bytes = 4 [default = "default bytes"];
  bool has_oneof_bytes() const;
  void clear_oneof_bytes();
  static const int kOneofBytesFieldNumber = 4;
  const ::std::string& oneof_bytes() const;
  void set_oneof_bytes(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_bytes(::std::string&& value);
  #endif
  void set_oneof_bytes(const char* value);
  void set_oneof_bytes(const void* value, size_t size);
  ::std::string* mutable_oneof_bytes();
  ::std::string* release_oneof_bytes();
  void set_allocated_oneof_bytes(::std::string* oneof_bytes);

  // optional string oneof_string_cord = 5 [default = "default Cord", ctype = CORD];
  bool has_oneof_string_cord() const;
  void clear_oneof_string_cord();
  static const int kOneofStringCordFieldNumber = 5;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& oneof_string_cord() const;
  void set_oneof_string_cord(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_string_cord(::std::string&& value);
  #endif
  void set_oneof_string_cord(const char* value);
  void set_oneof_string_cord(const char* value, size_t size);
  ::std::string* mutable_oneof_string_cord();
  ::std::string* release_oneof_string_cord();
  void set_allocated_oneof_string_cord(::std::string* oneof_string_cord);
 public:

  // optional bytes oneof_bytes_cord = 6 [ctype = CORD];
  bool has_oneof_bytes_cord() const;
  void clear_oneof_bytes_cord();
  static const int kOneofBytesCordFieldNumber = 6;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& oneof_bytes_cord() const;
  void set_oneof_bytes_cord(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_bytes_cord(::std::string&& value);
  #endif
  void set_oneof_bytes_cord(const char* value);
  void set_oneof_bytes_cord(const void* value, size_t size);
  ::std::string* mutable_oneof_bytes_cord();
  ::std::string* release_oneof_bytes_cord();
  void set_allocated_oneof_bytes_cord(::std::string* oneof_bytes_cord);
 public:

  // optional string oneof_string_string_piece = 7 [ctype = STRING_PIECE];
  bool has_oneof_string_string_piece() const;
  void clear_oneof_string_string_piece();
  static const int kOneofStringStringPieceFieldNumber = 7;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& oneof_string_string_piece() const;
  void set_oneof_string_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_string_string_piece(::std::string&& value);
  #endif
  void set_oneof_string_string_piece(const char* value);
  void set_oneof_string_string_piece(const char* value, size_t size);
  ::std::string* mutable_oneof_string_string_piece();
  ::std::string* release_oneof_string_string_piece();
  void set_allocated_oneof_string_string_piece(::std::string* oneof_string_string_piece);
 public:

  // optional bytes oneof_bytes_string_piece = 8 [default = "default StringPiece", ctype = STRING_PIECE];
  bool has_oneof_bytes_string_piece() const;
  void clear_oneof_bytes_string_piece();
  static const int kOneofBytesStringPieceFieldNumber = 8;
 private:
  // Hidden due to unknown ctype option.
  const ::std::string& oneof_bytes_string_piece() const;
  void set_oneof_bytes_string_piece(const ::std::string& value);
  #if LANG_CXX11
  void set_oneof_bytes_string_piece(::std::string&& value);
  #endif
  void set_oneof_bytes_string_piece(const char* value);
  void set_oneof_bytes_string_piece(const void* value, size_t size);
  ::std::string* mutable_oneof_bytes_string_piece();
  ::std::string* release_oneof_bytes_string_piece();
  void set_allocated_oneof_bytes_string_piece(::std::string* oneof_bytes_string_piece);
 public:

  // optional .protobuf_unittest.V2EnumLite oneof_enum = 9;
  bool has_oneof_enum() const;
  void clear_oneof_enum();
  static const int kOneofEnumFieldNumber = 9;
  ::protobuf_unittest::V2EnumLite oneof_enum() const;
  void set_oneof_enum(::protobuf_unittest::V2EnumLite value);

  void clear_oneof_field();
  OneofFieldCase oneof_field_case() const;
  // @@protoc_insertion_point(class_scope:protobuf_unittest.TestOneofParsingLite)
 private:
  void set_has_oneof_int32();
  void set_has_oneof_submessage();
  void set_has_oneof_string();
  void set_has_oneof_bytes();
  void set_has_oneof_string_cord();
  void set_has_oneof_bytes_cord();
  void set_has_oneof_string_string_piece();
  void set_has_oneof_bytes_string_piece();
  void set_has_oneof_enum();

  inline bool has_oneof_field() const;
  inline void clear_has_oneof_field();

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  union OneofFieldUnion {
    OneofFieldUnion() {}
    ::google::protobuf::int32 oneof_int32_;
    ::protobuf_unittest::TestAllTypesLite* oneof_submessage_;
    ::google::protobuf::internal::ArenaStringPtr oneof_string_;
    ::google::protobuf::internal::ArenaStringPtr oneof_bytes_;
    ::google::protobuf::internal::ArenaStringPtr oneof_string_cord_;
    ::google::protobuf::internal::ArenaStringPtr oneof_bytes_cord_;
    ::google::protobuf::internal::ArenaStringPtr oneof_string_string_piece_;
    ::google::protobuf::internal::ArenaStringPtr oneof_bytes_string_piece_;
    int oneof_enum_;
  } oneof_field_;
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_oneof_bytes_;
  private:
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_oneof_string_cord_;
  private:
  public:
  static ::google::protobuf::internal::ExplicitlyConstructed< ::std::string> _i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_;
  private:
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class PackedInt32 : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.PackedInt32) */ {
 public:
  PackedInt32();
  virtual ~PackedInt32();

  PackedInt32(const PackedInt32& from);

  inline PackedInt32& operator=(const PackedInt32& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  PackedInt32(PackedInt32&& from) noexcept
    : PackedInt32() {
    *this = ::std::move(from);
  }

  inline PackedInt32& operator=(PackedInt32&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const PackedInt32& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PackedInt32* internal_default_instance() {
    return reinterpret_cast<const PackedInt32*>(
               &_PackedInt32_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    26;

  void Swap(PackedInt32* other);
  friend void swap(PackedInt32& a, PackedInt32& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline PackedInt32* New() const final {
    return CreateMaybeMessage<PackedInt32>(NULL);
  }

  PackedInt32* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<PackedInt32>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const PackedInt32& from);
  void MergeFrom(const PackedInt32& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(PackedInt32* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated int32 repeated_int32 = 2048 [packed = true];
  int repeated_int32_size() const;
  void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 2048;
  ::google::protobuf::int32 repeated_int32(int index) const;
  void set_repeated_int32(int index, ::google::protobuf::int32 value);
  void add_repeated_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.PackedInt32)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  mutable int _repeated_int32_cached_byte_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NonPackedInt32 : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.NonPackedInt32) */ {
 public:
  NonPackedInt32();
  virtual ~NonPackedInt32();

  NonPackedInt32(const NonPackedInt32& from);

  inline NonPackedInt32& operator=(const NonPackedInt32& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  NonPackedInt32(NonPackedInt32&& from) noexcept
    : NonPackedInt32() {
    *this = ::std::move(from);
  }

  inline NonPackedInt32& operator=(NonPackedInt32&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const NonPackedInt32& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const NonPackedInt32* internal_default_instance() {
    return reinterpret_cast<const NonPackedInt32*>(
               &_NonPackedInt32_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    27;

  void Swap(NonPackedInt32* other);
  friend void swap(NonPackedInt32& a, NonPackedInt32& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline NonPackedInt32* New() const final {
    return CreateMaybeMessage<NonPackedInt32>(NULL);
  }

  NonPackedInt32* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<NonPackedInt32>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const NonPackedInt32& from);
  void MergeFrom(const NonPackedInt32& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(NonPackedInt32* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated int32 repeated_int32 = 2048;
  int repeated_int32_size() const;
  void clear_repeated_int32();
  static const int kRepeatedInt32FieldNumber = 2048;
  ::google::protobuf::int32 repeated_int32(int index) const;
  void set_repeated_int32(int index, ::google::protobuf::int32 value);
  void add_repeated_int32(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      repeated_int32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_repeated_int32();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.NonPackedInt32)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > repeated_int32_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class PackedFixed32 : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.PackedFixed32) */ {
 public:
  PackedFixed32();
  virtual ~PackedFixed32();

  PackedFixed32(const PackedFixed32& from);

  inline PackedFixed32& operator=(const PackedFixed32& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  PackedFixed32(PackedFixed32&& from) noexcept
    : PackedFixed32() {
    *this = ::std::move(from);
  }

  inline PackedFixed32& operator=(PackedFixed32&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const PackedFixed32& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const PackedFixed32* internal_default_instance() {
    return reinterpret_cast<const PackedFixed32*>(
               &_PackedFixed32_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    28;

  void Swap(PackedFixed32* other);
  friend void swap(PackedFixed32& a, PackedFixed32& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline PackedFixed32* New() const final {
    return CreateMaybeMessage<PackedFixed32>(NULL);
  }

  PackedFixed32* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<PackedFixed32>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const PackedFixed32& from);
  void MergeFrom(const PackedFixed32& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(PackedFixed32* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated fixed32 repeated_fixed32 = 2048 [packed = true];
  int repeated_fixed32_size() const;
  void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 2048;
  ::google::protobuf::uint32 repeated_fixed32(int index) const;
  void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  void add_repeated_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.PackedFixed32)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  mutable int _repeated_fixed32_cached_byte_size_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// -------------------------------------------------------------------

class NonPackedFixed32 : public ::google::protobuf::MessageLite /* @@protoc_insertion_point(class_definition:protobuf_unittest.NonPackedFixed32) */ {
 public:
  NonPackedFixed32();
  virtual ~NonPackedFixed32();

  NonPackedFixed32(const NonPackedFixed32& from);

  inline NonPackedFixed32& operator=(const NonPackedFixed32& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  NonPackedFixed32(NonPackedFixed32&& from) noexcept
    : NonPackedFixed32() {
    *this = ::std::move(from);
  }

  inline NonPackedFixed32& operator=(NonPackedFixed32&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  inline const ::std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields();
  }
  inline ::std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

  static const NonPackedFixed32& default_instance();

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const NonPackedFixed32* internal_default_instance() {
    return reinterpret_cast<const NonPackedFixed32*>(
               &_NonPackedFixed32_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    29;

  void Swap(NonPackedFixed32* other);
  friend void swap(NonPackedFixed32& a, NonPackedFixed32& b) {
    a.Swap(&b);
  }

  // implements Message ----------------------------------------------

  inline NonPackedFixed32* New() const final {
    return CreateMaybeMessage<NonPackedFixed32>(NULL);
  }

  NonPackedFixed32* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<NonPackedFixed32>(arena);
  }
  void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from)
    final;
  void CopyFrom(const NonPackedFixed32& from);
  void MergeFrom(const NonPackedFixed32& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  void DiscardUnknownFields();
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(NonPackedFixed32* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // repeated fixed32 repeated_fixed32 = 2048;
  int repeated_fixed32_size() const;
  void clear_repeated_fixed32();
  static const int kRepeatedFixed32FieldNumber = 2048;
  ::google::protobuf::uint32 repeated_fixed32(int index) const;
  void set_repeated_fixed32(int index, ::google::protobuf::uint32 value);
  void add_repeated_fixed32(::google::protobuf::uint32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      repeated_fixed32() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_repeated_fixed32();

  // @@protoc_insertion_point(class_scope:protobuf_unittest.NonPackedFixed32)
 private:

  ::google::protobuf::internal::InternalMetadataWithArenaLite _internal_metadata_;
  ::google::protobuf::internal::HasBits<1> _has_bits_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > repeated_fixed32_;
  friend struct ::protobuf_google_2fprotobuf_2funittest_5flite_2eproto::TableStruct;
};
// ===================================================================

static const int kOptionalInt32ExtensionLiteFieldNumber = 1;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  optional_int32_extension_lite;
static const int kOptionalInt64ExtensionLiteFieldNumber = 2;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 3, false >
  optional_int64_extension_lite;
static const int kOptionalUint32ExtensionLiteFieldNumber = 3;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  optional_uint32_extension_lite;
static const int kOptionalUint64ExtensionLiteFieldNumber = 4;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, false >
  optional_uint64_extension_lite;
static const int kOptionalSint32ExtensionLiteFieldNumber = 5;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 17, false >
  optional_sint32_extension_lite;
static const int kOptionalSint64ExtensionLiteFieldNumber = 6;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 18, false >
  optional_sint64_extension_lite;
static const int kOptionalFixed32ExtensionLiteFieldNumber = 7;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, false >
  optional_fixed32_extension_lite;
static const int kOptionalFixed64ExtensionLiteFieldNumber = 8;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, false >
  optional_fixed64_extension_lite;
static const int kOptionalSfixed32ExtensionLiteFieldNumber = 9;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 15, false >
  optional_sfixed32_extension_lite;
static const int kOptionalSfixed64ExtensionLiteFieldNumber = 10;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 16, false >
  optional_sfixed64_extension_lite;
static const int kOptionalFloatExtensionLiteFieldNumber = 11;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< float >, 2, false >
  optional_float_extension_lite;
static const int kOptionalDoubleExtensionLiteFieldNumber = 12;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< double >, 1, false >
  optional_double_extension_lite;
static const int kOptionalBoolExtensionLiteFieldNumber = 13;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< bool >, 8, false >
  optional_bool_extension_lite;
static const int kOptionalStringExtensionLiteFieldNumber = 14;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  optional_string_extension_lite;
static const int kOptionalBytesExtensionLiteFieldNumber = 15;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 12, false >
  optional_bytes_extension_lite;
static const int kOptionalgroupExtensionLiteFieldNumber = 16;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::OptionalGroup_extension_lite >, 10, false >
  optionalgroup_extension_lite;
static const int kOptionalNestedMessageExtensionLiteFieldNumber = 18;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedMessage >, 11, false >
  optional_nested_message_extension_lite;
static const int kOptionalForeignMessageExtensionLiteFieldNumber = 19;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::ForeignMessageLite >, 11, false >
  optional_foreign_message_extension_lite;
static const int kOptionalImportMessageExtensionLiteFieldNumber = 20;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest_import::ImportMessageLite >, 11, false >
  optional_import_message_extension_lite;
static const int kOptionalNestedEnumExtensionLiteFieldNumber = 21;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedEnum, ::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid>, 14, false >
  optional_nested_enum_extension_lite;
static const int kOptionalForeignEnumExtensionLiteFieldNumber = 22;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest::ForeignEnumLite, ::protobuf_unittest::ForeignEnumLite_IsValid>, 14, false >
  optional_foreign_enum_extension_lite;
static const int kOptionalImportEnumExtensionLiteFieldNumber = 23;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest_import::ImportEnumLite, ::protobuf_unittest_import::ImportEnumLite_IsValid>, 14, false >
  optional_import_enum_extension_lite;
static const int kOptionalStringPieceExtensionLiteFieldNumber = 24;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  optional_string_piece_extension_lite;
static const int kOptionalCordExtensionLiteFieldNumber = 25;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  optional_cord_extension_lite;
static const int kOptionalPublicImportMessageExtensionLiteFieldNumber = 26;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest_import::PublicImportMessageLite >, 11, false >
  optional_public_import_message_extension_lite;
static const int kOptionalLazyMessageExtensionLiteFieldNumber = 27;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedMessage >, 11, false >
  optional_lazy_message_extension_lite;
static const int kRepeatedInt32ExtensionLiteFieldNumber = 31;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  repeated_int32_extension_lite;
static const int kRepeatedInt64ExtensionLiteFieldNumber = 32;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 3, false >
  repeated_int64_extension_lite;
static const int kRepeatedUint32ExtensionLiteFieldNumber = 33;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  repeated_uint32_extension_lite;
static const int kRepeatedUint64ExtensionLiteFieldNumber = 34;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, false >
  repeated_uint64_extension_lite;
static const int kRepeatedSint32ExtensionLiteFieldNumber = 35;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 17, false >
  repeated_sint32_extension_lite;
static const int kRepeatedSint64ExtensionLiteFieldNumber = 36;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 18, false >
  repeated_sint64_extension_lite;
static const int kRepeatedFixed32ExtensionLiteFieldNumber = 37;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, false >
  repeated_fixed32_extension_lite;
static const int kRepeatedFixed64ExtensionLiteFieldNumber = 38;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, false >
  repeated_fixed64_extension_lite;
static const int kRepeatedSfixed32ExtensionLiteFieldNumber = 39;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 15, false >
  repeated_sfixed32_extension_lite;
static const int kRepeatedSfixed64ExtensionLiteFieldNumber = 40;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 16, false >
  repeated_sfixed64_extension_lite;
static const int kRepeatedFloatExtensionLiteFieldNumber = 41;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< float >, 2, false >
  repeated_float_extension_lite;
static const int kRepeatedDoubleExtensionLiteFieldNumber = 42;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< double >, 1, false >
  repeated_double_extension_lite;
static const int kRepeatedBoolExtensionLiteFieldNumber = 43;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< bool >, 8, false >
  repeated_bool_extension_lite;
static const int kRepeatedStringExtensionLiteFieldNumber = 44;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 9, false >
  repeated_string_extension_lite;
static const int kRepeatedBytesExtensionLiteFieldNumber = 45;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 12, false >
  repeated_bytes_extension_lite;
static const int kRepeatedgroupExtensionLiteFieldNumber = 46;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::RepeatedGroup_extension_lite >, 10, false >
  repeatedgroup_extension_lite;
static const int kRepeatedNestedMessageExtensionLiteFieldNumber = 48;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedMessage >, 11, false >
  repeated_nested_message_extension_lite;
static const int kRepeatedForeignMessageExtensionLiteFieldNumber = 49;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::ForeignMessageLite >, 11, false >
  repeated_foreign_message_extension_lite;
static const int kRepeatedImportMessageExtensionLiteFieldNumber = 50;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest_import::ImportMessageLite >, 11, false >
  repeated_import_message_extension_lite;
static const int kRepeatedNestedEnumExtensionLiteFieldNumber = 51;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedEnum, ::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid>, 14, false >
  repeated_nested_enum_extension_lite;
static const int kRepeatedForeignEnumExtensionLiteFieldNumber = 52;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< ::protobuf_unittest::ForeignEnumLite, ::protobuf_unittest::ForeignEnumLite_IsValid>, 14, false >
  repeated_foreign_enum_extension_lite;
static const int kRepeatedImportEnumExtensionLiteFieldNumber = 53;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< ::protobuf_unittest_import::ImportEnumLite, ::protobuf_unittest_import::ImportEnumLite_IsValid>, 14, false >
  repeated_import_enum_extension_lite;
static const int kRepeatedStringPieceExtensionLiteFieldNumber = 54;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 9, false >
  repeated_string_piece_extension_lite;
static const int kRepeatedCordExtensionLiteFieldNumber = 55;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedStringTypeTraits, 9, false >
  repeated_cord_extension_lite;
static const int kRepeatedLazyMessageExtensionLiteFieldNumber = 57;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::RepeatedMessageTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedMessage >, 11, false >
  repeated_lazy_message_extension_lite;
static const int kDefaultInt32ExtensionLiteFieldNumber = 61;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 5, false >
  default_int32_extension_lite;
static const int kDefaultInt64ExtensionLiteFieldNumber = 62;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 3, false >
  default_int64_extension_lite;
static const int kDefaultUint32ExtensionLiteFieldNumber = 63;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  default_uint32_extension_lite;
static const int kDefaultUint64ExtensionLiteFieldNumber = 64;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, false >
  default_uint64_extension_lite;
static const int kDefaultSint32ExtensionLiteFieldNumber = 65;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 17, false >
  default_sint32_extension_lite;
static const int kDefaultSint64ExtensionLiteFieldNumber = 66;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 18, false >
  default_sint64_extension_lite;
static const int kDefaultFixed32ExtensionLiteFieldNumber = 67;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, false >
  default_fixed32_extension_lite;
static const int kDefaultFixed64ExtensionLiteFieldNumber = 68;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, false >
  default_fixed64_extension_lite;
static const int kDefaultSfixed32ExtensionLiteFieldNumber = 69;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int32 >, 15, false >
  default_sfixed32_extension_lite;
static const int kDefaultSfixed64ExtensionLiteFieldNumber = 70;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::int64 >, 16, false >
  default_sfixed64_extension_lite;
static const int kDefaultFloatExtensionLiteFieldNumber = 71;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< float >, 2, false >
  default_float_extension_lite;
static const int kDefaultDoubleExtensionLiteFieldNumber = 72;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< double >, 1, false >
  default_double_extension_lite;
static const int kDefaultBoolExtensionLiteFieldNumber = 73;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< bool >, 8, false >
  default_bool_extension_lite;
static const int kDefaultStringExtensionLiteFieldNumber = 74;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  default_string_extension_lite;
static const int kDefaultBytesExtensionLiteFieldNumber = 75;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 12, false >
  default_bytes_extension_lite;
static const int kDefaultNestedEnumExtensionLiteFieldNumber = 81;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedEnum, ::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid>, 14, false >
  default_nested_enum_extension_lite;
static const int kDefaultForeignEnumExtensionLiteFieldNumber = 82;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest::ForeignEnumLite, ::protobuf_unittest::ForeignEnumLite_IsValid>, 14, false >
  default_foreign_enum_extension_lite;
static const int kDefaultImportEnumExtensionLiteFieldNumber = 83;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::EnumTypeTraits< ::protobuf_unittest_import::ImportEnumLite, ::protobuf_unittest_import::ImportEnumLite_IsValid>, 14, false >
  default_import_enum_extension_lite;
static const int kDefaultStringPieceExtensionLiteFieldNumber = 84;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  default_string_piece_extension_lite;
static const int kDefaultCordExtensionLiteFieldNumber = 85;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  default_cord_extension_lite;
static const int kOneofUint32ExtensionLiteFieldNumber = 111;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::PrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, false >
  oneof_uint32_extension_lite;
static const int kOneofNestedMessageExtensionLiteFieldNumber = 112;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestAllTypesLite_NestedMessage >, 11, false >
  oneof_nested_message_extension_lite;
static const int kOneofStringExtensionLiteFieldNumber = 113;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 9, false >
  oneof_string_extension_lite;
static const int kOneofBytesExtensionLiteFieldNumber = 114;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestAllExtensionsLite,
    ::google::protobuf::internal::StringTypeTraits, 12, false >
  oneof_bytes_extension_lite;
static const int kPackedInt32ExtensionLiteFieldNumber = 90;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 5, true >
  packed_int32_extension_lite;
static const int kPackedInt64ExtensionLiteFieldNumber = 91;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 3, true >
  packed_int64_extension_lite;
static const int kPackedUint32ExtensionLiteFieldNumber = 92;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 13, true >
  packed_uint32_extension_lite;
static const int kPackedUint64ExtensionLiteFieldNumber = 93;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 4, true >
  packed_uint64_extension_lite;
static const int kPackedSint32ExtensionLiteFieldNumber = 94;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 17, true >
  packed_sint32_extension_lite;
static const int kPackedSint64ExtensionLiteFieldNumber = 95;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 18, true >
  packed_sint64_extension_lite;
static const int kPackedFixed32ExtensionLiteFieldNumber = 96;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint32 >, 7, true >
  packed_fixed32_extension_lite;
static const int kPackedFixed64ExtensionLiteFieldNumber = 97;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::uint64 >, 6, true >
  packed_fixed64_extension_lite;
static const int kPackedSfixed32ExtensionLiteFieldNumber = 98;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int32 >, 15, true >
  packed_sfixed32_extension_lite;
static const int kPackedSfixed64ExtensionLiteFieldNumber = 99;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< ::google::protobuf::int64 >, 16, true >
  packed_sfixed64_extension_lite;
static const int kPackedFloatExtensionLiteFieldNumber = 100;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< float >, 2, true >
  packed_float_extension_lite;
static const int kPackedDoubleExtensionLiteFieldNumber = 101;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< double >, 1, true >
  packed_double_extension_lite;
static const int kPackedBoolExtensionLiteFieldNumber = 102;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedPrimitiveTypeTraits< bool >, 8, true >
  packed_bool_extension_lite;
static const int kPackedEnumExtensionLiteFieldNumber = 103;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestPackedExtensionsLite,
    ::google::protobuf::internal::RepeatedEnumTypeTraits< ::protobuf_unittest::ForeignEnumLite, ::protobuf_unittest::ForeignEnumLite_IsValid>, 14, true >
  packed_enum_extension_lite;
static const int kTestAllTypesLiteFieldNumber = 536860000;
extern ::google::protobuf::internal::ExtensionIdentifier< ::protobuf_unittest::TestHugeFieldNumbersLite,
    ::google::protobuf::internal::MessageTypeTraits< ::protobuf_unittest::TestAllTypesLite >, 11, false >
  test_all_types_lite;

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

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// TestAllTypesLite_NestedMessage

// optional int32 bb = 1;
inline bool TestAllTypesLite_NestedMessage::has_bb() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestAllTypesLite_NestedMessage::set_has_bb() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestAllTypesLite_NestedMessage::clear_has_bb() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestAllTypesLite_NestedMessage::clear_bb() {
  bb_ = 0;
  clear_has_bb();
}
inline ::google::protobuf::int32 TestAllTypesLite_NestedMessage::bb() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.NestedMessage.bb)
  return bb_;
}
inline void TestAllTypesLite_NestedMessage::set_bb(::google::protobuf::int32 value) {
  set_has_bb();
  bb_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.NestedMessage.bb)
}

// optional int64 cc = 2;
inline bool TestAllTypesLite_NestedMessage::has_cc() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypesLite_NestedMessage::set_has_cc() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypesLite_NestedMessage::clear_has_cc() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypesLite_NestedMessage::clear_cc() {
  cc_ = GOOGLE_LONGLONG(0);
  clear_has_cc();
}
inline ::google::protobuf::int64 TestAllTypesLite_NestedMessage::cc() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.NestedMessage.cc)
  return cc_;
}
inline void TestAllTypesLite_NestedMessage::set_cc(::google::protobuf::int64 value) {
  set_has_cc();
  cc_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.NestedMessage.cc)
}

// -------------------------------------------------------------------

// TestAllTypesLite_OptionalGroup

// optional int32 a = 17;
inline bool TestAllTypesLite_OptionalGroup::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypesLite_OptionalGroup::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypesLite_OptionalGroup::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypesLite_OptionalGroup::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestAllTypesLite_OptionalGroup::a() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.OptionalGroup.a)
  return a_;
}
inline void TestAllTypesLite_OptionalGroup::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.OptionalGroup.a)
}

// -------------------------------------------------------------------

// TestAllTypesLite_RepeatedGroup

// optional int32 a = 47;
inline bool TestAllTypesLite_RepeatedGroup::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypesLite_RepeatedGroup::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypesLite_RepeatedGroup::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypesLite_RepeatedGroup::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 TestAllTypesLite_RepeatedGroup::a() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.RepeatedGroup.a)
  return a_;
}
inline void TestAllTypesLite_RepeatedGroup::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.RepeatedGroup.a)
}

// -------------------------------------------------------------------

// TestAllTypesLite

// optional int32 optional_int32 = 1;
inline bool TestAllTypesLite::has_optional_int32() const {
  return (_has_bits_[0] & 0x00008000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_int32() {
  _has_bits_[0] |= 0x00008000u;
}
inline void TestAllTypesLite::clear_has_optional_int32() {
  _has_bits_[0] &= ~0x00008000u;
}
inline void TestAllTypesLite::clear_optional_int32() {
  optional_int32_ = 0;
  clear_has_optional_int32();
}
inline ::google::protobuf::int32 TestAllTypesLite::optional_int32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_int32)
  return optional_int32_;
}
inline void TestAllTypesLite::set_optional_int32(::google::protobuf::int32 value) {
  set_has_optional_int32();
  optional_int32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_int32)
}

// optional int64 optional_int64 = 2;
inline bool TestAllTypesLite::has_optional_int64() const {
  return (_has_bits_[0] & 0x00004000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_int64() {
  _has_bits_[0] |= 0x00004000u;
}
inline void TestAllTypesLite::clear_has_optional_int64() {
  _has_bits_[0] &= ~0x00004000u;
}
inline void TestAllTypesLite::clear_optional_int64() {
  optional_int64_ = GOOGLE_LONGLONG(0);
  clear_has_optional_int64();
}
inline ::google::protobuf::int64 TestAllTypesLite::optional_int64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_int64)
  return optional_int64_;
}
inline void TestAllTypesLite::set_optional_int64(::google::protobuf::int64 value) {
  set_has_optional_int64();
  optional_int64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_int64)
}

// optional uint32 optional_uint32 = 3;
inline bool TestAllTypesLite::has_optional_uint32() const {
  return (_has_bits_[0] & 0x00010000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_uint32() {
  _has_bits_[0] |= 0x00010000u;
}
inline void TestAllTypesLite::clear_has_optional_uint32() {
  _has_bits_[0] &= ~0x00010000u;
}
inline void TestAllTypesLite::clear_optional_uint32() {
  optional_uint32_ = 0u;
  clear_has_optional_uint32();
}
inline ::google::protobuf::uint32 TestAllTypesLite::optional_uint32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_uint32)
  return optional_uint32_;
}
inline void TestAllTypesLite::set_optional_uint32(::google::protobuf::uint32 value) {
  set_has_optional_uint32();
  optional_uint32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_uint32)
}

// optional uint64 optional_uint64 = 4;
inline bool TestAllTypesLite::has_optional_uint64() const {
  return (_has_bits_[0] & 0x00020000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_uint64() {
  _has_bits_[0] |= 0x00020000u;
}
inline void TestAllTypesLite::clear_has_optional_uint64() {
  _has_bits_[0] &= ~0x00020000u;
}
inline void TestAllTypesLite::clear_optional_uint64() {
  optional_uint64_ = GOOGLE_ULONGLONG(0);
  clear_has_optional_uint64();
}
inline ::google::protobuf::uint64 TestAllTypesLite::optional_uint64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_uint64)
  return optional_uint64_;
}
inline void TestAllTypesLite::set_optional_uint64(::google::protobuf::uint64 value) {
  set_has_optional_uint64();
  optional_uint64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_uint64)
}

// optional sint32 optional_sint32 = 5;
inline bool TestAllTypesLite::has_optional_sint32() const {
  return (_has_bits_[0] & 0x00080000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_sint32() {
  _has_bits_[0] |= 0x00080000u;
}
inline void TestAllTypesLite::clear_has_optional_sint32() {
  _has_bits_[0] &= ~0x00080000u;
}
inline void TestAllTypesLite::clear_optional_sint32() {
  optional_sint32_ = 0;
  clear_has_optional_sint32();
}
inline ::google::protobuf::int32 TestAllTypesLite::optional_sint32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_sint32)
  return optional_sint32_;
}
inline void TestAllTypesLite::set_optional_sint32(::google::protobuf::int32 value) {
  set_has_optional_sint32();
  optional_sint32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_sint32)
}

// optional sint64 optional_sint64 = 6;
inline bool TestAllTypesLite::has_optional_sint64() const {
  return (_has_bits_[0] & 0x00040000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_sint64() {
  _has_bits_[0] |= 0x00040000u;
}
inline void TestAllTypesLite::clear_has_optional_sint64() {
  _has_bits_[0] &= ~0x00040000u;
}
inline void TestAllTypesLite::clear_optional_sint64() {
  optional_sint64_ = GOOGLE_LONGLONG(0);
  clear_has_optional_sint64();
}
inline ::google::protobuf::int64 TestAllTypesLite::optional_sint64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_sint64)
  return optional_sint64_;
}
inline void TestAllTypesLite::set_optional_sint64(::google::protobuf::int64 value) {
  set_has_optional_sint64();
  optional_sint64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_sint64)
}

// optional fixed32 optional_fixed32 = 7;
inline bool TestAllTypesLite::has_optional_fixed32() const {
  return (_has_bits_[0] & 0x00100000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_fixed32() {
  _has_bits_[0] |= 0x00100000u;
}
inline void TestAllTypesLite::clear_has_optional_fixed32() {
  _has_bits_[0] &= ~0x00100000u;
}
inline void TestAllTypesLite::clear_optional_fixed32() {
  optional_fixed32_ = 0u;
  clear_has_optional_fixed32();
}
inline ::google::protobuf::uint32 TestAllTypesLite::optional_fixed32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_fixed32)
  return optional_fixed32_;
}
inline void TestAllTypesLite::set_optional_fixed32(::google::protobuf::uint32 value) {
  set_has_optional_fixed32();
  optional_fixed32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_fixed32)
}

// optional fixed64 optional_fixed64 = 8;
inline bool TestAllTypesLite::has_optional_fixed64() const {
  return (_has_bits_[0] & 0x00200000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_fixed64() {
  _has_bits_[0] |= 0x00200000u;
}
inline void TestAllTypesLite::clear_has_optional_fixed64() {
  _has_bits_[0] &= ~0x00200000u;
}
inline void TestAllTypesLite::clear_optional_fixed64() {
  optional_fixed64_ = GOOGLE_ULONGLONG(0);
  clear_has_optional_fixed64();
}
inline ::google::protobuf::uint64 TestAllTypesLite::optional_fixed64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_fixed64)
  return optional_fixed64_;
}
inline void TestAllTypesLite::set_optional_fixed64(::google::protobuf::uint64 value) {
  set_has_optional_fixed64();
  optional_fixed64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_fixed64)
}

// optional sfixed32 optional_sfixed32 = 9;
inline bool TestAllTypesLite::has_optional_sfixed32() const {
  return (_has_bits_[0] & 0x00800000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_sfixed32() {
  _has_bits_[0] |= 0x00800000u;
}
inline void TestAllTypesLite::clear_has_optional_sfixed32() {
  _has_bits_[0] &= ~0x00800000u;
}
inline void TestAllTypesLite::clear_optional_sfixed32() {
  optional_sfixed32_ = 0;
  clear_has_optional_sfixed32();
}
inline ::google::protobuf::int32 TestAllTypesLite::optional_sfixed32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_sfixed32)
  return optional_sfixed32_;
}
inline void TestAllTypesLite::set_optional_sfixed32(::google::protobuf::int32 value) {
  set_has_optional_sfixed32();
  optional_sfixed32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_sfixed32)
}

// optional sfixed64 optional_sfixed64 = 10;
inline bool TestAllTypesLite::has_optional_sfixed64() const {
  return (_has_bits_[0] & 0x00400000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_sfixed64() {
  _has_bits_[0] |= 0x00400000u;
}
inline void TestAllTypesLite::clear_has_optional_sfixed64() {
  _has_bits_[0] &= ~0x00400000u;
}
inline void TestAllTypesLite::clear_optional_sfixed64() {
  optional_sfixed64_ = GOOGLE_LONGLONG(0);
  clear_has_optional_sfixed64();
}
inline ::google::protobuf::int64 TestAllTypesLite::optional_sfixed64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_sfixed64)
  return optional_sfixed64_;
}
inline void TestAllTypesLite::set_optional_sfixed64(::google::protobuf::int64 value) {
  set_has_optional_sfixed64();
  optional_sfixed64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_sfixed64)
}

// optional float optional_float = 11;
inline bool TestAllTypesLite::has_optional_float() const {
  return (_has_bits_[0] & 0x01000000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_float() {
  _has_bits_[0] |= 0x01000000u;
}
inline void TestAllTypesLite::clear_has_optional_float() {
  _has_bits_[0] &= ~0x01000000u;
}
inline void TestAllTypesLite::clear_optional_float() {
  optional_float_ = 0;
  clear_has_optional_float();
}
inline float TestAllTypesLite::optional_float() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_float)
  return optional_float_;
}
inline void TestAllTypesLite::set_optional_float(float value) {
  set_has_optional_float();
  optional_float_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_float)
}

// optional double optional_double = 12;
inline bool TestAllTypesLite::has_optional_double() const {
  return (_has_bits_[0] & 0x02000000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_double() {
  _has_bits_[0] |= 0x02000000u;
}
inline void TestAllTypesLite::clear_has_optional_double() {
  _has_bits_[0] &= ~0x02000000u;
}
inline void TestAllTypesLite::clear_optional_double() {
  optional_double_ = 0;
  clear_has_optional_double();
}
inline double TestAllTypesLite::optional_double() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_double)
  return optional_double_;
}
inline void TestAllTypesLite::set_optional_double(double value) {
  set_has_optional_double();
  optional_double_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_double)
}

// optional bool optional_bool = 13;
inline bool TestAllTypesLite::has_optional_bool() const {
  return (_has_bits_[0] & 0x04000000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_bool() {
  _has_bits_[0] |= 0x04000000u;
}
inline void TestAllTypesLite::clear_has_optional_bool() {
  _has_bits_[0] &= ~0x04000000u;
}
inline void TestAllTypesLite::clear_optional_bool() {
  optional_bool_ = false;
  clear_has_optional_bool();
}
inline bool TestAllTypesLite::optional_bool() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_bool)
  return optional_bool_;
}
inline void TestAllTypesLite::set_optional_bool(bool value) {
  set_has_optional_bool();
  optional_bool_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_bool)
}

// optional string optional_string = 14;
inline bool TestAllTypesLite::has_optional_string() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestAllTypesLite::set_has_optional_string() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestAllTypesLite::clear_has_optional_string() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestAllTypesLite::clear_optional_string() {
  optional_string_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_optional_string();
}
inline const ::std::string& TestAllTypesLite::optional_string() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_string)
  return optional_string_.GetNoArena();
}
inline void TestAllTypesLite::set_optional_string(const ::std::string& value) {
  set_has_optional_string();
  optional_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_string)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_optional_string(::std::string&& value) {
  set_has_optional_string();
  optional_string_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.optional_string)
}
#endif
inline void TestAllTypesLite::set_optional_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_optional_string();
  optional_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.optional_string)
}
inline void TestAllTypesLite::set_optional_string(const char* value, size_t size) {
  set_has_optional_string();
  optional_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.optional_string)
}
inline ::std::string* TestAllTypesLite::mutable_optional_string() {
  set_has_optional_string();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_string)
  return optional_string_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestAllTypesLite::release_optional_string() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_string)
  if (!has_optional_string()) {
    return NULL;
  }
  clear_has_optional_string();
  return optional_string_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TestAllTypesLite::set_allocated_optional_string(::std::string* optional_string) {
  if (optional_string != NULL) {
    set_has_optional_string();
  } else {
    clear_has_optional_string();
  }
  optional_string_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_string);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_string)
}

// optional bytes optional_bytes = 15;
inline bool TestAllTypesLite::has_optional_bytes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestAllTypesLite::set_has_optional_bytes() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestAllTypesLite::clear_has_optional_bytes() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestAllTypesLite::clear_optional_bytes() {
  optional_bytes_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_optional_bytes();
}
inline const ::std::string& TestAllTypesLite::optional_bytes() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_bytes)
  return optional_bytes_.GetNoArena();
}
inline void TestAllTypesLite::set_optional_bytes(const ::std::string& value) {
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_bytes)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_optional_bytes(::std::string&& value) {
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.optional_bytes)
}
#endif
inline void TestAllTypesLite::set_optional_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.optional_bytes)
}
inline void TestAllTypesLite::set_optional_bytes(const void* value, size_t size) {
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.optional_bytes)
}
inline ::std::string* TestAllTypesLite::mutable_optional_bytes() {
  set_has_optional_bytes();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_bytes)
  return optional_bytes_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestAllTypesLite::release_optional_bytes() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_bytes)
  if (!has_optional_bytes()) {
    return NULL;
  }
  clear_has_optional_bytes();
  return optional_bytes_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TestAllTypesLite::set_allocated_optional_bytes(::std::string* optional_bytes) {
  if (optional_bytes != NULL) {
    set_has_optional_bytes();
  } else {
    clear_has_optional_bytes();
  }
  optional_bytes_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_bytes);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_bytes)
}

// optional group OptionalGroup = 16 { ... };
inline bool TestAllTypesLite::has_optionalgroup() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void TestAllTypesLite::set_has_optionalgroup() {
  _has_bits_[0] |= 0x00000100u;
}
inline void TestAllTypesLite::clear_has_optionalgroup() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void TestAllTypesLite::clear_optionalgroup() {
  if (optionalgroup_ != NULL) optionalgroup_->Clear();
  clear_has_optionalgroup();
}
inline const ::protobuf_unittest::TestAllTypesLite_OptionalGroup& TestAllTypesLite::_internal_optionalgroup() const {
  return *optionalgroup_;
}
inline const ::protobuf_unittest::TestAllTypesLite_OptionalGroup& TestAllTypesLite::optionalgroup() const {
  const ::protobuf_unittest::TestAllTypesLite_OptionalGroup* p = optionalgroup_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optionalgroup)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite_OptionalGroup*>(
      &::protobuf_unittest::_TestAllTypesLite_OptionalGroup_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite_OptionalGroup* TestAllTypesLite::release_optionalgroup() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optionalgroup)
  clear_has_optionalgroup();
  ::protobuf_unittest::TestAllTypesLite_OptionalGroup* temp = optionalgroup_;
  optionalgroup_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite_OptionalGroup* TestAllTypesLite::mutable_optionalgroup() {
  set_has_optionalgroup();
  if (optionalgroup_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite_OptionalGroup>(GetArenaNoVirtual());
    optionalgroup_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optionalgroup)
  return optionalgroup_;
}
inline void TestAllTypesLite::set_allocated_optionalgroup(::protobuf_unittest::TestAllTypesLite_OptionalGroup* optionalgroup) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optionalgroup_;
  }
  if (optionalgroup) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optionalgroup = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optionalgroup, submessage_arena);
    }
    set_has_optionalgroup();
  } else {
    clear_has_optionalgroup();
  }
  optionalgroup_ = optionalgroup;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optionalgroup)
}

// optional .protobuf_unittest.TestAllTypesLite.NestedMessage optional_nested_message = 18;
inline bool TestAllTypesLite::has_optional_nested_message() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void TestAllTypesLite::set_has_optional_nested_message() {
  _has_bits_[0] |= 0x00000200u;
}
inline void TestAllTypesLite::clear_has_optional_nested_message() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void TestAllTypesLite::clear_optional_nested_message() {
  if (optional_nested_message_ != NULL) optional_nested_message_->Clear();
  clear_has_optional_nested_message();
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::_internal_optional_nested_message() const {
  return *optional_nested_message_;
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::optional_nested_message() const {
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage* p = optional_nested_message_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_nested_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite_NestedMessage*>(
      &::protobuf_unittest::_TestAllTypesLite_NestedMessage_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::release_optional_nested_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_nested_message)
  clear_has_optional_nested_message();
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* temp = optional_nested_message_;
  optional_nested_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::mutable_optional_nested_message() {
  set_has_optional_nested_message();
  if (optional_nested_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite_NestedMessage>(GetArenaNoVirtual());
    optional_nested_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_nested_message)
  return optional_nested_message_;
}
inline void TestAllTypesLite::set_allocated_optional_nested_message(::protobuf_unittest::TestAllTypesLite_NestedMessage* optional_nested_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_nested_message_;
  }
  if (optional_nested_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_nested_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_nested_message, submessage_arena);
    }
    set_has_optional_nested_message();
  } else {
    clear_has_optional_nested_message();
  }
  optional_nested_message_ = optional_nested_message;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_nested_message)
}

// optional .protobuf_unittest.ForeignMessageLite optional_foreign_message = 19;
inline bool TestAllTypesLite::has_optional_foreign_message() const {
  return (_has_bits_[0] & 0x00000400u) != 0;
}
inline void TestAllTypesLite::set_has_optional_foreign_message() {
  _has_bits_[0] |= 0x00000400u;
}
inline void TestAllTypesLite::clear_has_optional_foreign_message() {
  _has_bits_[0] &= ~0x00000400u;
}
inline void TestAllTypesLite::clear_optional_foreign_message() {
  if (optional_foreign_message_ != NULL) optional_foreign_message_->Clear();
  clear_has_optional_foreign_message();
}
inline const ::protobuf_unittest::ForeignMessageLite& TestAllTypesLite::_internal_optional_foreign_message() const {
  return *optional_foreign_message_;
}
inline const ::protobuf_unittest::ForeignMessageLite& TestAllTypesLite::optional_foreign_message() const {
  const ::protobuf_unittest::ForeignMessageLite* p = optional_foreign_message_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_foreign_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::ForeignMessageLite*>(
      &::protobuf_unittest::_ForeignMessageLite_default_instance_);
}
inline ::protobuf_unittest::ForeignMessageLite* TestAllTypesLite::release_optional_foreign_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_foreign_message)
  clear_has_optional_foreign_message();
  ::protobuf_unittest::ForeignMessageLite* temp = optional_foreign_message_;
  optional_foreign_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest::ForeignMessageLite* TestAllTypesLite::mutable_optional_foreign_message() {
  set_has_optional_foreign_message();
  if (optional_foreign_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::ForeignMessageLite>(GetArenaNoVirtual());
    optional_foreign_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_foreign_message)
  return optional_foreign_message_;
}
inline void TestAllTypesLite::set_allocated_optional_foreign_message(::protobuf_unittest::ForeignMessageLite* optional_foreign_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_foreign_message_;
  }
  if (optional_foreign_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_foreign_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_foreign_message, submessage_arena);
    }
    set_has_optional_foreign_message();
  } else {
    clear_has_optional_foreign_message();
  }
  optional_foreign_message_ = optional_foreign_message;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_foreign_message)
}

// optional .protobuf_unittest_import.ImportMessageLite optional_import_message = 20;
inline bool TestAllTypesLite::has_optional_import_message() const {
  return (_has_bits_[0] & 0x00000800u) != 0;
}
inline void TestAllTypesLite::set_has_optional_import_message() {
  _has_bits_[0] |= 0x00000800u;
}
inline void TestAllTypesLite::clear_has_optional_import_message() {
  _has_bits_[0] &= ~0x00000800u;
}
inline const ::protobuf_unittest_import::ImportMessageLite& TestAllTypesLite::_internal_optional_import_message() const {
  return *optional_import_message_;
}
inline const ::protobuf_unittest_import::ImportMessageLite& TestAllTypesLite::optional_import_message() const {
  const ::protobuf_unittest_import::ImportMessageLite* p = optional_import_message_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_import_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest_import::ImportMessageLite*>(
      &::protobuf_unittest_import::_ImportMessageLite_default_instance_);
}
inline ::protobuf_unittest_import::ImportMessageLite* TestAllTypesLite::release_optional_import_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_import_message)
  clear_has_optional_import_message();
  ::protobuf_unittest_import::ImportMessageLite* temp = optional_import_message_;
  optional_import_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest_import::ImportMessageLite* TestAllTypesLite::mutable_optional_import_message() {
  set_has_optional_import_message();
  if (optional_import_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest_import::ImportMessageLite>(GetArenaNoVirtual());
    optional_import_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_import_message)
  return optional_import_message_;
}
inline void TestAllTypesLite::set_allocated_optional_import_message(::protobuf_unittest_import::ImportMessageLite* optional_import_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(optional_import_message_);
  }
  if (optional_import_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_import_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_import_message, submessage_arena);
    }
    set_has_optional_import_message();
  } else {
    clear_has_optional_import_message();
  }
  optional_import_message_ = optional_import_message;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_import_message)
}

// optional .protobuf_unittest.TestAllTypesLite.NestedEnum optional_nested_enum = 21;
inline bool TestAllTypesLite::has_optional_nested_enum() const {
  return (_has_bits_[0] & 0x20000000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_nested_enum() {
  _has_bits_[0] |= 0x20000000u;
}
inline void TestAllTypesLite::clear_has_optional_nested_enum() {
  _has_bits_[0] &= ~0x20000000u;
}
inline void TestAllTypesLite::clear_optional_nested_enum() {
  optional_nested_enum_ = 1;
  clear_has_optional_nested_enum();
}
inline ::protobuf_unittest::TestAllTypesLite_NestedEnum TestAllTypesLite::optional_nested_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_nested_enum)
  return static_cast< ::protobuf_unittest::TestAllTypesLite_NestedEnum >(optional_nested_enum_);
}
inline void TestAllTypesLite::set_optional_nested_enum(::protobuf_unittest::TestAllTypesLite_NestedEnum value) {
  assert(::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid(value));
  set_has_optional_nested_enum();
  optional_nested_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_nested_enum)
}

// optional .protobuf_unittest.ForeignEnumLite optional_foreign_enum = 22;
inline bool TestAllTypesLite::has_optional_foreign_enum() const {
  return (_has_bits_[0] & 0x40000000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_foreign_enum() {
  _has_bits_[0] |= 0x40000000u;
}
inline void TestAllTypesLite::clear_has_optional_foreign_enum() {
  _has_bits_[0] &= ~0x40000000u;
}
inline void TestAllTypesLite::clear_optional_foreign_enum() {
  optional_foreign_enum_ = 4;
  clear_has_optional_foreign_enum();
}
inline ::protobuf_unittest::ForeignEnumLite TestAllTypesLite::optional_foreign_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_foreign_enum)
  return static_cast< ::protobuf_unittest::ForeignEnumLite >(optional_foreign_enum_);
}
inline void TestAllTypesLite::set_optional_foreign_enum(::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  set_has_optional_foreign_enum();
  optional_foreign_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_foreign_enum)
}

// optional .protobuf_unittest_import.ImportEnumLite optional_import_enum = 23;
inline bool TestAllTypesLite::has_optional_import_enum() const {
  return (_has_bits_[0] & 0x80000000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_import_enum() {
  _has_bits_[0] |= 0x80000000u;
}
inline void TestAllTypesLite::clear_has_optional_import_enum() {
  _has_bits_[0] &= ~0x80000000u;
}
inline void TestAllTypesLite::clear_optional_import_enum() {
  optional_import_enum_ = 7;
  clear_has_optional_import_enum();
}
inline ::protobuf_unittest_import::ImportEnumLite TestAllTypesLite::optional_import_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_import_enum)
  return static_cast< ::protobuf_unittest_import::ImportEnumLite >(optional_import_enum_);
}
inline void TestAllTypesLite::set_optional_import_enum(::protobuf_unittest_import::ImportEnumLite value) {
  assert(::protobuf_unittest_import::ImportEnumLite_IsValid(value));
  set_has_optional_import_enum();
  optional_import_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_import_enum)
}

// optional string optional_string_piece = 24 [ctype = STRING_PIECE];
inline bool TestAllTypesLite::has_optional_string_piece() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestAllTypesLite::set_has_optional_string_piece() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestAllTypesLite::clear_has_optional_string_piece() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestAllTypesLite::clear_optional_string_piece() {
  optional_string_piece_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_optional_string_piece();
}
inline const ::std::string& TestAllTypesLite::optional_string_piece() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_string_piece)
  return optional_string_piece_.GetNoArena();
}
inline void TestAllTypesLite::set_optional_string_piece(const ::std::string& value) {
  set_has_optional_string_piece();
  optional_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_string_piece)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_optional_string_piece(::std::string&& value) {
  set_has_optional_string_piece();
  optional_string_piece_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.optional_string_piece)
}
#endif
inline void TestAllTypesLite::set_optional_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_optional_string_piece();
  optional_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.optional_string_piece)
}
inline void TestAllTypesLite::set_optional_string_piece(const char* value, size_t size) {
  set_has_optional_string_piece();
  optional_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.optional_string_piece)
}
inline ::std::string* TestAllTypesLite::mutable_optional_string_piece() {
  set_has_optional_string_piece();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_string_piece)
  return optional_string_piece_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestAllTypesLite::release_optional_string_piece() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_string_piece)
  if (!has_optional_string_piece()) {
    return NULL;
  }
  clear_has_optional_string_piece();
  return optional_string_piece_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TestAllTypesLite::set_allocated_optional_string_piece(::std::string* optional_string_piece) {
  if (optional_string_piece != NULL) {
    set_has_optional_string_piece();
  } else {
    clear_has_optional_string_piece();
  }
  optional_string_piece_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_string_piece);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_string_piece)
}

// optional string optional_cord = 25 [ctype = CORD];
inline bool TestAllTypesLite::has_optional_cord() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestAllTypesLite::set_has_optional_cord() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestAllTypesLite::clear_has_optional_cord() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestAllTypesLite::clear_optional_cord() {
  optional_cord_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_optional_cord();
}
inline const ::std::string& TestAllTypesLite::optional_cord() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_cord)
  return optional_cord_.GetNoArena();
}
inline void TestAllTypesLite::set_optional_cord(const ::std::string& value) {
  set_has_optional_cord();
  optional_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.optional_cord)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_optional_cord(::std::string&& value) {
  set_has_optional_cord();
  optional_cord_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.optional_cord)
}
#endif
inline void TestAllTypesLite::set_optional_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_optional_cord();
  optional_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.optional_cord)
}
inline void TestAllTypesLite::set_optional_cord(const char* value, size_t size) {
  set_has_optional_cord();
  optional_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.optional_cord)
}
inline ::std::string* TestAllTypesLite::mutable_optional_cord() {
  set_has_optional_cord();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_cord)
  return optional_cord_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestAllTypesLite::release_optional_cord() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_cord)
  if (!has_optional_cord()) {
    return NULL;
  }
  clear_has_optional_cord();
  return optional_cord_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TestAllTypesLite::set_allocated_optional_cord(::std::string* optional_cord) {
  if (optional_cord != NULL) {
    set_has_optional_cord();
  } else {
    clear_has_optional_cord();
  }
  optional_cord_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_cord);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_cord)
}

// optional .protobuf_unittest_import.PublicImportMessageLite optional_public_import_message = 26;
inline bool TestAllTypesLite::has_optional_public_import_message() const {
  return (_has_bits_[0] & 0x00001000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_public_import_message() {
  _has_bits_[0] |= 0x00001000u;
}
inline void TestAllTypesLite::clear_has_optional_public_import_message() {
  _has_bits_[0] &= ~0x00001000u;
}
inline const ::protobuf_unittest_import::PublicImportMessageLite& TestAllTypesLite::_internal_optional_public_import_message() const {
  return *optional_public_import_message_;
}
inline const ::protobuf_unittest_import::PublicImportMessageLite& TestAllTypesLite::optional_public_import_message() const {
  const ::protobuf_unittest_import::PublicImportMessageLite* p = optional_public_import_message_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_public_import_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest_import::PublicImportMessageLite*>(
      &::protobuf_unittest_import::_PublicImportMessageLite_default_instance_);
}
inline ::protobuf_unittest_import::PublicImportMessageLite* TestAllTypesLite::release_optional_public_import_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_public_import_message)
  clear_has_optional_public_import_message();
  ::protobuf_unittest_import::PublicImportMessageLite* temp = optional_public_import_message_;
  optional_public_import_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest_import::PublicImportMessageLite* TestAllTypesLite::mutable_optional_public_import_message() {
  set_has_optional_public_import_message();
  if (optional_public_import_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest_import::PublicImportMessageLite>(GetArenaNoVirtual());
    optional_public_import_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_public_import_message)
  return optional_public_import_message_;
}
inline void TestAllTypesLite::set_allocated_optional_public_import_message(::protobuf_unittest_import::PublicImportMessageLite* optional_public_import_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete reinterpret_cast< ::google::protobuf::MessageLite*>(optional_public_import_message_);
  }
  if (optional_public_import_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_public_import_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_public_import_message, submessage_arena);
    }
    set_has_optional_public_import_message();
  } else {
    clear_has_optional_public_import_message();
  }
  optional_public_import_message_ = optional_public_import_message;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_public_import_message)
}

// optional .protobuf_unittest.TestAllTypesLite.NestedMessage optional_lazy_message = 27 [lazy = true];
inline bool TestAllTypesLite::has_optional_lazy_message() const {
  return (_has_bits_[0] & 0x00002000u) != 0;
}
inline void TestAllTypesLite::set_has_optional_lazy_message() {
  _has_bits_[0] |= 0x00002000u;
}
inline void TestAllTypesLite::clear_has_optional_lazy_message() {
  _has_bits_[0] &= ~0x00002000u;
}
inline void TestAllTypesLite::clear_optional_lazy_message() {
  if (optional_lazy_message_ != NULL) optional_lazy_message_->Clear();
  clear_has_optional_lazy_message();
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::_internal_optional_lazy_message() const {
  return *optional_lazy_message_;
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::optional_lazy_message() const {
  const ::protobuf_unittest::TestAllTypesLite_NestedMessage* p = optional_lazy_message_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.optional_lazy_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite_NestedMessage*>(
      &::protobuf_unittest::_TestAllTypesLite_NestedMessage_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::release_optional_lazy_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.optional_lazy_message)
  clear_has_optional_lazy_message();
  ::protobuf_unittest::TestAllTypesLite_NestedMessage* temp = optional_lazy_message_;
  optional_lazy_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::mutable_optional_lazy_message() {
  set_has_optional_lazy_message();
  if (optional_lazy_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite_NestedMessage>(GetArenaNoVirtual());
    optional_lazy_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.optional_lazy_message)
  return optional_lazy_message_;
}
inline void TestAllTypesLite::set_allocated_optional_lazy_message(::protobuf_unittest::TestAllTypesLite_NestedMessage* optional_lazy_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_lazy_message_;
  }
  if (optional_lazy_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_lazy_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_lazy_message, submessage_arena);
    }
    set_has_optional_lazy_message();
  } else {
    clear_has_optional_lazy_message();
  }
  optional_lazy_message_ = optional_lazy_message;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.optional_lazy_message)
}

// repeated int32 repeated_int32 = 31;
inline int TestAllTypesLite::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void TestAllTypesLite::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypesLite::repeated_int32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_int32)
  return repeated_int32_.Get(index);
}
inline void TestAllTypesLite::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_int32)
}
inline void TestAllTypesLite::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypesLite::repeated_int32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_int32)
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypesLite::mutable_repeated_int32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_int32)
  return &repeated_int32_;
}

// repeated int64 repeated_int64 = 32;
inline int TestAllTypesLite::repeated_int64_size() const {
  return repeated_int64_.size();
}
inline void TestAllTypesLite::clear_repeated_int64() {
  repeated_int64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypesLite::repeated_int64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_int64)
  return repeated_int64_.Get(index);
}
inline void TestAllTypesLite::set_repeated_int64(int index, ::google::protobuf::int64 value) {
  repeated_int64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_int64)
}
inline void TestAllTypesLite::add_repeated_int64(::google::protobuf::int64 value) {
  repeated_int64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_int64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypesLite::repeated_int64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_int64)
  return repeated_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypesLite::mutable_repeated_int64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_int64)
  return &repeated_int64_;
}

// repeated uint32 repeated_uint32 = 33;
inline int TestAllTypesLite::repeated_uint32_size() const {
  return repeated_uint32_.size();
}
inline void TestAllTypesLite::clear_repeated_uint32() {
  repeated_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestAllTypesLite::repeated_uint32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_uint32)
  return repeated_uint32_.Get(index);
}
inline void TestAllTypesLite::set_repeated_uint32(int index, ::google::protobuf::uint32 value) {
  repeated_uint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_uint32)
}
inline void TestAllTypesLite::add_repeated_uint32(::google::protobuf::uint32 value) {
  repeated_uint32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_uint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestAllTypesLite::repeated_uint32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_uint32)
  return repeated_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestAllTypesLite::mutable_repeated_uint32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_uint32)
  return &repeated_uint32_;
}

// repeated uint64 repeated_uint64 = 34;
inline int TestAllTypesLite::repeated_uint64_size() const {
  return repeated_uint64_.size();
}
inline void TestAllTypesLite::clear_repeated_uint64() {
  repeated_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestAllTypesLite::repeated_uint64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_uint64)
  return repeated_uint64_.Get(index);
}
inline void TestAllTypesLite::set_repeated_uint64(int index, ::google::protobuf::uint64 value) {
  repeated_uint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_uint64)
}
inline void TestAllTypesLite::add_repeated_uint64(::google::protobuf::uint64 value) {
  repeated_uint64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_uint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestAllTypesLite::repeated_uint64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_uint64)
  return repeated_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestAllTypesLite::mutable_repeated_uint64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_uint64)
  return &repeated_uint64_;
}

// repeated sint32 repeated_sint32 = 35;
inline int TestAllTypesLite::repeated_sint32_size() const {
  return repeated_sint32_.size();
}
inline void TestAllTypesLite::clear_repeated_sint32() {
  repeated_sint32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypesLite::repeated_sint32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_sint32)
  return repeated_sint32_.Get(index);
}
inline void TestAllTypesLite::set_repeated_sint32(int index, ::google::protobuf::int32 value) {
  repeated_sint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_sint32)
}
inline void TestAllTypesLite::add_repeated_sint32(::google::protobuf::int32 value) {
  repeated_sint32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_sint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypesLite::repeated_sint32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_sint32)
  return repeated_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypesLite::mutable_repeated_sint32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_sint32)
  return &repeated_sint32_;
}

// repeated sint64 repeated_sint64 = 36;
inline int TestAllTypesLite::repeated_sint64_size() const {
  return repeated_sint64_.size();
}
inline void TestAllTypesLite::clear_repeated_sint64() {
  repeated_sint64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypesLite::repeated_sint64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_sint64)
  return repeated_sint64_.Get(index);
}
inline void TestAllTypesLite::set_repeated_sint64(int index, ::google::protobuf::int64 value) {
  repeated_sint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_sint64)
}
inline void TestAllTypesLite::add_repeated_sint64(::google::protobuf::int64 value) {
  repeated_sint64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_sint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypesLite::repeated_sint64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_sint64)
  return repeated_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypesLite::mutable_repeated_sint64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_sint64)
  return &repeated_sint64_;
}

// repeated fixed32 repeated_fixed32 = 37;
inline int TestAllTypesLite::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void TestAllTypesLite::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestAllTypesLite::repeated_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_fixed32)
  return repeated_fixed32_.Get(index);
}
inline void TestAllTypesLite::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_fixed32)
}
inline void TestAllTypesLite::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestAllTypesLite::repeated_fixed32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_fixed32)
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestAllTypesLite::mutable_repeated_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_fixed32)
  return &repeated_fixed32_;
}

// repeated fixed64 repeated_fixed64 = 38;
inline int TestAllTypesLite::repeated_fixed64_size() const {
  return repeated_fixed64_.size();
}
inline void TestAllTypesLite::clear_repeated_fixed64() {
  repeated_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestAllTypesLite::repeated_fixed64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_fixed64)
  return repeated_fixed64_.Get(index);
}
inline void TestAllTypesLite::set_repeated_fixed64(int index, ::google::protobuf::uint64 value) {
  repeated_fixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_fixed64)
}
inline void TestAllTypesLite::add_repeated_fixed64(::google::protobuf::uint64 value) {
  repeated_fixed64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_fixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestAllTypesLite::repeated_fixed64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_fixed64)
  return repeated_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestAllTypesLite::mutable_repeated_fixed64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_fixed64)
  return &repeated_fixed64_;
}

// repeated sfixed32 repeated_sfixed32 = 39;
inline int TestAllTypesLite::repeated_sfixed32_size() const {
  return repeated_sfixed32_.size();
}
inline void TestAllTypesLite::clear_repeated_sfixed32() {
  repeated_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestAllTypesLite::repeated_sfixed32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_sfixed32)
  return repeated_sfixed32_.Get(index);
}
inline void TestAllTypesLite::set_repeated_sfixed32(int index, ::google::protobuf::int32 value) {
  repeated_sfixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_sfixed32)
}
inline void TestAllTypesLite::add_repeated_sfixed32(::google::protobuf::int32 value) {
  repeated_sfixed32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_sfixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestAllTypesLite::repeated_sfixed32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_sfixed32)
  return repeated_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestAllTypesLite::mutable_repeated_sfixed32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_sfixed32)
  return &repeated_sfixed32_;
}

// repeated sfixed64 repeated_sfixed64 = 40;
inline int TestAllTypesLite::repeated_sfixed64_size() const {
  return repeated_sfixed64_.size();
}
inline void TestAllTypesLite::clear_repeated_sfixed64() {
  repeated_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestAllTypesLite::repeated_sfixed64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_sfixed64)
  return repeated_sfixed64_.Get(index);
}
inline void TestAllTypesLite::set_repeated_sfixed64(int index, ::google::protobuf::int64 value) {
  repeated_sfixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_sfixed64)
}
inline void TestAllTypesLite::add_repeated_sfixed64(::google::protobuf::int64 value) {
  repeated_sfixed64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_sfixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestAllTypesLite::repeated_sfixed64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_sfixed64)
  return repeated_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestAllTypesLite::mutable_repeated_sfixed64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_sfixed64)
  return &repeated_sfixed64_;
}

// repeated float repeated_float = 41;
inline int TestAllTypesLite::repeated_float_size() const {
  return repeated_float_.size();
}
inline void TestAllTypesLite::clear_repeated_float() {
  repeated_float_.Clear();
}
inline float TestAllTypesLite::repeated_float(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_float)
  return repeated_float_.Get(index);
}
inline void TestAllTypesLite::set_repeated_float(int index, float value) {
  repeated_float_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_float)
}
inline void TestAllTypesLite::add_repeated_float(float value) {
  repeated_float_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_float)
}
inline const ::google::protobuf::RepeatedField< float >&
TestAllTypesLite::repeated_float() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_float)
  return repeated_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestAllTypesLite::mutable_repeated_float() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_float)
  return &repeated_float_;
}

// repeated double repeated_double = 42;
inline int TestAllTypesLite::repeated_double_size() const {
  return repeated_double_.size();
}
inline void TestAllTypesLite::clear_repeated_double() {
  repeated_double_.Clear();
}
inline double TestAllTypesLite::repeated_double(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_double)
  return repeated_double_.Get(index);
}
inline void TestAllTypesLite::set_repeated_double(int index, double value) {
  repeated_double_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_double)
}
inline void TestAllTypesLite::add_repeated_double(double value) {
  repeated_double_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_double)
}
inline const ::google::protobuf::RepeatedField< double >&
TestAllTypesLite::repeated_double() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_double)
  return repeated_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestAllTypesLite::mutable_repeated_double() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_double)
  return &repeated_double_;
}

// repeated bool repeated_bool = 43;
inline int TestAllTypesLite::repeated_bool_size() const {
  return repeated_bool_.size();
}
inline void TestAllTypesLite::clear_repeated_bool() {
  repeated_bool_.Clear();
}
inline bool TestAllTypesLite::repeated_bool(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_bool)
  return repeated_bool_.Get(index);
}
inline void TestAllTypesLite::set_repeated_bool(int index, bool value) {
  repeated_bool_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_bool)
}
inline void TestAllTypesLite::add_repeated_bool(bool value) {
  repeated_bool_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_bool)
}
inline const ::google::protobuf::RepeatedField< bool >&
TestAllTypesLite::repeated_bool() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_bool)
  return repeated_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestAllTypesLite::mutable_repeated_bool() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_bool)
  return &repeated_bool_;
}

// repeated string repeated_string = 44;
inline int TestAllTypesLite::repeated_string_size() const {
  return repeated_string_.size();
}
inline void TestAllTypesLite::clear_repeated_string() {
  repeated_string_.Clear();
}
inline const ::std::string& TestAllTypesLite::repeated_string(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_string)
  return repeated_string_.Get(index);
}
inline ::std::string* TestAllTypesLite::mutable_repeated_string(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_string)
  return repeated_string_.Mutable(index);
}
inline void TestAllTypesLite::set_repeated_string(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_string)
  repeated_string_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypesLite::set_repeated_string(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_string)
  repeated_string_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypesLite::set_repeated_string(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.repeated_string)
}
inline void TestAllTypesLite::set_repeated_string(int index, const char* value, size_t size) {
  repeated_string_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.repeated_string)
}
inline ::std::string* TestAllTypesLite::add_repeated_string() {
  // @@protoc_insertion_point(field_add_mutable:protobuf_unittest.TestAllTypesLite.repeated_string)
  return repeated_string_.Add();
}
inline void TestAllTypesLite::add_repeated_string(const ::std::string& value) {
  repeated_string_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_string)
}
#if LANG_CXX11
inline void TestAllTypesLite::add_repeated_string(::std::string&& value) {
  repeated_string_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_string)
}
#endif
inline void TestAllTypesLite::add_repeated_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:protobuf_unittest.TestAllTypesLite.repeated_string)
}
inline void TestAllTypesLite::add_repeated_string(const char* value, size_t size) {
  repeated_string_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:protobuf_unittest.TestAllTypesLite.repeated_string)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypesLite::repeated_string() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_string)
  return repeated_string_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypesLite::mutable_repeated_string() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_string)
  return &repeated_string_;
}

// repeated bytes repeated_bytes = 45;
inline int TestAllTypesLite::repeated_bytes_size() const {
  return repeated_bytes_.size();
}
inline void TestAllTypesLite::clear_repeated_bytes() {
  repeated_bytes_.Clear();
}
inline const ::std::string& TestAllTypesLite::repeated_bytes(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  return repeated_bytes_.Get(index);
}
inline ::std::string* TestAllTypesLite::mutable_repeated_bytes(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  return repeated_bytes_.Mutable(index);
}
inline void TestAllTypesLite::set_repeated_bytes(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  repeated_bytes_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypesLite::set_repeated_bytes(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  repeated_bytes_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypesLite::set_repeated_bytes(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_bytes_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.repeated_bytes)
}
inline void TestAllTypesLite::set_repeated_bytes(int index, const void* value, size_t size) {
  repeated_bytes_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.repeated_bytes)
}
inline ::std::string* TestAllTypesLite::add_repeated_bytes() {
  // @@protoc_insertion_point(field_add_mutable:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  return repeated_bytes_.Add();
}
inline void TestAllTypesLite::add_repeated_bytes(const ::std::string& value) {
  repeated_bytes_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_bytes)
}
#if LANG_CXX11
inline void TestAllTypesLite::add_repeated_bytes(::std::string&& value) {
  repeated_bytes_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_bytes)
}
#endif
inline void TestAllTypesLite::add_repeated_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_bytes_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:protobuf_unittest.TestAllTypesLite.repeated_bytes)
}
inline void TestAllTypesLite::add_repeated_bytes(const void* value, size_t size) {
  repeated_bytes_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:protobuf_unittest.TestAllTypesLite.repeated_bytes)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypesLite::repeated_bytes() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  return repeated_bytes_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypesLite::mutable_repeated_bytes() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_bytes)
  return &repeated_bytes_;
}

// repeated group RepeatedGroup = 46 { ... };
inline int TestAllTypesLite::repeatedgroup_size() const {
  return repeatedgroup_.size();
}
inline void TestAllTypesLite::clear_repeatedgroup() {
  repeatedgroup_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite_RepeatedGroup* TestAllTypesLite::mutable_repeatedgroup(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeatedgroup)
  return repeatedgroup_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_RepeatedGroup >*
TestAllTypesLite::mutable_repeatedgroup() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeatedgroup)
  return &repeatedgroup_;
}
inline const ::protobuf_unittest::TestAllTypesLite_RepeatedGroup& TestAllTypesLite::repeatedgroup(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeatedgroup)
  return repeatedgroup_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite_RepeatedGroup* TestAllTypesLite::add_repeatedgroup() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeatedgroup)
  return repeatedgroup_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_RepeatedGroup >&
TestAllTypesLite::repeatedgroup() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeatedgroup)
  return repeatedgroup_;
}

// repeated .protobuf_unittest.TestAllTypesLite.NestedMessage repeated_nested_message = 48;
inline int TestAllTypesLite::repeated_nested_message_size() const {
  return repeated_nested_message_.size();
}
inline void TestAllTypesLite::clear_repeated_nested_message() {
  repeated_nested_message_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::mutable_repeated_nested_message(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_nested_message)
  return repeated_nested_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >*
TestAllTypesLite::mutable_repeated_nested_message() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_nested_message)
  return &repeated_nested_message_;
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::repeated_nested_message(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_nested_message)
  return repeated_nested_message_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::add_repeated_nested_message() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_nested_message)
  return repeated_nested_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >&
TestAllTypesLite::repeated_nested_message() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_nested_message)
  return repeated_nested_message_;
}

// repeated .protobuf_unittest.ForeignMessageLite repeated_foreign_message = 49;
inline int TestAllTypesLite::repeated_foreign_message_size() const {
  return repeated_foreign_message_.size();
}
inline void TestAllTypesLite::clear_repeated_foreign_message() {
  repeated_foreign_message_.Clear();
}
inline ::protobuf_unittest::ForeignMessageLite* TestAllTypesLite::mutable_repeated_foreign_message(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_foreign_message)
  return repeated_foreign_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessageLite >*
TestAllTypesLite::mutable_repeated_foreign_message() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_foreign_message)
  return &repeated_foreign_message_;
}
inline const ::protobuf_unittest::ForeignMessageLite& TestAllTypesLite::repeated_foreign_message(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_foreign_message)
  return repeated_foreign_message_.Get(index);
}
inline ::protobuf_unittest::ForeignMessageLite* TestAllTypesLite::add_repeated_foreign_message() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_foreign_message)
  return repeated_foreign_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::ForeignMessageLite >&
TestAllTypesLite::repeated_foreign_message() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_foreign_message)
  return repeated_foreign_message_;
}

// repeated .protobuf_unittest_import.ImportMessageLite repeated_import_message = 50;
inline int TestAllTypesLite::repeated_import_message_size() const {
  return repeated_import_message_.size();
}
inline ::protobuf_unittest_import::ImportMessageLite* TestAllTypesLite::mutable_repeated_import_message(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_import_message)
  return repeated_import_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessageLite >*
TestAllTypesLite::mutable_repeated_import_message() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_import_message)
  return &repeated_import_message_;
}
inline const ::protobuf_unittest_import::ImportMessageLite& TestAllTypesLite::repeated_import_message(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_import_message)
  return repeated_import_message_.Get(index);
}
inline ::protobuf_unittest_import::ImportMessageLite* TestAllTypesLite::add_repeated_import_message() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_import_message)
  return repeated_import_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest_import::ImportMessageLite >&
TestAllTypesLite::repeated_import_message() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_import_message)
  return repeated_import_message_;
}

// repeated .protobuf_unittest.TestAllTypesLite.NestedEnum repeated_nested_enum = 51;
inline int TestAllTypesLite::repeated_nested_enum_size() const {
  return repeated_nested_enum_.size();
}
inline void TestAllTypesLite::clear_repeated_nested_enum() {
  repeated_nested_enum_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite_NestedEnum TestAllTypesLite::repeated_nested_enum(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_nested_enum)
  return static_cast< ::protobuf_unittest::TestAllTypesLite_NestedEnum >(repeated_nested_enum_.Get(index));
}
inline void TestAllTypesLite::set_repeated_nested_enum(int index, ::protobuf_unittest::TestAllTypesLite_NestedEnum value) {
  assert(::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid(value));
  repeated_nested_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_nested_enum)
}
inline void TestAllTypesLite::add_repeated_nested_enum(::protobuf_unittest::TestAllTypesLite_NestedEnum value) {
  assert(::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid(value));
  repeated_nested_enum_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_nested_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypesLite::repeated_nested_enum() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_nested_enum)
  return repeated_nested_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypesLite::mutable_repeated_nested_enum() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_nested_enum)
  return &repeated_nested_enum_;
}

// repeated .protobuf_unittest.ForeignEnumLite repeated_foreign_enum = 52;
inline int TestAllTypesLite::repeated_foreign_enum_size() const {
  return repeated_foreign_enum_.size();
}
inline void TestAllTypesLite::clear_repeated_foreign_enum() {
  repeated_foreign_enum_.Clear();
}
inline ::protobuf_unittest::ForeignEnumLite TestAllTypesLite::repeated_foreign_enum(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_foreign_enum)
  return static_cast< ::protobuf_unittest::ForeignEnumLite >(repeated_foreign_enum_.Get(index));
}
inline void TestAllTypesLite::set_repeated_foreign_enum(int index, ::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  repeated_foreign_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_foreign_enum)
}
inline void TestAllTypesLite::add_repeated_foreign_enum(::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  repeated_foreign_enum_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_foreign_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypesLite::repeated_foreign_enum() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_foreign_enum)
  return repeated_foreign_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypesLite::mutable_repeated_foreign_enum() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_foreign_enum)
  return &repeated_foreign_enum_;
}

// repeated .protobuf_unittest_import.ImportEnumLite repeated_import_enum = 53;
inline int TestAllTypesLite::repeated_import_enum_size() const {
  return repeated_import_enum_.size();
}
inline void TestAllTypesLite::clear_repeated_import_enum() {
  repeated_import_enum_.Clear();
}
inline ::protobuf_unittest_import::ImportEnumLite TestAllTypesLite::repeated_import_enum(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_import_enum)
  return static_cast< ::protobuf_unittest_import::ImportEnumLite >(repeated_import_enum_.Get(index));
}
inline void TestAllTypesLite::set_repeated_import_enum(int index, ::protobuf_unittest_import::ImportEnumLite value) {
  assert(::protobuf_unittest_import::ImportEnumLite_IsValid(value));
  repeated_import_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_import_enum)
}
inline void TestAllTypesLite::add_repeated_import_enum(::protobuf_unittest_import::ImportEnumLite value) {
  assert(::protobuf_unittest_import::ImportEnumLite_IsValid(value));
  repeated_import_enum_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_import_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestAllTypesLite::repeated_import_enum() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_import_enum)
  return repeated_import_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestAllTypesLite::mutable_repeated_import_enum() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_import_enum)
  return &repeated_import_enum_;
}

// repeated string repeated_string_piece = 54 [ctype = STRING_PIECE];
inline int TestAllTypesLite::repeated_string_piece_size() const {
  return repeated_string_piece_.size();
}
inline void TestAllTypesLite::clear_repeated_string_piece() {
  repeated_string_piece_.Clear();
}
inline const ::std::string& TestAllTypesLite::repeated_string_piece(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  return repeated_string_piece_.Get(index);
}
inline ::std::string* TestAllTypesLite::mutable_repeated_string_piece(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  return repeated_string_piece_.Mutable(index);
}
inline void TestAllTypesLite::set_repeated_string_piece(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  repeated_string_piece_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypesLite::set_repeated_string_piece(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  repeated_string_piece_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypesLite::set_repeated_string_piece(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_piece_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
}
inline void TestAllTypesLite::set_repeated_string_piece(int index, const char* value, size_t size) {
  repeated_string_piece_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
}
inline ::std::string* TestAllTypesLite::add_repeated_string_piece() {
  // @@protoc_insertion_point(field_add_mutable:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  return repeated_string_piece_.Add();
}
inline void TestAllTypesLite::add_repeated_string_piece(const ::std::string& value) {
  repeated_string_piece_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
}
#if LANG_CXX11
inline void TestAllTypesLite::add_repeated_string_piece(::std::string&& value) {
  repeated_string_piece_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
}
#endif
inline void TestAllTypesLite::add_repeated_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_string_piece_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
}
inline void TestAllTypesLite::add_repeated_string_piece(const char* value, size_t size) {
  repeated_string_piece_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypesLite::repeated_string_piece() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  return repeated_string_piece_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypesLite::mutable_repeated_string_piece() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_string_piece)
  return &repeated_string_piece_;
}

// repeated string repeated_cord = 55 [ctype = CORD];
inline int TestAllTypesLite::repeated_cord_size() const {
  return repeated_cord_.size();
}
inline void TestAllTypesLite::clear_repeated_cord() {
  repeated_cord_.Clear();
}
inline const ::std::string& TestAllTypesLite::repeated_cord(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_cord)
  return repeated_cord_.Get(index);
}
inline ::std::string* TestAllTypesLite::mutable_repeated_cord(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_cord)
  return repeated_cord_.Mutable(index);
}
inline void TestAllTypesLite::set_repeated_cord(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_cord)
  repeated_cord_.Mutable(index)->assign(value);
}
#if LANG_CXX11
inline void TestAllTypesLite::set_repeated_cord(int index, ::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.repeated_cord)
  repeated_cord_.Mutable(index)->assign(std::move(value));
}
#endif
inline void TestAllTypesLite::set_repeated_cord(int index, const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_cord_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.repeated_cord)
}
inline void TestAllTypesLite::set_repeated_cord(int index, const char* value, size_t size) {
  repeated_cord_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.repeated_cord)
}
inline ::std::string* TestAllTypesLite::add_repeated_cord() {
  // @@protoc_insertion_point(field_add_mutable:protobuf_unittest.TestAllTypesLite.repeated_cord)
  return repeated_cord_.Add();
}
inline void TestAllTypesLite::add_repeated_cord(const ::std::string& value) {
  repeated_cord_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_cord)
}
#if LANG_CXX11
inline void TestAllTypesLite::add_repeated_cord(::std::string&& value) {
  repeated_cord_.Add(std::move(value));
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_cord)
}
#endif
inline void TestAllTypesLite::add_repeated_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  repeated_cord_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:protobuf_unittest.TestAllTypesLite.repeated_cord)
}
inline void TestAllTypesLite::add_repeated_cord(const char* value, size_t size) {
  repeated_cord_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:protobuf_unittest.TestAllTypesLite.repeated_cord)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
TestAllTypesLite::repeated_cord() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_cord)
  return repeated_cord_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
TestAllTypesLite::mutable_repeated_cord() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_cord)
  return &repeated_cord_;
}

// repeated .protobuf_unittest.TestAllTypesLite.NestedMessage repeated_lazy_message = 57 [lazy = true];
inline int TestAllTypesLite::repeated_lazy_message_size() const {
  return repeated_lazy_message_.size();
}
inline void TestAllTypesLite::clear_repeated_lazy_message() {
  repeated_lazy_message_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::mutable_repeated_lazy_message(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.repeated_lazy_message)
  return repeated_lazy_message_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >*
TestAllTypesLite::mutable_repeated_lazy_message() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestAllTypesLite.repeated_lazy_message)
  return &repeated_lazy_message_;
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::repeated_lazy_message(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.repeated_lazy_message)
  return repeated_lazy_message_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::add_repeated_lazy_message() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestAllTypesLite.repeated_lazy_message)
  return repeated_lazy_message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite_NestedMessage >&
TestAllTypesLite::repeated_lazy_message() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestAllTypesLite.repeated_lazy_message)
  return repeated_lazy_message_;
}

// optional int32 default_int32 = 61 [default = 41];
inline bool TestAllTypesLite::has_default_int32() const {
  return (_has_bits_[1] & 0x00000001u) != 0;
}
inline void TestAllTypesLite::set_has_default_int32() {
  _has_bits_[1] |= 0x00000001u;
}
inline void TestAllTypesLite::clear_has_default_int32() {
  _has_bits_[1] &= ~0x00000001u;
}
inline void TestAllTypesLite::clear_default_int32() {
  default_int32_ = 41;
  clear_has_default_int32();
}
inline ::google::protobuf::int32 TestAllTypesLite::default_int32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_int32)
  return default_int32_;
}
inline void TestAllTypesLite::set_default_int32(::google::protobuf::int32 value) {
  set_has_default_int32();
  default_int32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_int32)
}

// optional int64 default_int64 = 62 [default = 42];
inline bool TestAllTypesLite::has_default_int64() const {
  return (_has_bits_[1] & 0x00000002u) != 0;
}
inline void TestAllTypesLite::set_has_default_int64() {
  _has_bits_[1] |= 0x00000002u;
}
inline void TestAllTypesLite::clear_has_default_int64() {
  _has_bits_[1] &= ~0x00000002u;
}
inline void TestAllTypesLite::clear_default_int64() {
  default_int64_ = GOOGLE_LONGLONG(42);
  clear_has_default_int64();
}
inline ::google::protobuf::int64 TestAllTypesLite::default_int64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_int64)
  return default_int64_;
}
inline void TestAllTypesLite::set_default_int64(::google::protobuf::int64 value) {
  set_has_default_int64();
  default_int64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_int64)
}

// optional uint32 default_uint32 = 63 [default = 43];
inline bool TestAllTypesLite::has_default_uint32() const {
  return (_has_bits_[1] & 0x00000008u) != 0;
}
inline void TestAllTypesLite::set_has_default_uint32() {
  _has_bits_[1] |= 0x00000008u;
}
inline void TestAllTypesLite::clear_has_default_uint32() {
  _has_bits_[1] &= ~0x00000008u;
}
inline void TestAllTypesLite::clear_default_uint32() {
  default_uint32_ = 43u;
  clear_has_default_uint32();
}
inline ::google::protobuf::uint32 TestAllTypesLite::default_uint32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_uint32)
  return default_uint32_;
}
inline void TestAllTypesLite::set_default_uint32(::google::protobuf::uint32 value) {
  set_has_default_uint32();
  default_uint32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_uint32)
}

// optional uint64 default_uint64 = 64 [default = 44];
inline bool TestAllTypesLite::has_default_uint64() const {
  return (_has_bits_[1] & 0x00000004u) != 0;
}
inline void TestAllTypesLite::set_has_default_uint64() {
  _has_bits_[1] |= 0x00000004u;
}
inline void TestAllTypesLite::clear_has_default_uint64() {
  _has_bits_[1] &= ~0x00000004u;
}
inline void TestAllTypesLite::clear_default_uint64() {
  default_uint64_ = GOOGLE_ULONGLONG(44);
  clear_has_default_uint64();
}
inline ::google::protobuf::uint64 TestAllTypesLite::default_uint64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_uint64)
  return default_uint64_;
}
inline void TestAllTypesLite::set_default_uint64(::google::protobuf::uint64 value) {
  set_has_default_uint64();
  default_uint64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_uint64)
}

// optional sint32 default_sint32 = 65 [default = -45];
inline bool TestAllTypesLite::has_default_sint32() const {
  return (_has_bits_[1] & 0x00000010u) != 0;
}
inline void TestAllTypesLite::set_has_default_sint32() {
  _has_bits_[1] |= 0x00000010u;
}
inline void TestAllTypesLite::clear_has_default_sint32() {
  _has_bits_[1] &= ~0x00000010u;
}
inline void TestAllTypesLite::clear_default_sint32() {
  default_sint32_ = -45;
  clear_has_default_sint32();
}
inline ::google::protobuf::int32 TestAllTypesLite::default_sint32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_sint32)
  return default_sint32_;
}
inline void TestAllTypesLite::set_default_sint32(::google::protobuf::int32 value) {
  set_has_default_sint32();
  default_sint32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_sint32)
}

// optional sint64 default_sint64 = 66 [default = 46];
inline bool TestAllTypesLite::has_default_sint64() const {
  return (_has_bits_[1] & 0x00000020u) != 0;
}
inline void TestAllTypesLite::set_has_default_sint64() {
  _has_bits_[1] |= 0x00000020u;
}
inline void TestAllTypesLite::clear_has_default_sint64() {
  _has_bits_[1] &= ~0x00000020u;
}
inline void TestAllTypesLite::clear_default_sint64() {
  default_sint64_ = GOOGLE_LONGLONG(46);
  clear_has_default_sint64();
}
inline ::google::protobuf::int64 TestAllTypesLite::default_sint64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_sint64)
  return default_sint64_;
}
inline void TestAllTypesLite::set_default_sint64(::google::protobuf::int64 value) {
  set_has_default_sint64();
  default_sint64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_sint64)
}

// optional fixed32 default_fixed32 = 67 [default = 47];
inline bool TestAllTypesLite::has_default_fixed32() const {
  return (_has_bits_[1] & 0x00000080u) != 0;
}
inline void TestAllTypesLite::set_has_default_fixed32() {
  _has_bits_[1] |= 0x00000080u;
}
inline void TestAllTypesLite::clear_has_default_fixed32() {
  _has_bits_[1] &= ~0x00000080u;
}
inline void TestAllTypesLite::clear_default_fixed32() {
  default_fixed32_ = 47u;
  clear_has_default_fixed32();
}
inline ::google::protobuf::uint32 TestAllTypesLite::default_fixed32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_fixed32)
  return default_fixed32_;
}
inline void TestAllTypesLite::set_default_fixed32(::google::protobuf::uint32 value) {
  set_has_default_fixed32();
  default_fixed32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_fixed32)
}

// optional fixed64 default_fixed64 = 68 [default = 48];
inline bool TestAllTypesLite::has_default_fixed64() const {
  return (_has_bits_[1] & 0x00000040u) != 0;
}
inline void TestAllTypesLite::set_has_default_fixed64() {
  _has_bits_[1] |= 0x00000040u;
}
inline void TestAllTypesLite::clear_has_default_fixed64() {
  _has_bits_[1] &= ~0x00000040u;
}
inline void TestAllTypesLite::clear_default_fixed64() {
  default_fixed64_ = GOOGLE_ULONGLONG(48);
  clear_has_default_fixed64();
}
inline ::google::protobuf::uint64 TestAllTypesLite::default_fixed64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_fixed64)
  return default_fixed64_;
}
inline void TestAllTypesLite::set_default_fixed64(::google::protobuf::uint64 value) {
  set_has_default_fixed64();
  default_fixed64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_fixed64)
}

// optional sfixed32 default_sfixed32 = 69 [default = 49];
inline bool TestAllTypesLite::has_default_sfixed32() const {
  return (_has_bits_[1] & 0x00000100u) != 0;
}
inline void TestAllTypesLite::set_has_default_sfixed32() {
  _has_bits_[1] |= 0x00000100u;
}
inline void TestAllTypesLite::clear_has_default_sfixed32() {
  _has_bits_[1] &= ~0x00000100u;
}
inline void TestAllTypesLite::clear_default_sfixed32() {
  default_sfixed32_ = 49;
  clear_has_default_sfixed32();
}
inline ::google::protobuf::int32 TestAllTypesLite::default_sfixed32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_sfixed32)
  return default_sfixed32_;
}
inline void TestAllTypesLite::set_default_sfixed32(::google::protobuf::int32 value) {
  set_has_default_sfixed32();
  default_sfixed32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_sfixed32)
}

// optional sfixed64 default_sfixed64 = 70 [default = -50];
inline bool TestAllTypesLite::has_default_sfixed64() const {
  return (_has_bits_[1] & 0x00000200u) != 0;
}
inline void TestAllTypesLite::set_has_default_sfixed64() {
  _has_bits_[1] |= 0x00000200u;
}
inline void TestAllTypesLite::clear_has_default_sfixed64() {
  _has_bits_[1] &= ~0x00000200u;
}
inline void TestAllTypesLite::clear_default_sfixed64() {
  default_sfixed64_ = GOOGLE_LONGLONG(-50);
  clear_has_default_sfixed64();
}
inline ::google::protobuf::int64 TestAllTypesLite::default_sfixed64() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_sfixed64)
  return default_sfixed64_;
}
inline void TestAllTypesLite::set_default_sfixed64(::google::protobuf::int64 value) {
  set_has_default_sfixed64();
  default_sfixed64_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_sfixed64)
}

// optional float default_float = 71 [default = 51.5];
inline bool TestAllTypesLite::has_default_float() const {
  return (_has_bits_[1] & 0x00000800u) != 0;
}
inline void TestAllTypesLite::set_has_default_float() {
  _has_bits_[1] |= 0x00000800u;
}
inline void TestAllTypesLite::clear_has_default_float() {
  _has_bits_[1] &= ~0x00000800u;
}
inline void TestAllTypesLite::clear_default_float() {
  default_float_ = 51.5f;
  clear_has_default_float();
}
inline float TestAllTypesLite::default_float() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_float)
  return default_float_;
}
inline void TestAllTypesLite::set_default_float(float value) {
  set_has_default_float();
  default_float_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_float)
}

// optional double default_double = 72 [default = 52000];
inline bool TestAllTypesLite::has_default_double() const {
  return (_has_bits_[1] & 0x00000400u) != 0;
}
inline void TestAllTypesLite::set_has_default_double() {
  _has_bits_[1] |= 0x00000400u;
}
inline void TestAllTypesLite::clear_has_default_double() {
  _has_bits_[1] &= ~0x00000400u;
}
inline void TestAllTypesLite::clear_default_double() {
  default_double_ = 52000;
  clear_has_default_double();
}
inline double TestAllTypesLite::default_double() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_double)
  return default_double_;
}
inline void TestAllTypesLite::set_default_double(double value) {
  set_has_default_double();
  default_double_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_double)
}

// optional bool default_bool = 73 [default = true];
inline bool TestAllTypesLite::has_default_bool() const {
  return (_has_bits_[1] & 0x00001000u) != 0;
}
inline void TestAllTypesLite::set_has_default_bool() {
  _has_bits_[1] |= 0x00001000u;
}
inline void TestAllTypesLite::clear_has_default_bool() {
  _has_bits_[1] &= ~0x00001000u;
}
inline void TestAllTypesLite::clear_default_bool() {
  default_bool_ = true;
  clear_has_default_bool();
}
inline bool TestAllTypesLite::default_bool() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_bool)
  return default_bool_;
}
inline void TestAllTypesLite::set_default_bool(bool value) {
  set_has_default_bool();
  default_bool_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_bool)
}

// optional string default_string = 74 [default = "hello"];
inline bool TestAllTypesLite::has_default_string() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestAllTypesLite::set_has_default_string() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestAllTypesLite::clear_has_default_string() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestAllTypesLite::clear_default_string() {
  default_string_.ClearToDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get());
  clear_has_default_string();
}
inline const ::std::string& TestAllTypesLite::default_string() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_string)
  return default_string_.GetNoArena();
}
inline void TestAllTypesLite::set_default_string(const ::std::string& value) {
  set_has_default_string();
  default_string_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_string)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_default_string(::std::string&& value) {
  set_has_default_string();
  default_string_.SetNoArena(
    &::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.default_string)
}
#endif
inline void TestAllTypesLite::set_default_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_default_string();
  default_string_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.default_string)
}
inline void TestAllTypesLite::set_default_string(const char* value, size_t size) {
  set_has_default_string();
  default_string_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.default_string)
}
inline ::std::string* TestAllTypesLite::mutable_default_string() {
  set_has_default_string();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.default_string)
  return default_string_.MutableNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get());
}
inline ::std::string* TestAllTypesLite::release_default_string() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.default_string)
  if (!has_default_string()) {
    return NULL;
  }
  clear_has_default_string();
  return default_string_.ReleaseNonDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get());
}
inline void TestAllTypesLite::set_allocated_default_string(::std::string* default_string) {
  if (default_string != NULL) {
    set_has_default_string();
  } else {
    clear_has_default_string();
  }
  default_string_.SetAllocatedNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_.get(), default_string);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.default_string)
}

// optional bytes default_bytes = 75 [default = "world"];
inline bool TestAllTypesLite::has_default_bytes() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TestAllTypesLite::set_has_default_bytes() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TestAllTypesLite::clear_has_default_bytes() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TestAllTypesLite::clear_default_bytes() {
  default_bytes_.ClearToDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get());
  clear_has_default_bytes();
}
inline const ::std::string& TestAllTypesLite::default_bytes() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_bytes)
  return default_bytes_.GetNoArena();
}
inline void TestAllTypesLite::set_default_bytes(const ::std::string& value) {
  set_has_default_bytes();
  default_bytes_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_bytes)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_default_bytes(::std::string&& value) {
  set_has_default_bytes();
  default_bytes_.SetNoArena(
    &::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.default_bytes)
}
#endif
inline void TestAllTypesLite::set_default_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_default_bytes();
  default_bytes_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.default_bytes)
}
inline void TestAllTypesLite::set_default_bytes(const void* value, size_t size) {
  set_has_default_bytes();
  default_bytes_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.default_bytes)
}
inline ::std::string* TestAllTypesLite::mutable_default_bytes() {
  set_has_default_bytes();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.default_bytes)
  return default_bytes_.MutableNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get());
}
inline ::std::string* TestAllTypesLite::release_default_bytes() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.default_bytes)
  if (!has_default_bytes()) {
    return NULL;
  }
  clear_has_default_bytes();
  return default_bytes_.ReleaseNonDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get());
}
inline void TestAllTypesLite::set_allocated_default_bytes(::std::string* default_bytes) {
  if (default_bytes != NULL) {
    set_has_default_bytes();
  } else {
    clear_has_default_bytes();
  }
  default_bytes_.SetAllocatedNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_bytes_.get(), default_bytes);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.default_bytes)
}

// optional .protobuf_unittest.TestAllTypesLite.NestedEnum default_nested_enum = 81 [default = BAR];
inline bool TestAllTypesLite::has_default_nested_enum() const {
  return (_has_bits_[1] & 0x00002000u) != 0;
}
inline void TestAllTypesLite::set_has_default_nested_enum() {
  _has_bits_[1] |= 0x00002000u;
}
inline void TestAllTypesLite::clear_has_default_nested_enum() {
  _has_bits_[1] &= ~0x00002000u;
}
inline void TestAllTypesLite::clear_default_nested_enum() {
  default_nested_enum_ = 2;
  clear_has_default_nested_enum();
}
inline ::protobuf_unittest::TestAllTypesLite_NestedEnum TestAllTypesLite::default_nested_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_nested_enum)
  return static_cast< ::protobuf_unittest::TestAllTypesLite_NestedEnum >(default_nested_enum_);
}
inline void TestAllTypesLite::set_default_nested_enum(::protobuf_unittest::TestAllTypesLite_NestedEnum value) {
  assert(::protobuf_unittest::TestAllTypesLite_NestedEnum_IsValid(value));
  set_has_default_nested_enum();
  default_nested_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_nested_enum)
}

// optional .protobuf_unittest.ForeignEnumLite default_foreign_enum = 82 [default = FOREIGN_LITE_BAR];
inline bool TestAllTypesLite::has_default_foreign_enum() const {
  return (_has_bits_[1] & 0x00004000u) != 0;
}
inline void TestAllTypesLite::set_has_default_foreign_enum() {
  _has_bits_[1] |= 0x00004000u;
}
inline void TestAllTypesLite::clear_has_default_foreign_enum() {
  _has_bits_[1] &= ~0x00004000u;
}
inline void TestAllTypesLite::clear_default_foreign_enum() {
  default_foreign_enum_ = 5;
  clear_has_default_foreign_enum();
}
inline ::protobuf_unittest::ForeignEnumLite TestAllTypesLite::default_foreign_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_foreign_enum)
  return static_cast< ::protobuf_unittest::ForeignEnumLite >(default_foreign_enum_);
}
inline void TestAllTypesLite::set_default_foreign_enum(::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  set_has_default_foreign_enum();
  default_foreign_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_foreign_enum)
}

// optional .protobuf_unittest_import.ImportEnumLite default_import_enum = 83 [default = IMPORT_LITE_BAR];
inline bool TestAllTypesLite::has_default_import_enum() const {
  return (_has_bits_[0] & 0x10000000u) != 0;
}
inline void TestAllTypesLite::set_has_default_import_enum() {
  _has_bits_[0] |= 0x10000000u;
}
inline void TestAllTypesLite::clear_has_default_import_enum() {
  _has_bits_[0] &= ~0x10000000u;
}
inline void TestAllTypesLite::clear_default_import_enum() {
  default_import_enum_ = 8;
  clear_has_default_import_enum();
}
inline ::protobuf_unittest_import::ImportEnumLite TestAllTypesLite::default_import_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_import_enum)
  return static_cast< ::protobuf_unittest_import::ImportEnumLite >(default_import_enum_);
}
inline void TestAllTypesLite::set_default_import_enum(::protobuf_unittest_import::ImportEnumLite value) {
  assert(::protobuf_unittest_import::ImportEnumLite_IsValid(value));
  set_has_default_import_enum();
  default_import_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_import_enum)
}

// optional string default_string_piece = 84 [default = "abc", ctype = STRING_PIECE];
inline bool TestAllTypesLite::has_default_string_piece() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TestAllTypesLite::set_has_default_string_piece() {
  _has_bits_[0] |= 0x00000040u;
}
inline void TestAllTypesLite::clear_has_default_string_piece() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void TestAllTypesLite::clear_default_string_piece() {
  default_string_piece_.ClearToDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get());
  clear_has_default_string_piece();
}
inline const ::std::string& TestAllTypesLite::default_string_piece() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_string_piece)
  return default_string_piece_.GetNoArena();
}
inline void TestAllTypesLite::set_default_string_piece(const ::std::string& value) {
  set_has_default_string_piece();
  default_string_piece_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_string_piece)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_default_string_piece(::std::string&& value) {
  set_has_default_string_piece();
  default_string_piece_.SetNoArena(
    &::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.default_string_piece)
}
#endif
inline void TestAllTypesLite::set_default_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_default_string_piece();
  default_string_piece_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.default_string_piece)
}
inline void TestAllTypesLite::set_default_string_piece(const char* value, size_t size) {
  set_has_default_string_piece();
  default_string_piece_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.default_string_piece)
}
inline ::std::string* TestAllTypesLite::mutable_default_string_piece() {
  set_has_default_string_piece();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.default_string_piece)
  return default_string_piece_.MutableNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get());
}
inline ::std::string* TestAllTypesLite::release_default_string_piece() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.default_string_piece)
  if (!has_default_string_piece()) {
    return NULL;
  }
  clear_has_default_string_piece();
  return default_string_piece_.ReleaseNonDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get());
}
inline void TestAllTypesLite::set_allocated_default_string_piece(::std::string* default_string_piece) {
  if (default_string_piece != NULL) {
    set_has_default_string_piece();
  } else {
    clear_has_default_string_piece();
  }
  default_string_piece_.SetAllocatedNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_string_piece_.get(), default_string_piece);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.default_string_piece)
}

// optional string default_cord = 85 [default = "123", ctype = CORD];
inline bool TestAllTypesLite::has_default_cord() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void TestAllTypesLite::set_has_default_cord() {
  _has_bits_[0] |= 0x00000080u;
}
inline void TestAllTypesLite::clear_has_default_cord() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void TestAllTypesLite::clear_default_cord() {
  default_cord_.ClearToDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get());
  clear_has_default_cord();
}
inline const ::std::string& TestAllTypesLite::default_cord() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.default_cord)
  return default_cord_.GetNoArena();
}
inline void TestAllTypesLite::set_default_cord(const ::std::string& value) {
  set_has_default_cord();
  default_cord_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.default_cord)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_default_cord(::std::string&& value) {
  set_has_default_cord();
  default_cord_.SetNoArena(
    &::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.default_cord)
}
#endif
inline void TestAllTypesLite::set_default_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_default_cord();
  default_cord_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.default_cord)
}
inline void TestAllTypesLite::set_default_cord(const char* value, size_t size) {
  set_has_default_cord();
  default_cord_.SetNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.default_cord)
}
inline ::std::string* TestAllTypesLite::mutable_default_cord() {
  set_has_default_cord();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.default_cord)
  return default_cord_.MutableNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get());
}
inline ::std::string* TestAllTypesLite::release_default_cord() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.default_cord)
  if (!has_default_cord()) {
    return NULL;
  }
  clear_has_default_cord();
  return default_cord_.ReleaseNonDefaultNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get());
}
inline void TestAllTypesLite::set_allocated_default_cord(::std::string* default_cord) {
  if (default_cord != NULL) {
    set_has_default_cord();
  } else {
    clear_has_default_cord();
  }
  default_cord_.SetAllocatedNoArena(&::protobuf_unittest::TestAllTypesLite::_i_give_permission_to_break_this_code_default_default_cord_.get(), default_cord);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.default_cord)
}

// optional uint32 oneof_uint32 = 111;
inline bool TestAllTypesLite::has_oneof_uint32() const {
  return oneof_field_case() == kOneofUint32;
}
inline void TestAllTypesLite::set_has_oneof_uint32() {
  _oneof_case_[0] = kOneofUint32;
}
inline void TestAllTypesLite::clear_oneof_uint32() {
  if (has_oneof_uint32()) {
    oneof_field_.oneof_uint32_ = 0u;
    clear_has_oneof_field();
  }
}
inline ::google::protobuf::uint32 TestAllTypesLite::oneof_uint32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.oneof_uint32)
  if (has_oneof_uint32()) {
    return oneof_field_.oneof_uint32_;
  }
  return 0u;
}
inline void TestAllTypesLite::set_oneof_uint32(::google::protobuf::uint32 value) {
  if (!has_oneof_uint32()) {
    clear_oneof_field();
    set_has_oneof_uint32();
  }
  oneof_field_.oneof_uint32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_uint32)
}

// optional .protobuf_unittest.TestAllTypesLite.NestedMessage oneof_nested_message = 112;
inline bool TestAllTypesLite::has_oneof_nested_message() const {
  return oneof_field_case() == kOneofNestedMessage;
}
inline void TestAllTypesLite::set_has_oneof_nested_message() {
  _oneof_case_[0] = kOneofNestedMessage;
}
inline void TestAllTypesLite::clear_oneof_nested_message() {
  if (has_oneof_nested_message()) {
    delete oneof_field_.oneof_nested_message_;
    clear_has_oneof_field();
  }
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::_internal_oneof_nested_message() const {
  return *oneof_field_.oneof_nested_message_;
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::release_oneof_nested_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.oneof_nested_message)
  if (has_oneof_nested_message()) {
    clear_has_oneof_field();
      ::protobuf_unittest::TestAllTypesLite_NestedMessage* temp = oneof_field_.oneof_nested_message_;
    oneof_field_.oneof_nested_message_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::oneof_nested_message() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.oneof_nested_message)
  return has_oneof_nested_message()
      ? *oneof_field_.oneof_nested_message_
      : *reinterpret_cast< ::protobuf_unittest::TestAllTypesLite_NestedMessage*>(&::protobuf_unittest::_TestAllTypesLite_NestedMessage_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::mutable_oneof_nested_message() {
  if (!has_oneof_nested_message()) {
    clear_oneof_field();
    set_has_oneof_nested_message();
    oneof_field_.oneof_nested_message_ = CreateMaybeMessage< ::protobuf_unittest::TestAllTypesLite_NestedMessage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.oneof_nested_message)
  return oneof_field_.oneof_nested_message_;
}

// optional string oneof_string = 113;
inline bool TestAllTypesLite::has_oneof_string() const {
  return oneof_field_case() == kOneofString;
}
inline void TestAllTypesLite::set_has_oneof_string() {
  _oneof_case_[0] = kOneofString;
}
inline void TestAllTypesLite::clear_oneof_string() {
  if (has_oneof_string()) {
    oneof_field_.oneof_string_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestAllTypesLite::oneof_string() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.oneof_string)
  if (has_oneof_string()) {
    return oneof_field_.oneof_string_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestAllTypesLite::set_oneof_string(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_string)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_oneof_string(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.oneof_string)
}
#endif
inline void TestAllTypesLite::set_oneof_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.oneof_string)
}
inline void TestAllTypesLite::set_oneof_string(const char* value, size_t size) {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.oneof_string)
}
inline ::std::string* TestAllTypesLite::mutable_oneof_string() {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.oneof_string)
  return oneof_field_.oneof_string_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestAllTypesLite::release_oneof_string() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.oneof_string)
  if (has_oneof_string()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestAllTypesLite::set_allocated_oneof_string(::std::string* oneof_string) {
  if (!has_oneof_string()) {
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_string != NULL) {
    set_has_oneof_string();
    oneof_field_.oneof_string_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_string);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.oneof_string)
}

// optional bytes oneof_bytes = 114;
inline bool TestAllTypesLite::has_oneof_bytes() const {
  return oneof_field_case() == kOneofBytes;
}
inline void TestAllTypesLite::set_has_oneof_bytes() {
  _oneof_case_[0] = kOneofBytes;
}
inline void TestAllTypesLite::clear_oneof_bytes() {
  if (has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestAllTypesLite::oneof_bytes() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.oneof_bytes)
  if (has_oneof_bytes()) {
    return oneof_field_.oneof_bytes_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestAllTypesLite::set_oneof_bytes(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_bytes)
}
#if LANG_CXX11
inline void TestAllTypesLite::set_oneof_bytes(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestAllTypesLite.oneof_bytes)
}
#endif
inline void TestAllTypesLite::set_oneof_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestAllTypesLite.oneof_bytes)
}
inline void TestAllTypesLite::set_oneof_bytes(const void* value, size_t size) {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestAllTypesLite.oneof_bytes)
}
inline ::std::string* TestAllTypesLite::mutable_oneof_bytes() {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.oneof_bytes)
  return oneof_field_.oneof_bytes_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestAllTypesLite::release_oneof_bytes() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.oneof_bytes)
  if (has_oneof_bytes()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestAllTypesLite::set_allocated_oneof_bytes(::std::string* oneof_bytes) {
  if (!has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_bytes != NULL) {
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_bytes);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestAllTypesLite.oneof_bytes)
}

// optional .protobuf_unittest.TestAllTypesLite.NestedMessage oneof_lazy_nested_message = 115 [lazy = true];
inline bool TestAllTypesLite::has_oneof_lazy_nested_message() const {
  return oneof_field_case() == kOneofLazyNestedMessage;
}
inline void TestAllTypesLite::set_has_oneof_lazy_nested_message() {
  _oneof_case_[0] = kOneofLazyNestedMessage;
}
inline void TestAllTypesLite::clear_oneof_lazy_nested_message() {
  if (has_oneof_lazy_nested_message()) {
    delete oneof_field_.oneof_lazy_nested_message_;
    clear_has_oneof_field();
  }
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::_internal_oneof_lazy_nested_message() const {
  return *oneof_field_.oneof_lazy_nested_message_;
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::release_oneof_lazy_nested_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestAllTypesLite.oneof_lazy_nested_message)
  if (has_oneof_lazy_nested_message()) {
    clear_has_oneof_field();
      ::protobuf_unittest::TestAllTypesLite_NestedMessage* temp = oneof_field_.oneof_lazy_nested_message_;
    oneof_field_.oneof_lazy_nested_message_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::protobuf_unittest::TestAllTypesLite_NestedMessage& TestAllTypesLite::oneof_lazy_nested_message() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.oneof_lazy_nested_message)
  return has_oneof_lazy_nested_message()
      ? *oneof_field_.oneof_lazy_nested_message_
      : *reinterpret_cast< ::protobuf_unittest::TestAllTypesLite_NestedMessage*>(&::protobuf_unittest::_TestAllTypesLite_NestedMessage_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite_NestedMessage* TestAllTypesLite::mutable_oneof_lazy_nested_message() {
  if (!has_oneof_lazy_nested_message()) {
    clear_oneof_field();
    set_has_oneof_lazy_nested_message();
    oneof_field_.oneof_lazy_nested_message_ = CreateMaybeMessage< ::protobuf_unittest::TestAllTypesLite_NestedMessage >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestAllTypesLite.oneof_lazy_nested_message)
  return oneof_field_.oneof_lazy_nested_message_;
}

// optional int32 deceptively_named_list = 116;
inline bool TestAllTypesLite::has_deceptively_named_list() const {
  return (_has_bits_[0] & 0x08000000u) != 0;
}
inline void TestAllTypesLite::set_has_deceptively_named_list() {
  _has_bits_[0] |= 0x08000000u;
}
inline void TestAllTypesLite::clear_has_deceptively_named_list() {
  _has_bits_[0] &= ~0x08000000u;
}
inline void TestAllTypesLite::clear_deceptively_named_list() {
  deceptively_named_list_ = 0;
  clear_has_deceptively_named_list();
}
inline ::google::protobuf::int32 TestAllTypesLite::deceptively_named_list() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestAllTypesLite.deceptively_named_list)
  return deceptively_named_list_;
}
inline void TestAllTypesLite::set_deceptively_named_list(::google::protobuf::int32 value) {
  set_has_deceptively_named_list();
  deceptively_named_list_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestAllTypesLite.deceptively_named_list)
}

inline bool TestAllTypesLite::has_oneof_field() const {
  return oneof_field_case() != ONEOF_FIELD_NOT_SET;
}
inline void TestAllTypesLite::clear_has_oneof_field() {
  _oneof_case_[0] = ONEOF_FIELD_NOT_SET;
}
inline TestAllTypesLite::OneofFieldCase TestAllTypesLite::oneof_field_case() const {
  return TestAllTypesLite::OneofFieldCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// ForeignMessageLite

// optional int32 c = 1;
inline bool ForeignMessageLite::has_c() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ForeignMessageLite::set_has_c() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ForeignMessageLite::clear_has_c() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ForeignMessageLite::clear_c() {
  c_ = 0;
  clear_has_c();
}
inline ::google::protobuf::int32 ForeignMessageLite::c() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.ForeignMessageLite.c)
  return c_;
}
inline void ForeignMessageLite::set_c(::google::protobuf::int32 value) {
  set_has_c();
  c_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.ForeignMessageLite.c)
}

// -------------------------------------------------------------------

// TestPackedTypesLite

// repeated int32 packed_int32 = 90 [packed = true];
inline int TestPackedTypesLite::packed_int32_size() const {
  return packed_int32_.size();
}
inline void TestPackedTypesLite::clear_packed_int32() {
  packed_int32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypesLite::packed_int32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_int32)
  return packed_int32_.Get(index);
}
inline void TestPackedTypesLite::set_packed_int32(int index, ::google::protobuf::int32 value) {
  packed_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_int32)
}
inline void TestPackedTypesLite::add_packed_int32(::google::protobuf::int32 value) {
  packed_int32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypesLite::packed_int32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_int32)
  return packed_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypesLite::mutable_packed_int32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_int32)
  return &packed_int32_;
}

// repeated int64 packed_int64 = 91 [packed = true];
inline int TestPackedTypesLite::packed_int64_size() const {
  return packed_int64_.size();
}
inline void TestPackedTypesLite::clear_packed_int64() {
  packed_int64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypesLite::packed_int64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_int64)
  return packed_int64_.Get(index);
}
inline void TestPackedTypesLite::set_packed_int64(int index, ::google::protobuf::int64 value) {
  packed_int64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_int64)
}
inline void TestPackedTypesLite::add_packed_int64(::google::protobuf::int64 value) {
  packed_int64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_int64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypesLite::packed_int64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_int64)
  return packed_int64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypesLite::mutable_packed_int64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_int64)
  return &packed_int64_;
}

// repeated uint32 packed_uint32 = 92 [packed = true];
inline int TestPackedTypesLite::packed_uint32_size() const {
  return packed_uint32_.size();
}
inline void TestPackedTypesLite::clear_packed_uint32() {
  packed_uint32_.Clear();
}
inline ::google::protobuf::uint32 TestPackedTypesLite::packed_uint32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_uint32)
  return packed_uint32_.Get(index);
}
inline void TestPackedTypesLite::set_packed_uint32(int index, ::google::protobuf::uint32 value) {
  packed_uint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_uint32)
}
inline void TestPackedTypesLite::add_packed_uint32(::google::protobuf::uint32 value) {
  packed_uint32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_uint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestPackedTypesLite::packed_uint32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_uint32)
  return packed_uint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestPackedTypesLite::mutable_packed_uint32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_uint32)
  return &packed_uint32_;
}

// repeated uint64 packed_uint64 = 93 [packed = true];
inline int TestPackedTypesLite::packed_uint64_size() const {
  return packed_uint64_.size();
}
inline void TestPackedTypesLite::clear_packed_uint64() {
  packed_uint64_.Clear();
}
inline ::google::protobuf::uint64 TestPackedTypesLite::packed_uint64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_uint64)
  return packed_uint64_.Get(index);
}
inline void TestPackedTypesLite::set_packed_uint64(int index, ::google::protobuf::uint64 value) {
  packed_uint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_uint64)
}
inline void TestPackedTypesLite::add_packed_uint64(::google::protobuf::uint64 value) {
  packed_uint64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_uint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestPackedTypesLite::packed_uint64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_uint64)
  return packed_uint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestPackedTypesLite::mutable_packed_uint64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_uint64)
  return &packed_uint64_;
}

// repeated sint32 packed_sint32 = 94 [packed = true];
inline int TestPackedTypesLite::packed_sint32_size() const {
  return packed_sint32_.size();
}
inline void TestPackedTypesLite::clear_packed_sint32() {
  packed_sint32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypesLite::packed_sint32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_sint32)
  return packed_sint32_.Get(index);
}
inline void TestPackedTypesLite::set_packed_sint32(int index, ::google::protobuf::int32 value) {
  packed_sint32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_sint32)
}
inline void TestPackedTypesLite::add_packed_sint32(::google::protobuf::int32 value) {
  packed_sint32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_sint32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypesLite::packed_sint32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_sint32)
  return packed_sint32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypesLite::mutable_packed_sint32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_sint32)
  return &packed_sint32_;
}

// repeated sint64 packed_sint64 = 95 [packed = true];
inline int TestPackedTypesLite::packed_sint64_size() const {
  return packed_sint64_.size();
}
inline void TestPackedTypesLite::clear_packed_sint64() {
  packed_sint64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypesLite::packed_sint64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_sint64)
  return packed_sint64_.Get(index);
}
inline void TestPackedTypesLite::set_packed_sint64(int index, ::google::protobuf::int64 value) {
  packed_sint64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_sint64)
}
inline void TestPackedTypesLite::add_packed_sint64(::google::protobuf::int64 value) {
  packed_sint64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_sint64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypesLite::packed_sint64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_sint64)
  return packed_sint64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypesLite::mutable_packed_sint64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_sint64)
  return &packed_sint64_;
}

// repeated fixed32 packed_fixed32 = 96 [packed = true];
inline int TestPackedTypesLite::packed_fixed32_size() const {
  return packed_fixed32_.size();
}
inline void TestPackedTypesLite::clear_packed_fixed32() {
  packed_fixed32_.Clear();
}
inline ::google::protobuf::uint32 TestPackedTypesLite::packed_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_fixed32)
  return packed_fixed32_.Get(index);
}
inline void TestPackedTypesLite::set_packed_fixed32(int index, ::google::protobuf::uint32 value) {
  packed_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_fixed32)
}
inline void TestPackedTypesLite::add_packed_fixed32(::google::protobuf::uint32 value) {
  packed_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
TestPackedTypesLite::packed_fixed32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_fixed32)
  return packed_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
TestPackedTypesLite::mutable_packed_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_fixed32)
  return &packed_fixed32_;
}

// repeated fixed64 packed_fixed64 = 97 [packed = true];
inline int TestPackedTypesLite::packed_fixed64_size() const {
  return packed_fixed64_.size();
}
inline void TestPackedTypesLite::clear_packed_fixed64() {
  packed_fixed64_.Clear();
}
inline ::google::protobuf::uint64 TestPackedTypesLite::packed_fixed64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_fixed64)
  return packed_fixed64_.Get(index);
}
inline void TestPackedTypesLite::set_packed_fixed64(int index, ::google::protobuf::uint64 value) {
  packed_fixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_fixed64)
}
inline void TestPackedTypesLite::add_packed_fixed64(::google::protobuf::uint64 value) {
  packed_fixed64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_fixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
TestPackedTypesLite::packed_fixed64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_fixed64)
  return packed_fixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
TestPackedTypesLite::mutable_packed_fixed64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_fixed64)
  return &packed_fixed64_;
}

// repeated sfixed32 packed_sfixed32 = 98 [packed = true];
inline int TestPackedTypesLite::packed_sfixed32_size() const {
  return packed_sfixed32_.size();
}
inline void TestPackedTypesLite::clear_packed_sfixed32() {
  packed_sfixed32_.Clear();
}
inline ::google::protobuf::int32 TestPackedTypesLite::packed_sfixed32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_sfixed32)
  return packed_sfixed32_.Get(index);
}
inline void TestPackedTypesLite::set_packed_sfixed32(int index, ::google::protobuf::int32 value) {
  packed_sfixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_sfixed32)
}
inline void TestPackedTypesLite::add_packed_sfixed32(::google::protobuf::int32 value) {
  packed_sfixed32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_sfixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestPackedTypesLite::packed_sfixed32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_sfixed32)
  return packed_sfixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestPackedTypesLite::mutable_packed_sfixed32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_sfixed32)
  return &packed_sfixed32_;
}

// repeated sfixed64 packed_sfixed64 = 99 [packed = true];
inline int TestPackedTypesLite::packed_sfixed64_size() const {
  return packed_sfixed64_.size();
}
inline void TestPackedTypesLite::clear_packed_sfixed64() {
  packed_sfixed64_.Clear();
}
inline ::google::protobuf::int64 TestPackedTypesLite::packed_sfixed64(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_sfixed64)
  return packed_sfixed64_.Get(index);
}
inline void TestPackedTypesLite::set_packed_sfixed64(int index, ::google::protobuf::int64 value) {
  packed_sfixed64_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_sfixed64)
}
inline void TestPackedTypesLite::add_packed_sfixed64(::google::protobuf::int64 value) {
  packed_sfixed64_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_sfixed64)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
TestPackedTypesLite::packed_sfixed64() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_sfixed64)
  return packed_sfixed64_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
TestPackedTypesLite::mutable_packed_sfixed64() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_sfixed64)
  return &packed_sfixed64_;
}

// repeated float packed_float = 100 [packed = true];
inline int TestPackedTypesLite::packed_float_size() const {
  return packed_float_.size();
}
inline void TestPackedTypesLite::clear_packed_float() {
  packed_float_.Clear();
}
inline float TestPackedTypesLite::packed_float(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_float)
  return packed_float_.Get(index);
}
inline void TestPackedTypesLite::set_packed_float(int index, float value) {
  packed_float_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_float)
}
inline void TestPackedTypesLite::add_packed_float(float value) {
  packed_float_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_float)
}
inline const ::google::protobuf::RepeatedField< float >&
TestPackedTypesLite::packed_float() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_float)
  return packed_float_;
}
inline ::google::protobuf::RepeatedField< float >*
TestPackedTypesLite::mutable_packed_float() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_float)
  return &packed_float_;
}

// repeated double packed_double = 101 [packed = true];
inline int TestPackedTypesLite::packed_double_size() const {
  return packed_double_.size();
}
inline void TestPackedTypesLite::clear_packed_double() {
  packed_double_.Clear();
}
inline double TestPackedTypesLite::packed_double(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_double)
  return packed_double_.Get(index);
}
inline void TestPackedTypesLite::set_packed_double(int index, double value) {
  packed_double_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_double)
}
inline void TestPackedTypesLite::add_packed_double(double value) {
  packed_double_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_double)
}
inline const ::google::protobuf::RepeatedField< double >&
TestPackedTypesLite::packed_double() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_double)
  return packed_double_;
}
inline ::google::protobuf::RepeatedField< double >*
TestPackedTypesLite::mutable_packed_double() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_double)
  return &packed_double_;
}

// repeated bool packed_bool = 102 [packed = true];
inline int TestPackedTypesLite::packed_bool_size() const {
  return packed_bool_.size();
}
inline void TestPackedTypesLite::clear_packed_bool() {
  packed_bool_.Clear();
}
inline bool TestPackedTypesLite::packed_bool(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_bool)
  return packed_bool_.Get(index);
}
inline void TestPackedTypesLite::set_packed_bool(int index, bool value) {
  packed_bool_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_bool)
}
inline void TestPackedTypesLite::add_packed_bool(bool value) {
  packed_bool_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_bool)
}
inline const ::google::protobuf::RepeatedField< bool >&
TestPackedTypesLite::packed_bool() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_bool)
  return packed_bool_;
}
inline ::google::protobuf::RepeatedField< bool >*
TestPackedTypesLite::mutable_packed_bool() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_bool)
  return &packed_bool_;
}

// repeated .protobuf_unittest.ForeignEnumLite packed_enum = 103 [packed = true];
inline int TestPackedTypesLite::packed_enum_size() const {
  return packed_enum_.size();
}
inline void TestPackedTypesLite::clear_packed_enum() {
  packed_enum_.Clear();
}
inline ::protobuf_unittest::ForeignEnumLite TestPackedTypesLite::packed_enum(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestPackedTypesLite.packed_enum)
  return static_cast< ::protobuf_unittest::ForeignEnumLite >(packed_enum_.Get(index));
}
inline void TestPackedTypesLite::set_packed_enum(int index, ::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  packed_enum_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestPackedTypesLite.packed_enum)
}
inline void TestPackedTypesLite::add_packed_enum(::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  packed_enum_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestPackedTypesLite.packed_enum)
}
inline const ::google::protobuf::RepeatedField<int>&
TestPackedTypesLite::packed_enum() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestPackedTypesLite.packed_enum)
  return packed_enum_;
}
inline ::google::protobuf::RepeatedField<int>*
TestPackedTypesLite::mutable_packed_enum() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestPackedTypesLite.packed_enum)
  return &packed_enum_;
}

// -------------------------------------------------------------------

// TestAllExtensionsLite

// -------------------------------------------------------------------

// OptionalGroup_extension_lite

// optional int32 a = 17;
inline bool OptionalGroup_extension_lite::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void OptionalGroup_extension_lite::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void OptionalGroup_extension_lite::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void OptionalGroup_extension_lite::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 OptionalGroup_extension_lite::a() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.OptionalGroup_extension_lite.a)
  return a_;
}
inline void OptionalGroup_extension_lite::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.OptionalGroup_extension_lite.a)
}

// -------------------------------------------------------------------

// RepeatedGroup_extension_lite

// optional int32 a = 47;
inline bool RepeatedGroup_extension_lite::has_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RepeatedGroup_extension_lite::set_has_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RepeatedGroup_extension_lite::clear_has_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RepeatedGroup_extension_lite::clear_a() {
  a_ = 0;
  clear_has_a();
}
inline ::google::protobuf::int32 RepeatedGroup_extension_lite::a() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.RepeatedGroup_extension_lite.a)
  return a_;
}
inline void RepeatedGroup_extension_lite::set_a(::google::protobuf::int32 value) {
  set_has_a();
  a_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.RepeatedGroup_extension_lite.a)
}

// -------------------------------------------------------------------

// TestPackedExtensionsLite

// -------------------------------------------------------------------

// TestNestedExtensionLite

// -------------------------------------------------------------------

// TestDeprecatedLite

// optional int32 deprecated_field = 1 [deprecated = true];
inline bool TestDeprecatedLite::has_deprecated_field() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestDeprecatedLite::set_has_deprecated_field() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestDeprecatedLite::clear_has_deprecated_field() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestDeprecatedLite::clear_deprecated_field() {
  deprecated_field_ = 0;
  clear_has_deprecated_field();
}
inline ::google::protobuf::int32 TestDeprecatedLite::deprecated_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestDeprecatedLite.deprecated_field)
  return deprecated_field_;
}
inline void TestDeprecatedLite::set_deprecated_field(::google::protobuf::int32 value) {
  set_has_deprecated_field();
  deprecated_field_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestDeprecatedLite.deprecated_field)
}

// -------------------------------------------------------------------

// TestParsingMergeLite_RepeatedFieldsGenerator_Group1

// optional .protobuf_unittest.TestAllTypesLite field1 = 11;
inline bool TestParsingMergeLite_RepeatedFieldsGenerator_Group1::has_field1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group1::set_has_field1() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group1::clear_has_field1() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group1::clear_field1() {
  if (field1_ != NULL) field1_->Clear();
  clear_has_field1();
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator_Group1::_internal_field1() const {
  return *field1_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator_Group1::field1() const {
  const ::protobuf_unittest::TestAllTypesLite* p = field1_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.field1)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite*>(
      &::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator_Group1::release_field1() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.field1)
  clear_has_field1();
  ::protobuf_unittest::TestAllTypesLite* temp = field1_;
  field1_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator_Group1::mutable_field1() {
  set_has_field1();
  if (field1_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(GetArenaNoVirtual());
    field1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.field1)
  return field1_;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group1::set_allocated_field1(::protobuf_unittest::TestAllTypesLite* field1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete field1_;
  }
  if (field1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      field1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, field1, submessage_arena);
    }
    set_has_field1();
  } else {
    clear_has_field1();
  }
  field1_ = field1;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group1.field1)
}

// -------------------------------------------------------------------

// TestParsingMergeLite_RepeatedFieldsGenerator_Group2

// optional .protobuf_unittest.TestAllTypesLite field1 = 21;
inline bool TestParsingMergeLite_RepeatedFieldsGenerator_Group2::has_field1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group2::set_has_field1() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group2::clear_has_field1() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group2::clear_field1() {
  if (field1_ != NULL) field1_->Clear();
  clear_has_field1();
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator_Group2::_internal_field1() const {
  return *field1_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator_Group2::field1() const {
  const ::protobuf_unittest::TestAllTypesLite* p = field1_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.field1)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite*>(
      &::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator_Group2::release_field1() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.field1)
  clear_has_field1();
  ::protobuf_unittest::TestAllTypesLite* temp = field1_;
  field1_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator_Group2::mutable_field1() {
  set_has_field1();
  if (field1_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(GetArenaNoVirtual());
    field1_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.field1)
  return field1_;
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator_Group2::set_allocated_field1(::protobuf_unittest::TestAllTypesLite* field1) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete field1_;
  }
  if (field1) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      field1 = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, field1, submessage_arena);
    }
    set_has_field1();
  } else {
    clear_has_field1();
  }
  field1_ = field1;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.Group2.field1)
}

// -------------------------------------------------------------------

// TestParsingMergeLite_RepeatedFieldsGenerator

// repeated .protobuf_unittest.TestAllTypesLite field1 = 1;
inline int TestParsingMergeLite_RepeatedFieldsGenerator::field1_size() const {
  return field1_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_field1() {
  field1_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_field1(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field1)
  return field1_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_field1() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field1)
  return &field1_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator::field1(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field1)
  return field1_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::add_field1() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field1)
  return field1_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
TestParsingMergeLite_RepeatedFieldsGenerator::field1() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field1)
  return field1_;
}

// repeated .protobuf_unittest.TestAllTypesLite field2 = 2;
inline int TestParsingMergeLite_RepeatedFieldsGenerator::field2_size() const {
  return field2_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_field2() {
  field2_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_field2(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field2)
  return field2_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_field2() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field2)
  return &field2_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator::field2(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field2)
  return field2_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::add_field2() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field2)
  return field2_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
TestParsingMergeLite_RepeatedFieldsGenerator::field2() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field2)
  return field2_;
}

// repeated .protobuf_unittest.TestAllTypesLite field3 = 3;
inline int TestParsingMergeLite_RepeatedFieldsGenerator::field3_size() const {
  return field3_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_field3() {
  field3_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_field3(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field3)
  return field3_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_field3() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field3)
  return &field3_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator::field3(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field3)
  return field3_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::add_field3() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field3)
  return field3_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
TestParsingMergeLite_RepeatedFieldsGenerator::field3() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.field3)
  return field3_;
}

// repeated group Group1 = 10 { ... };
inline int TestParsingMergeLite_RepeatedFieldsGenerator::group1_size() const {
  return group1_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_group1() {
  group1_.Clear();
}
inline ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_group1(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group1)
  return group1_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1 >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_group1() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group1)
  return &group1_;
}
inline const ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1& TestParsingMergeLite_RepeatedFieldsGenerator::group1(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group1)
  return group1_.Get(index);
}
inline ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1* TestParsingMergeLite_RepeatedFieldsGenerator::add_group1() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group1)
  return group1_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group1 >&
TestParsingMergeLite_RepeatedFieldsGenerator::group1() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group1)
  return group1_;
}

// repeated group Group2 = 20 { ... };
inline int TestParsingMergeLite_RepeatedFieldsGenerator::group2_size() const {
  return group2_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_group2() {
  group2_.Clear();
}
inline ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_group2(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group2)
  return group2_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2 >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_group2() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group2)
  return &group2_;
}
inline const ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2& TestParsingMergeLite_RepeatedFieldsGenerator::group2(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group2)
  return group2_.Get(index);
}
inline ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2* TestParsingMergeLite_RepeatedFieldsGenerator::add_group2() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group2)
  return group2_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedFieldsGenerator_Group2 >&
TestParsingMergeLite_RepeatedFieldsGenerator::group2() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.group2)
  return group2_;
}

// repeated .protobuf_unittest.TestAllTypesLite ext1 = 1000;
inline int TestParsingMergeLite_RepeatedFieldsGenerator::ext1_size() const {
  return ext1_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_ext1() {
  ext1_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_ext1(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext1)
  return ext1_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_ext1() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext1)
  return &ext1_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator::ext1(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext1)
  return ext1_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::add_ext1() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext1)
  return ext1_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
TestParsingMergeLite_RepeatedFieldsGenerator::ext1() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext1)
  return ext1_;
}

// repeated .protobuf_unittest.TestAllTypesLite ext2 = 1001;
inline int TestParsingMergeLite_RepeatedFieldsGenerator::ext2_size() const {
  return ext2_.size();
}
inline void TestParsingMergeLite_RepeatedFieldsGenerator::clear_ext2() {
  ext2_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::mutable_ext2(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext2)
  return ext2_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
TestParsingMergeLite_RepeatedFieldsGenerator::mutable_ext2() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext2)
  return &ext2_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedFieldsGenerator::ext2(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext2)
  return ext2_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedFieldsGenerator::add_ext2() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext2)
  return ext2_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
TestParsingMergeLite_RepeatedFieldsGenerator::ext2() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.RepeatedFieldsGenerator.ext2)
  return ext2_;
}

// -------------------------------------------------------------------

// TestParsingMergeLite_OptionalGroup

// optional .protobuf_unittest.TestAllTypesLite optional_group_all_types = 11;
inline bool TestParsingMergeLite_OptionalGroup::has_optional_group_all_types() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestParsingMergeLite_OptionalGroup::set_has_optional_group_all_types() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestParsingMergeLite_OptionalGroup::clear_has_optional_group_all_types() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestParsingMergeLite_OptionalGroup::clear_optional_group_all_types() {
  if (optional_group_all_types_ != NULL) optional_group_all_types_->Clear();
  clear_has_optional_group_all_types();
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_OptionalGroup::_internal_optional_group_all_types() const {
  return *optional_group_all_types_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_OptionalGroup::optional_group_all_types() const {
  const ::protobuf_unittest::TestAllTypesLite* p = optional_group_all_types_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.OptionalGroup.optional_group_all_types)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite*>(
      &::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_OptionalGroup::release_optional_group_all_types() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.OptionalGroup.optional_group_all_types)
  clear_has_optional_group_all_types();
  ::protobuf_unittest::TestAllTypesLite* temp = optional_group_all_types_;
  optional_group_all_types_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_OptionalGroup::mutable_optional_group_all_types() {
  set_has_optional_group_all_types();
  if (optional_group_all_types_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(GetArenaNoVirtual());
    optional_group_all_types_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.OptionalGroup.optional_group_all_types)
  return optional_group_all_types_;
}
inline void TestParsingMergeLite_OptionalGroup::set_allocated_optional_group_all_types(::protobuf_unittest::TestAllTypesLite* optional_group_all_types) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_group_all_types_;
  }
  if (optional_group_all_types) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_group_all_types = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_group_all_types, submessage_arena);
    }
    set_has_optional_group_all_types();
  } else {
    clear_has_optional_group_all_types();
  }
  optional_group_all_types_ = optional_group_all_types;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.OptionalGroup.optional_group_all_types)
}

// -------------------------------------------------------------------

// TestParsingMergeLite_RepeatedGroup

// optional .protobuf_unittest.TestAllTypesLite repeated_group_all_types = 21;
inline bool TestParsingMergeLite_RepeatedGroup::has_repeated_group_all_types() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestParsingMergeLite_RepeatedGroup::set_has_repeated_group_all_types() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestParsingMergeLite_RepeatedGroup::clear_has_repeated_group_all_types() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestParsingMergeLite_RepeatedGroup::clear_repeated_group_all_types() {
  if (repeated_group_all_types_ != NULL) repeated_group_all_types_->Clear();
  clear_has_repeated_group_all_types();
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedGroup::_internal_repeated_group_all_types() const {
  return *repeated_group_all_types_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite_RepeatedGroup::repeated_group_all_types() const {
  const ::protobuf_unittest::TestAllTypesLite* p = repeated_group_all_types_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.RepeatedGroup.repeated_group_all_types)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite*>(
      &::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedGroup::release_repeated_group_all_types() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.RepeatedGroup.repeated_group_all_types)
  clear_has_repeated_group_all_types();
  ::protobuf_unittest::TestAllTypesLite* temp = repeated_group_all_types_;
  repeated_group_all_types_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite_RepeatedGroup::mutable_repeated_group_all_types() {
  set_has_repeated_group_all_types();
  if (repeated_group_all_types_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(GetArenaNoVirtual());
    repeated_group_all_types_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.RepeatedGroup.repeated_group_all_types)
  return repeated_group_all_types_;
}
inline void TestParsingMergeLite_RepeatedGroup::set_allocated_repeated_group_all_types(::protobuf_unittest::TestAllTypesLite* repeated_group_all_types) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete repeated_group_all_types_;
  }
  if (repeated_group_all_types) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      repeated_group_all_types = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, repeated_group_all_types, submessage_arena);
    }
    set_has_repeated_group_all_types();
  } else {
    clear_has_repeated_group_all_types();
  }
  repeated_group_all_types_ = repeated_group_all_types;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.RepeatedGroup.repeated_group_all_types)
}

// -------------------------------------------------------------------

// TestParsingMergeLite

// required .protobuf_unittest.TestAllTypesLite required_all_types = 1;
inline bool TestParsingMergeLite::has_required_all_types() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestParsingMergeLite::set_has_required_all_types() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestParsingMergeLite::clear_has_required_all_types() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestParsingMergeLite::clear_required_all_types() {
  if (required_all_types_ != NULL) required_all_types_->Clear();
  clear_has_required_all_types();
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite::_internal_required_all_types() const {
  return *required_all_types_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite::required_all_types() const {
  const ::protobuf_unittest::TestAllTypesLite* p = required_all_types_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.required_all_types)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite*>(
      &::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite::release_required_all_types() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.required_all_types)
  clear_has_required_all_types();
  ::protobuf_unittest::TestAllTypesLite* temp = required_all_types_;
  required_all_types_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite::mutable_required_all_types() {
  set_has_required_all_types();
  if (required_all_types_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(GetArenaNoVirtual());
    required_all_types_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.required_all_types)
  return required_all_types_;
}
inline void TestParsingMergeLite::set_allocated_required_all_types(::protobuf_unittest::TestAllTypesLite* required_all_types) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete required_all_types_;
  }
  if (required_all_types) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      required_all_types = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, required_all_types, submessage_arena);
    }
    set_has_required_all_types();
  } else {
    clear_has_required_all_types();
  }
  required_all_types_ = required_all_types;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.required_all_types)
}

// optional .protobuf_unittest.TestAllTypesLite optional_all_types = 2;
inline bool TestParsingMergeLite::has_optional_all_types() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestParsingMergeLite::set_has_optional_all_types() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestParsingMergeLite::clear_has_optional_all_types() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestParsingMergeLite::clear_optional_all_types() {
  if (optional_all_types_ != NULL) optional_all_types_->Clear();
  clear_has_optional_all_types();
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite::_internal_optional_all_types() const {
  return *optional_all_types_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite::optional_all_types() const {
  const ::protobuf_unittest::TestAllTypesLite* p = optional_all_types_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.optional_all_types)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestAllTypesLite*>(
      &::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite::release_optional_all_types() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.optional_all_types)
  clear_has_optional_all_types();
  ::protobuf_unittest::TestAllTypesLite* temp = optional_all_types_;
  optional_all_types_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite::mutable_optional_all_types() {
  set_has_optional_all_types();
  if (optional_all_types_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestAllTypesLite>(GetArenaNoVirtual());
    optional_all_types_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.optional_all_types)
  return optional_all_types_;
}
inline void TestParsingMergeLite::set_allocated_optional_all_types(::protobuf_unittest::TestAllTypesLite* optional_all_types) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_all_types_;
  }
  if (optional_all_types) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_all_types = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_all_types, submessage_arena);
    }
    set_has_optional_all_types();
  } else {
    clear_has_optional_all_types();
  }
  optional_all_types_ = optional_all_types;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.optional_all_types)
}

// repeated .protobuf_unittest.TestAllTypesLite repeated_all_types = 3;
inline int TestParsingMergeLite::repeated_all_types_size() const {
  return repeated_all_types_.size();
}
inline void TestParsingMergeLite::clear_repeated_all_types() {
  repeated_all_types_.Clear();
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite::mutable_repeated_all_types(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.repeated_all_types)
  return repeated_all_types_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >*
TestParsingMergeLite::mutable_repeated_all_types() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.repeated_all_types)
  return &repeated_all_types_;
}
inline const ::protobuf_unittest::TestAllTypesLite& TestParsingMergeLite::repeated_all_types(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.repeated_all_types)
  return repeated_all_types_.Get(index);
}
inline ::protobuf_unittest::TestAllTypesLite* TestParsingMergeLite::add_repeated_all_types() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.repeated_all_types)
  return repeated_all_types_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestAllTypesLite >&
TestParsingMergeLite::repeated_all_types() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.repeated_all_types)
  return repeated_all_types_;
}

// optional group OptionalGroup = 10 { ... };
inline bool TestParsingMergeLite::has_optionalgroup() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestParsingMergeLite::set_has_optionalgroup() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestParsingMergeLite::clear_has_optionalgroup() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestParsingMergeLite::clear_optionalgroup() {
  if (optionalgroup_ != NULL) optionalgroup_->Clear();
  clear_has_optionalgroup();
}
inline const ::protobuf_unittest::TestParsingMergeLite_OptionalGroup& TestParsingMergeLite::_internal_optionalgroup() const {
  return *optionalgroup_;
}
inline const ::protobuf_unittest::TestParsingMergeLite_OptionalGroup& TestParsingMergeLite::optionalgroup() const {
  const ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* p = optionalgroup_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.optionalgroup)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestParsingMergeLite_OptionalGroup*>(
      &::protobuf_unittest::_TestParsingMergeLite_OptionalGroup_default_instance_);
}
inline ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* TestParsingMergeLite::release_optionalgroup() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestParsingMergeLite.optionalgroup)
  clear_has_optionalgroup();
  ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* temp = optionalgroup_;
  optionalgroup_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestParsingMergeLite_OptionalGroup* TestParsingMergeLite::mutable_optionalgroup() {
  set_has_optionalgroup();
  if (optionalgroup_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestParsingMergeLite_OptionalGroup>(GetArenaNoVirtual());
    optionalgroup_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.optionalgroup)
  return optionalgroup_;
}
inline void TestParsingMergeLite::set_allocated_optionalgroup(::protobuf_unittest::TestParsingMergeLite_OptionalGroup* optionalgroup) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optionalgroup_;
  }
  if (optionalgroup) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optionalgroup = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optionalgroup, submessage_arena);
    }
    set_has_optionalgroup();
  } else {
    clear_has_optionalgroup();
  }
  optionalgroup_ = optionalgroup;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestParsingMergeLite.optionalgroup)
}

// repeated group RepeatedGroup = 20 { ... };
inline int TestParsingMergeLite::repeatedgroup_size() const {
  return repeatedgroup_.size();
}
inline void TestParsingMergeLite::clear_repeatedgroup() {
  repeatedgroup_.Clear();
}
inline ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup* TestParsingMergeLite::mutable_repeatedgroup(int index) {
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestParsingMergeLite.repeatedgroup)
  return repeatedgroup_.Mutable(index);
}
inline ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup >*
TestParsingMergeLite::mutable_repeatedgroup() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestParsingMergeLite.repeatedgroup)
  return &repeatedgroup_;
}
inline const ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup& TestParsingMergeLite::repeatedgroup(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestParsingMergeLite.repeatedgroup)
  return repeatedgroup_.Get(index);
}
inline ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup* TestParsingMergeLite::add_repeatedgroup() {
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestParsingMergeLite.repeatedgroup)
  return repeatedgroup_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::protobuf_unittest::TestParsingMergeLite_RepeatedGroup >&
TestParsingMergeLite::repeatedgroup() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestParsingMergeLite.repeatedgroup)
  return repeatedgroup_;
}

// -------------------------------------------------------------------

// TestEmptyMessageLite

// -------------------------------------------------------------------

// TestEmptyMessageWithExtensionsLite

// -------------------------------------------------------------------

// V1MessageLite

// required int32 int_field = 1;
inline bool V1MessageLite::has_int_field() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void V1MessageLite::set_has_int_field() {
  _has_bits_[0] |= 0x00000001u;
}
inline void V1MessageLite::clear_has_int_field() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void V1MessageLite::clear_int_field() {
  int_field_ = 0;
  clear_has_int_field();
}
inline ::google::protobuf::int32 V1MessageLite::int_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.V1MessageLite.int_field)
  return int_field_;
}
inline void V1MessageLite::set_int_field(::google::protobuf::int32 value) {
  set_has_int_field();
  int_field_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.V1MessageLite.int_field)
}

// optional .protobuf_unittest.V1EnumLite enum_field = 2 [default = V1_FIRST];
inline bool V1MessageLite::has_enum_field() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void V1MessageLite::set_has_enum_field() {
  _has_bits_[0] |= 0x00000002u;
}
inline void V1MessageLite::clear_has_enum_field() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void V1MessageLite::clear_enum_field() {
  enum_field_ = 1;
  clear_has_enum_field();
}
inline ::protobuf_unittest::V1EnumLite V1MessageLite::enum_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.V1MessageLite.enum_field)
  return static_cast< ::protobuf_unittest::V1EnumLite >(enum_field_);
}
inline void V1MessageLite::set_enum_field(::protobuf_unittest::V1EnumLite value) {
  assert(::protobuf_unittest::V1EnumLite_IsValid(value));
  set_has_enum_field();
  enum_field_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.V1MessageLite.enum_field)
}

// -------------------------------------------------------------------

// V2MessageLite

// required int32 int_field = 1;
inline bool V2MessageLite::has_int_field() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void V2MessageLite::set_has_int_field() {
  _has_bits_[0] |= 0x00000001u;
}
inline void V2MessageLite::clear_has_int_field() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void V2MessageLite::clear_int_field() {
  int_field_ = 0;
  clear_has_int_field();
}
inline ::google::protobuf::int32 V2MessageLite::int_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.V2MessageLite.int_field)
  return int_field_;
}
inline void V2MessageLite::set_int_field(::google::protobuf::int32 value) {
  set_has_int_field();
  int_field_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.V2MessageLite.int_field)
}

// optional .protobuf_unittest.V2EnumLite enum_field = 2 [default = V2_FIRST];
inline bool V2MessageLite::has_enum_field() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void V2MessageLite::set_has_enum_field() {
  _has_bits_[0] |= 0x00000002u;
}
inline void V2MessageLite::clear_has_enum_field() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void V2MessageLite::clear_enum_field() {
  enum_field_ = 1;
  clear_has_enum_field();
}
inline ::protobuf_unittest::V2EnumLite V2MessageLite::enum_field() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.V2MessageLite.enum_field)
  return static_cast< ::protobuf_unittest::V2EnumLite >(enum_field_);
}
inline void V2MessageLite::set_enum_field(::protobuf_unittest::V2EnumLite value) {
  assert(::protobuf_unittest::V2EnumLite_IsValid(value));
  set_has_enum_field();
  enum_field_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.V2MessageLite.enum_field)
}

// -------------------------------------------------------------------

// TestHugeFieldNumbersLite_OptionalGroup

// optional int32 group_a = 536870009;
inline bool TestHugeFieldNumbersLite_OptionalGroup::has_group_a() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestHugeFieldNumbersLite_OptionalGroup::set_has_group_a() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestHugeFieldNumbersLite_OptionalGroup::clear_has_group_a() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestHugeFieldNumbersLite_OptionalGroup::clear_group_a() {
  group_a_ = 0;
  clear_has_group_a();
}
inline ::google::protobuf::int32 TestHugeFieldNumbersLite_OptionalGroup::group_a() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup.group_a)
  return group_a_;
}
inline void TestHugeFieldNumbersLite_OptionalGroup::set_group_a(::google::protobuf::int32 value) {
  set_has_group_a();
  group_a_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.OptionalGroup.group_a)
}

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// TestHugeFieldNumbersLite

// optional int32 optional_int32 = 536870000;
inline bool TestHugeFieldNumbersLite::has_optional_int32() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_optional_int32() {
  _has_bits_[0] |= 0x00000010u;
}
inline void TestHugeFieldNumbersLite::clear_has_optional_int32() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void TestHugeFieldNumbersLite::clear_optional_int32() {
  optional_int32_ = 0;
  clear_has_optional_int32();
}
inline ::google::protobuf::int32 TestHugeFieldNumbersLite::optional_int32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.optional_int32)
  return optional_int32_;
}
inline void TestHugeFieldNumbersLite::set_optional_int32(::google::protobuf::int32 value) {
  set_has_optional_int32();
  optional_int32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.optional_int32)
}

// optional int32 fixed_32 = 536870001;
inline bool TestHugeFieldNumbersLite::has_fixed_32() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_fixed_32() {
  _has_bits_[0] |= 0x00000020u;
}
inline void TestHugeFieldNumbersLite::clear_has_fixed_32() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void TestHugeFieldNumbersLite::clear_fixed_32() {
  fixed_32_ = 0;
  clear_has_fixed_32();
}
inline ::google::protobuf::int32 TestHugeFieldNumbersLite::fixed_32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.fixed_32)
  return fixed_32_;
}
inline void TestHugeFieldNumbersLite::set_fixed_32(::google::protobuf::int32 value) {
  set_has_fixed_32();
  fixed_32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.fixed_32)
}

// repeated int32 repeated_int32 = 536870002 [packed = false];
inline int TestHugeFieldNumbersLite::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void TestHugeFieldNumbersLite::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 TestHugeFieldNumbersLite::repeated_int32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.repeated_int32)
  return repeated_int32_.Get(index);
}
inline void TestHugeFieldNumbersLite::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.repeated_int32)
}
inline void TestHugeFieldNumbersLite::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestHugeFieldNumbersLite.repeated_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestHugeFieldNumbersLite::repeated_int32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestHugeFieldNumbersLite.repeated_int32)
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestHugeFieldNumbersLite::mutable_repeated_int32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestHugeFieldNumbersLite.repeated_int32)
  return &repeated_int32_;
}

// repeated int32 packed_int32 = 536870003 [packed = true];
inline int TestHugeFieldNumbersLite::packed_int32_size() const {
  return packed_int32_.size();
}
inline void TestHugeFieldNumbersLite::clear_packed_int32() {
  packed_int32_.Clear();
}
inline ::google::protobuf::int32 TestHugeFieldNumbersLite::packed_int32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.packed_int32)
  return packed_int32_.Get(index);
}
inline void TestHugeFieldNumbersLite::set_packed_int32(int index, ::google::protobuf::int32 value) {
  packed_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.packed_int32)
}
inline void TestHugeFieldNumbersLite::add_packed_int32(::google::protobuf::int32 value) {
  packed_int32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.TestHugeFieldNumbersLite.packed_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
TestHugeFieldNumbersLite::packed_int32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.TestHugeFieldNumbersLite.packed_int32)
  return packed_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
TestHugeFieldNumbersLite::mutable_packed_int32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.TestHugeFieldNumbersLite.packed_int32)
  return &packed_int32_;
}

// optional .protobuf_unittest.ForeignEnumLite optional_enum = 536870004;
inline bool TestHugeFieldNumbersLite::has_optional_enum() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_optional_enum() {
  _has_bits_[0] |= 0x00000040u;
}
inline void TestHugeFieldNumbersLite::clear_has_optional_enum() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void TestHugeFieldNumbersLite::clear_optional_enum() {
  optional_enum_ = 4;
  clear_has_optional_enum();
}
inline ::protobuf_unittest::ForeignEnumLite TestHugeFieldNumbersLite::optional_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.optional_enum)
  return static_cast< ::protobuf_unittest::ForeignEnumLite >(optional_enum_);
}
inline void TestHugeFieldNumbersLite::set_optional_enum(::protobuf_unittest::ForeignEnumLite value) {
  assert(::protobuf_unittest::ForeignEnumLite_IsValid(value));
  set_has_optional_enum();
  optional_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.optional_enum)
}

// optional string optional_string = 536870005;
inline bool TestHugeFieldNumbersLite::has_optional_string() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_optional_string() {
  _has_bits_[0] |= 0x00000001u;
}
inline void TestHugeFieldNumbersLite::clear_has_optional_string() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void TestHugeFieldNumbersLite::clear_optional_string() {
  optional_string_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_optional_string();
}
inline const ::std::string& TestHugeFieldNumbersLite::optional_string() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
  return optional_string_.GetNoArena();
}
inline void TestHugeFieldNumbersLite::set_optional_string(const ::std::string& value) {
  set_has_optional_string();
  optional_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
}
#if LANG_CXX11
inline void TestHugeFieldNumbersLite::set_optional_string(::std::string&& value) {
  set_has_optional_string();
  optional_string_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
}
#endif
inline void TestHugeFieldNumbersLite::set_optional_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_optional_string();
  optional_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
}
inline void TestHugeFieldNumbersLite::set_optional_string(const char* value, size_t size) {
  set_has_optional_string();
  optional_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
}
inline ::std::string* TestHugeFieldNumbersLite::mutable_optional_string() {
  set_has_optional_string();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
  return optional_string_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestHugeFieldNumbersLite::release_optional_string() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
  if (!has_optional_string()) {
    return NULL;
  }
  clear_has_optional_string();
  return optional_string_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TestHugeFieldNumbersLite::set_allocated_optional_string(::std::string* optional_string) {
  if (optional_string != NULL) {
    set_has_optional_string();
  } else {
    clear_has_optional_string();
  }
  optional_string_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_string);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestHugeFieldNumbersLite.optional_string)
}

// optional bytes optional_bytes = 536870006;
inline bool TestHugeFieldNumbersLite::has_optional_bytes() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_optional_bytes() {
  _has_bits_[0] |= 0x00000002u;
}
inline void TestHugeFieldNumbersLite::clear_has_optional_bytes() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void TestHugeFieldNumbersLite::clear_optional_bytes() {
  optional_bytes_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_optional_bytes();
}
inline const ::std::string& TestHugeFieldNumbersLite::optional_bytes() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
  return optional_bytes_.GetNoArena();
}
inline void TestHugeFieldNumbersLite::set_optional_bytes(const ::std::string& value) {
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
}
#if LANG_CXX11
inline void TestHugeFieldNumbersLite::set_optional_bytes(::std::string&& value) {
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
}
#endif
inline void TestHugeFieldNumbersLite::set_optional_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
}
inline void TestHugeFieldNumbersLite::set_optional_bytes(const void* value, size_t size) {
  set_has_optional_bytes();
  optional_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
}
inline ::std::string* TestHugeFieldNumbersLite::mutable_optional_bytes() {
  set_has_optional_bytes();
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
  return optional_bytes_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestHugeFieldNumbersLite::release_optional_bytes() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
  if (!has_optional_bytes()) {
    return NULL;
  }
  clear_has_optional_bytes();
  return optional_bytes_.ReleaseNonDefaultNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void TestHugeFieldNumbersLite::set_allocated_optional_bytes(::std::string* optional_bytes) {
  if (optional_bytes != NULL) {
    set_has_optional_bytes();
  } else {
    clear_has_optional_bytes();
  }
  optional_bytes_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), optional_bytes);
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestHugeFieldNumbersLite.optional_bytes)
}

// optional .protobuf_unittest.ForeignMessageLite optional_message = 536870007;
inline bool TestHugeFieldNumbersLite::has_optional_message() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_optional_message() {
  _has_bits_[0] |= 0x00000004u;
}
inline void TestHugeFieldNumbersLite::clear_has_optional_message() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void TestHugeFieldNumbersLite::clear_optional_message() {
  if (optional_message_ != NULL) optional_message_->Clear();
  clear_has_optional_message();
}
inline const ::protobuf_unittest::ForeignMessageLite& TestHugeFieldNumbersLite::_internal_optional_message() const {
  return *optional_message_;
}
inline const ::protobuf_unittest::ForeignMessageLite& TestHugeFieldNumbersLite::optional_message() const {
  const ::protobuf_unittest::ForeignMessageLite* p = optional_message_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.optional_message)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::ForeignMessageLite*>(
      &::protobuf_unittest::_ForeignMessageLite_default_instance_);
}
inline ::protobuf_unittest::ForeignMessageLite* TestHugeFieldNumbersLite::release_optional_message() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.optional_message)
  clear_has_optional_message();
  ::protobuf_unittest::ForeignMessageLite* temp = optional_message_;
  optional_message_ = NULL;
  return temp;
}
inline ::protobuf_unittest::ForeignMessageLite* TestHugeFieldNumbersLite::mutable_optional_message() {
  set_has_optional_message();
  if (optional_message_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::ForeignMessageLite>(GetArenaNoVirtual());
    optional_message_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.optional_message)
  return optional_message_;
}
inline void TestHugeFieldNumbersLite::set_allocated_optional_message(::protobuf_unittest::ForeignMessageLite* optional_message) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optional_message_;
  }
  if (optional_message) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optional_message = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optional_message, submessage_arena);
    }
    set_has_optional_message();
  } else {
    clear_has_optional_message();
  }
  optional_message_ = optional_message;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestHugeFieldNumbersLite.optional_message)
}

// optional group OptionalGroup = 536870008 { ... };
inline bool TestHugeFieldNumbersLite::has_optionalgroup() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void TestHugeFieldNumbersLite::set_has_optionalgroup() {
  _has_bits_[0] |= 0x00000008u;
}
inline void TestHugeFieldNumbersLite::clear_has_optionalgroup() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void TestHugeFieldNumbersLite::clear_optionalgroup() {
  if (optionalgroup_ != NULL) optionalgroup_->Clear();
  clear_has_optionalgroup();
}
inline const ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup& TestHugeFieldNumbersLite::_internal_optionalgroup() const {
  return *optionalgroup_;
}
inline const ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup& TestHugeFieldNumbersLite::optionalgroup() const {
  const ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* p = optionalgroup_;
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.optionalgroup)
  return p != NULL ? *p : *reinterpret_cast<const ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup*>(
      &::protobuf_unittest::_TestHugeFieldNumbersLite_OptionalGroup_default_instance_);
}
inline ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* TestHugeFieldNumbersLite::release_optionalgroup() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.optionalgroup)
  clear_has_optionalgroup();
  ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* temp = optionalgroup_;
  optionalgroup_ = NULL;
  return temp;
}
inline ::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* TestHugeFieldNumbersLite::mutable_optionalgroup() {
  set_has_optionalgroup();
  if (optionalgroup_ == NULL) {
    auto* p = CreateMaybeMessage<::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup>(GetArenaNoVirtual());
    optionalgroup_ = p;
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.optionalgroup)
  return optionalgroup_;
}
inline void TestHugeFieldNumbersLite::set_allocated_optionalgroup(::protobuf_unittest::TestHugeFieldNumbersLite_OptionalGroup* optionalgroup) {
  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
  if (message_arena == NULL) {
    delete optionalgroup_;
  }
  if (optionalgroup) {
    ::google::protobuf::Arena* submessage_arena = NULL;
    if (message_arena != submessage_arena) {
      optionalgroup = ::google::protobuf::internal::GetOwnedMessage(
          message_arena, optionalgroup, submessage_arena);
    }
    set_has_optionalgroup();
  } else {
    clear_has_optionalgroup();
  }
  optionalgroup_ = optionalgroup;
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestHugeFieldNumbersLite.optionalgroup)
}

// map<string, string> string_string_map = 536870010;
inline int TestHugeFieldNumbersLite::string_string_map_size() const {
  return string_string_map_.size();
}
inline void TestHugeFieldNumbersLite::clear_string_string_map() {
  string_string_map_.Clear();
}
inline const ::google::protobuf::Map< ::std::string, ::std::string >&
TestHugeFieldNumbersLite::string_string_map() const {
  // @@protoc_insertion_point(field_map:protobuf_unittest.TestHugeFieldNumbersLite.string_string_map)
  return string_string_map_.GetMap();
}
inline ::google::protobuf::Map< ::std::string, ::std::string >*
TestHugeFieldNumbersLite::mutable_string_string_map() {
  // @@protoc_insertion_point(field_mutable_map:protobuf_unittest.TestHugeFieldNumbersLite.string_string_map)
  return string_string_map_.MutableMap();
}

// optional uint32 oneof_uint32 = 536870011;
inline bool TestHugeFieldNumbersLite::has_oneof_uint32() const {
  return oneof_field_case() == kOneofUint32;
}
inline void TestHugeFieldNumbersLite::set_has_oneof_uint32() {
  _oneof_case_[0] = kOneofUint32;
}
inline void TestHugeFieldNumbersLite::clear_oneof_uint32() {
  if (has_oneof_uint32()) {
    oneof_field_.oneof_uint32_ = 0u;
    clear_has_oneof_field();
  }
}
inline ::google::protobuf::uint32 TestHugeFieldNumbersLite::oneof_uint32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.oneof_uint32)
  if (has_oneof_uint32()) {
    return oneof_field_.oneof_uint32_;
  }
  return 0u;
}
inline void TestHugeFieldNumbersLite::set_oneof_uint32(::google::protobuf::uint32 value) {
  if (!has_oneof_uint32()) {
    clear_oneof_field();
    set_has_oneof_uint32();
  }
  oneof_field_.oneof_uint32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_uint32)
}

// optional .protobuf_unittest.TestAllTypesLite oneof_test_all_types = 536870012;
inline bool TestHugeFieldNumbersLite::has_oneof_test_all_types() const {
  return oneof_field_case() == kOneofTestAllTypes;
}
inline void TestHugeFieldNumbersLite::set_has_oneof_test_all_types() {
  _oneof_case_[0] = kOneofTestAllTypes;
}
inline void TestHugeFieldNumbersLite::clear_oneof_test_all_types() {
  if (has_oneof_test_all_types()) {
    delete oneof_field_.oneof_test_all_types_;
    clear_has_oneof_field();
  }
}
inline const ::protobuf_unittest::TestAllTypesLite& TestHugeFieldNumbersLite::_internal_oneof_test_all_types() const {
  return *oneof_field_.oneof_test_all_types_;
}
inline ::protobuf_unittest::TestAllTypesLite* TestHugeFieldNumbersLite::release_oneof_test_all_types() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.oneof_test_all_types)
  if (has_oneof_test_all_types()) {
    clear_has_oneof_field();
      ::protobuf_unittest::TestAllTypesLite* temp = oneof_field_.oneof_test_all_types_;
    oneof_field_.oneof_test_all_types_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::protobuf_unittest::TestAllTypesLite& TestHugeFieldNumbersLite::oneof_test_all_types() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.oneof_test_all_types)
  return has_oneof_test_all_types()
      ? *oneof_field_.oneof_test_all_types_
      : *reinterpret_cast< ::protobuf_unittest::TestAllTypesLite*>(&::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestHugeFieldNumbersLite::mutable_oneof_test_all_types() {
  if (!has_oneof_test_all_types()) {
    clear_oneof_field();
    set_has_oneof_test_all_types();
    oneof_field_.oneof_test_all_types_ = CreateMaybeMessage< ::protobuf_unittest::TestAllTypesLite >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.oneof_test_all_types)
  return oneof_field_.oneof_test_all_types_;
}

// optional string oneof_string = 536870013;
inline bool TestHugeFieldNumbersLite::has_oneof_string() const {
  return oneof_field_case() == kOneofString;
}
inline void TestHugeFieldNumbersLite::set_has_oneof_string() {
  _oneof_case_[0] = kOneofString;
}
inline void TestHugeFieldNumbersLite::clear_oneof_string() {
  if (has_oneof_string()) {
    oneof_field_.oneof_string_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestHugeFieldNumbersLite::oneof_string() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
  if (has_oneof_string()) {
    return oneof_field_.oneof_string_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestHugeFieldNumbersLite::set_oneof_string(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
}
#if LANG_CXX11
inline void TestHugeFieldNumbersLite::set_oneof_string(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
}
#endif
inline void TestHugeFieldNumbersLite::set_oneof_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
}
inline void TestHugeFieldNumbersLite::set_oneof_string(const char* value, size_t size) {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
}
inline ::std::string* TestHugeFieldNumbersLite::mutable_oneof_string() {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
  return oneof_field_.oneof_string_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestHugeFieldNumbersLite::release_oneof_string() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
  if (has_oneof_string()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestHugeFieldNumbersLite::set_allocated_oneof_string(::std::string* oneof_string) {
  if (!has_oneof_string()) {
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_string != NULL) {
    set_has_oneof_string();
    oneof_field_.oneof_string_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_string);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestHugeFieldNumbersLite.oneof_string)
}

// optional bytes oneof_bytes = 536870014;
inline bool TestHugeFieldNumbersLite::has_oneof_bytes() const {
  return oneof_field_case() == kOneofBytes;
}
inline void TestHugeFieldNumbersLite::set_has_oneof_bytes() {
  _oneof_case_[0] = kOneofBytes;
}
inline void TestHugeFieldNumbersLite::clear_oneof_bytes() {
  if (has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestHugeFieldNumbersLite::oneof_bytes() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
  if (has_oneof_bytes()) {
    return oneof_field_.oneof_bytes_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestHugeFieldNumbersLite::set_oneof_bytes(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
}
#if LANG_CXX11
inline void TestHugeFieldNumbersLite::set_oneof_bytes(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
}
#endif
inline void TestHugeFieldNumbersLite::set_oneof_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
}
inline void TestHugeFieldNumbersLite::set_oneof_bytes(const void* value, size_t size) {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
}
inline ::std::string* TestHugeFieldNumbersLite::mutable_oneof_bytes() {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
  return oneof_field_.oneof_bytes_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestHugeFieldNumbersLite::release_oneof_bytes() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
  if (has_oneof_bytes()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestHugeFieldNumbersLite::set_allocated_oneof_bytes(::std::string* oneof_bytes) {
  if (!has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_bytes != NULL) {
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_bytes);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestHugeFieldNumbersLite.oneof_bytes)
}

inline bool TestHugeFieldNumbersLite::has_oneof_field() const {
  return oneof_field_case() != ONEOF_FIELD_NOT_SET;
}
inline void TestHugeFieldNumbersLite::clear_has_oneof_field() {
  _oneof_case_[0] = ONEOF_FIELD_NOT_SET;
}
inline TestHugeFieldNumbersLite::OneofFieldCase TestHugeFieldNumbersLite::oneof_field_case() const {
  return TestHugeFieldNumbersLite::OneofFieldCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// TestOneofParsingLite

// optional int32 oneof_int32 = 1;
inline bool TestOneofParsingLite::has_oneof_int32() const {
  return oneof_field_case() == kOneofInt32;
}
inline void TestOneofParsingLite::set_has_oneof_int32() {
  _oneof_case_[0] = kOneofInt32;
}
inline void TestOneofParsingLite::clear_oneof_int32() {
  if (has_oneof_int32()) {
    oneof_field_.oneof_int32_ = 0;
    clear_has_oneof_field();
  }
}
inline ::google::protobuf::int32 TestOneofParsingLite::oneof_int32() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_int32)
  if (has_oneof_int32()) {
    return oneof_field_.oneof_int32_;
  }
  return 0;
}
inline void TestOneofParsingLite::set_oneof_int32(::google::protobuf::int32 value) {
  if (!has_oneof_int32()) {
    clear_oneof_field();
    set_has_oneof_int32();
  }
  oneof_field_.oneof_int32_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_int32)
}

// optional .protobuf_unittest.TestAllTypesLite oneof_submessage = 2;
inline bool TestOneofParsingLite::has_oneof_submessage() const {
  return oneof_field_case() == kOneofSubmessage;
}
inline void TestOneofParsingLite::set_has_oneof_submessage() {
  _oneof_case_[0] = kOneofSubmessage;
}
inline void TestOneofParsingLite::clear_oneof_submessage() {
  if (has_oneof_submessage()) {
    delete oneof_field_.oneof_submessage_;
    clear_has_oneof_field();
  }
}
inline const ::protobuf_unittest::TestAllTypesLite& TestOneofParsingLite::_internal_oneof_submessage() const {
  return *oneof_field_.oneof_submessage_;
}
inline ::protobuf_unittest::TestAllTypesLite* TestOneofParsingLite::release_oneof_submessage() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_submessage)
  if (has_oneof_submessage()) {
    clear_has_oneof_field();
      ::protobuf_unittest::TestAllTypesLite* temp = oneof_field_.oneof_submessage_;
    oneof_field_.oneof_submessage_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::protobuf_unittest::TestAllTypesLite& TestOneofParsingLite::oneof_submessage() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_submessage)
  return has_oneof_submessage()
      ? *oneof_field_.oneof_submessage_
      : *reinterpret_cast< ::protobuf_unittest::TestAllTypesLite*>(&::protobuf_unittest::_TestAllTypesLite_default_instance_);
}
inline ::protobuf_unittest::TestAllTypesLite* TestOneofParsingLite::mutable_oneof_submessage() {
  if (!has_oneof_submessage()) {
    clear_oneof_field();
    set_has_oneof_submessage();
    oneof_field_.oneof_submessage_ = CreateMaybeMessage< ::protobuf_unittest::TestAllTypesLite >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_submessage)
  return oneof_field_.oneof_submessage_;
}

// optional string oneof_string = 3;
inline bool TestOneofParsingLite::has_oneof_string() const {
  return oneof_field_case() == kOneofString;
}
inline void TestOneofParsingLite::set_has_oneof_string() {
  _oneof_case_[0] = kOneofString;
}
inline void TestOneofParsingLite::clear_oneof_string() {
  if (has_oneof_string()) {
    oneof_field_.oneof_string_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestOneofParsingLite::oneof_string() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_string)
  if (has_oneof_string()) {
    return oneof_field_.oneof_string_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestOneofParsingLite::set_oneof_string(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string)
}
#if LANG_CXX11
inline void TestOneofParsingLite::set_oneof_string(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string)
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestOneofParsingLite.oneof_string)
}
#endif
inline void TestOneofParsingLite::set_oneof_string(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestOneofParsingLite.oneof_string)
}
inline void TestOneofParsingLite::set_oneof_string(const char* value, size_t size) {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestOneofParsingLite.oneof_string)
}
inline ::std::string* TestOneofParsingLite::mutable_oneof_string() {
  if (!has_oneof_string()) {
    clear_oneof_field();
    set_has_oneof_string();
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_string)
  return oneof_field_.oneof_string_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestOneofParsingLite::release_oneof_string() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_string)
  if (has_oneof_string()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestOneofParsingLite::set_allocated_oneof_string(::std::string* oneof_string) {
  if (!has_oneof_string()) {
    oneof_field_.oneof_string_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_string != NULL) {
    set_has_oneof_string();
    oneof_field_.oneof_string_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_string);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestOneofParsingLite.oneof_string)
}

// optional bytes oneof_bytes = 4 [default = "default bytes"];
inline bool TestOneofParsingLite::has_oneof_bytes() const {
  return oneof_field_case() == kOneofBytes;
}
inline void TestOneofParsingLite::set_has_oneof_bytes() {
  _oneof_case_[0] = kOneofBytes;
}
inline void TestOneofParsingLite::clear_oneof_bytes() {
  if (has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.DestroyNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestOneofParsingLite::oneof_bytes() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
  if (has_oneof_bytes()) {
    return oneof_field_.oneof_bytes_.GetNoArena();
  }
  return *&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get();
}
inline void TestOneofParsingLite::set_oneof_bytes(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
}
#if LANG_CXX11
inline void TestOneofParsingLite::set_oneof_bytes(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
}
#endif
inline void TestOneofParsingLite::set_oneof_bytes(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
}
inline void TestOneofParsingLite::set_oneof_bytes(const void* value, size_t size) {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  }
  oneof_field_.oneof_bytes_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
}
inline ::std::string* TestOneofParsingLite::mutable_oneof_bytes() {
  if (!has_oneof_bytes()) {
    clear_oneof_field();
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
  return oneof_field_.oneof_bytes_.MutableNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
}
inline ::std::string* TestOneofParsingLite::release_oneof_bytes() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
  if (has_oneof_bytes()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_.ReleaseNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  } else {
    return NULL;
  }
}
inline void TestOneofParsingLite::set_allocated_oneof_bytes(::std::string* oneof_bytes) {
  if (!has_oneof_bytes()) {
    oneof_field_.oneof_bytes_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get());
  }
  clear_oneof_field();
  if (oneof_bytes != NULL) {
    set_has_oneof_bytes();
    oneof_field_.oneof_bytes_.SetAllocatedNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_.get(), oneof_bytes);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestOneofParsingLite.oneof_bytes)
}

// optional string oneof_string_cord = 5 [default = "default Cord", ctype = CORD];
inline bool TestOneofParsingLite::has_oneof_string_cord() const {
  return oneof_field_case() == kOneofStringCord;
}
inline void TestOneofParsingLite::set_has_oneof_string_cord() {
  _oneof_case_[0] = kOneofStringCord;
}
inline void TestOneofParsingLite::clear_oneof_string_cord() {
  if (has_oneof_string_cord()) {
    oneof_field_.oneof_string_cord_.DestroyNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestOneofParsingLite::oneof_string_cord() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
  if (has_oneof_string_cord()) {
    return oneof_field_.oneof_string_cord_.GetNoArena();
  }
  return *&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get();
}
inline void TestOneofParsingLite::set_oneof_string_cord(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
  if (!has_oneof_string_cord()) {
    clear_oneof_field();
    set_has_oneof_string_cord();
    oneof_field_.oneof_string_cord_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  }
  oneof_field_.oneof_string_cord_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
}
#if LANG_CXX11
inline void TestOneofParsingLite::set_oneof_string_cord(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
  if (!has_oneof_string_cord()) {
    clear_oneof_field();
    set_has_oneof_string_cord();
    oneof_field_.oneof_string_cord_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  }
  oneof_field_.oneof_string_cord_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
}
#endif
inline void TestOneofParsingLite::set_oneof_string_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_string_cord()) {
    clear_oneof_field();
    set_has_oneof_string_cord();
    oneof_field_.oneof_string_cord_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  }
  oneof_field_.oneof_string_cord_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
}
inline void TestOneofParsingLite::set_oneof_string_cord(const char* value, size_t size) {
  if (!has_oneof_string_cord()) {
    clear_oneof_field();
    set_has_oneof_string_cord();
    oneof_field_.oneof_string_cord_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  }
  oneof_field_.oneof_string_cord_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
}
inline ::std::string* TestOneofParsingLite::mutable_oneof_string_cord() {
  if (!has_oneof_string_cord()) {
    clear_oneof_field();
    set_has_oneof_string_cord();
    oneof_field_.oneof_string_cord_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
  return oneof_field_.oneof_string_cord_.MutableNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
}
inline ::std::string* TestOneofParsingLite::release_oneof_string_cord() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
  if (has_oneof_string_cord()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_cord_.ReleaseNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  } else {
    return NULL;
  }
}
inline void TestOneofParsingLite::set_allocated_oneof_string_cord(::std::string* oneof_string_cord) {
  if (!has_oneof_string_cord()) {
    oneof_field_.oneof_string_cord_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get());
  }
  clear_oneof_field();
  if (oneof_string_cord != NULL) {
    set_has_oneof_string_cord();
    oneof_field_.oneof_string_cord_.SetAllocatedNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_string_cord_.get(), oneof_string_cord);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestOneofParsingLite.oneof_string_cord)
}

// optional bytes oneof_bytes_cord = 6 [ctype = CORD];
inline bool TestOneofParsingLite::has_oneof_bytes_cord() const {
  return oneof_field_case() == kOneofBytesCord;
}
inline void TestOneofParsingLite::set_has_oneof_bytes_cord() {
  _oneof_case_[0] = kOneofBytesCord;
}
inline void TestOneofParsingLite::clear_oneof_bytes_cord() {
  if (has_oneof_bytes_cord()) {
    oneof_field_.oneof_bytes_cord_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestOneofParsingLite::oneof_bytes_cord() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
  if (has_oneof_bytes_cord()) {
    return oneof_field_.oneof_bytes_cord_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestOneofParsingLite::set_oneof_bytes_cord(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
  if (!has_oneof_bytes_cord()) {
    clear_oneof_field();
    set_has_oneof_bytes_cord();
    oneof_field_.oneof_bytes_cord_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
}
#if LANG_CXX11
inline void TestOneofParsingLite::set_oneof_bytes_cord(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
  if (!has_oneof_bytes_cord()) {
    clear_oneof_field();
    set_has_oneof_bytes_cord();
    oneof_field_.oneof_bytes_cord_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
}
#endif
inline void TestOneofParsingLite::set_oneof_bytes_cord(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_bytes_cord()) {
    clear_oneof_field();
    set_has_oneof_bytes_cord();
    oneof_field_.oneof_bytes_cord_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
}
inline void TestOneofParsingLite::set_oneof_bytes_cord(const void* value, size_t size) {
  if (!has_oneof_bytes_cord()) {
    clear_oneof_field();
    set_has_oneof_bytes_cord();
    oneof_field_.oneof_bytes_cord_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_bytes_cord_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
}
inline ::std::string* TestOneofParsingLite::mutable_oneof_bytes_cord() {
  if (!has_oneof_bytes_cord()) {
    clear_oneof_field();
    set_has_oneof_bytes_cord();
    oneof_field_.oneof_bytes_cord_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
  return oneof_field_.oneof_bytes_cord_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestOneofParsingLite::release_oneof_bytes_cord() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
  if (has_oneof_bytes_cord()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_cord_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestOneofParsingLite::set_allocated_oneof_bytes_cord(::std::string* oneof_bytes_cord) {
  if (!has_oneof_bytes_cord()) {
    oneof_field_.oneof_bytes_cord_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_bytes_cord != NULL) {
    set_has_oneof_bytes_cord();
    oneof_field_.oneof_bytes_cord_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_bytes_cord);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestOneofParsingLite.oneof_bytes_cord)
}

// optional string oneof_string_string_piece = 7 [ctype = STRING_PIECE];
inline bool TestOneofParsingLite::has_oneof_string_string_piece() const {
  return oneof_field_case() == kOneofStringStringPiece;
}
inline void TestOneofParsingLite::set_has_oneof_string_string_piece() {
  _oneof_case_[0] = kOneofStringStringPiece;
}
inline void TestOneofParsingLite::clear_oneof_string_string_piece() {
  if (has_oneof_string_string_piece()) {
    oneof_field_.oneof_string_string_piece_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestOneofParsingLite::oneof_string_string_piece() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
  if (has_oneof_string_string_piece()) {
    return oneof_field_.oneof_string_string_piece_.GetNoArena();
  }
  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
}
inline void TestOneofParsingLite::set_oneof_string_string_piece(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
  if (!has_oneof_string_string_piece()) {
    clear_oneof_field();
    set_has_oneof_string_string_piece();
    oneof_field_.oneof_string_string_piece_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
}
#if LANG_CXX11
inline void TestOneofParsingLite::set_oneof_string_string_piece(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
  if (!has_oneof_string_string_piece()) {
    clear_oneof_field();
    set_has_oneof_string_string_piece();
    oneof_field_.oneof_string_string_piece_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
}
#endif
inline void TestOneofParsingLite::set_oneof_string_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_string_string_piece()) {
    clear_oneof_field();
    set_has_oneof_string_string_piece();
    oneof_field_.oneof_string_string_piece_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
}
inline void TestOneofParsingLite::set_oneof_string_string_piece(const char* value, size_t size) {
  if (!has_oneof_string_string_piece()) {
    clear_oneof_field();
    set_has_oneof_string_string_piece();
    oneof_field_.oneof_string_string_piece_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  oneof_field_.oneof_string_string_piece_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
}
inline ::std::string* TestOneofParsingLite::mutable_oneof_string_string_piece() {
  if (!has_oneof_string_string_piece()) {
    clear_oneof_field();
    set_has_oneof_string_string_piece();
    oneof_field_.oneof_string_string_piece_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
  return oneof_field_.oneof_string_string_piece_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* TestOneofParsingLite::release_oneof_string_string_piece() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
  if (has_oneof_string_string_piece()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_string_string_piece_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  } else {
    return NULL;
  }
}
inline void TestOneofParsingLite::set_allocated_oneof_string_string_piece(::std::string* oneof_string_string_piece) {
  if (!has_oneof_string_string_piece()) {
    oneof_field_.oneof_string_string_piece_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  clear_oneof_field();
  if (oneof_string_string_piece != NULL) {
    set_has_oneof_string_string_piece();
    oneof_field_.oneof_string_string_piece_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), oneof_string_string_piece);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestOneofParsingLite.oneof_string_string_piece)
}

// optional bytes oneof_bytes_string_piece = 8 [default = "default StringPiece", ctype = STRING_PIECE];
inline bool TestOneofParsingLite::has_oneof_bytes_string_piece() const {
  return oneof_field_case() == kOneofBytesStringPiece;
}
inline void TestOneofParsingLite::set_has_oneof_bytes_string_piece() {
  _oneof_case_[0] = kOneofBytesStringPiece;
}
inline void TestOneofParsingLite::clear_oneof_bytes_string_piece() {
  if (has_oneof_bytes_string_piece()) {
    oneof_field_.oneof_bytes_string_piece_.DestroyNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
    clear_has_oneof_field();
  }
}
inline const ::std::string& TestOneofParsingLite::oneof_bytes_string_piece() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
  if (has_oneof_bytes_string_piece()) {
    return oneof_field_.oneof_bytes_string_piece_.GetNoArena();
  }
  return *&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get();
}
inline void TestOneofParsingLite::set_oneof_bytes_string_piece(const ::std::string& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
  if (!has_oneof_bytes_string_piece()) {
    clear_oneof_field();
    set_has_oneof_bytes_string_piece();
    oneof_field_.oneof_bytes_string_piece_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  }
  oneof_field_.oneof_bytes_string_piece_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get(), value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
}
#if LANG_CXX11
inline void TestOneofParsingLite::set_oneof_bytes_string_piece(::std::string&& value) {
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
  if (!has_oneof_bytes_string_piece()) {
    clear_oneof_field();
    set_has_oneof_bytes_string_piece();
    oneof_field_.oneof_bytes_string_piece_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  }
  oneof_field_.oneof_bytes_string_piece_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
}
#endif
inline void TestOneofParsingLite::set_oneof_bytes_string_piece(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  if (!has_oneof_bytes_string_piece()) {
    clear_oneof_field();
    set_has_oneof_bytes_string_piece();
    oneof_field_.oneof_bytes_string_piece_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  }
  oneof_field_.oneof_bytes_string_piece_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get(),
      ::std::string(value));
  // @@protoc_insertion_point(field_set_char:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
}
inline void TestOneofParsingLite::set_oneof_bytes_string_piece(const void* value, size_t size) {
  if (!has_oneof_bytes_string_piece()) {
    clear_oneof_field();
    set_has_oneof_bytes_string_piece();
    oneof_field_.oneof_bytes_string_piece_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  }
  oneof_field_.oneof_bytes_string_piece_.SetNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get(), ::std::string(
      reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
}
inline ::std::string* TestOneofParsingLite::mutable_oneof_bytes_string_piece() {
  if (!has_oneof_bytes_string_piece()) {
    clear_oneof_field();
    set_has_oneof_bytes_string_piece();
    oneof_field_.oneof_bytes_string_piece_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  }
  // @@protoc_insertion_point(field_mutable:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
  return oneof_field_.oneof_bytes_string_piece_.MutableNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
}
inline ::std::string* TestOneofParsingLite::release_oneof_bytes_string_piece() {
  // @@protoc_insertion_point(field_release:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
  if (has_oneof_bytes_string_piece()) {
    clear_has_oneof_field();
    return oneof_field_.oneof_bytes_string_piece_.ReleaseNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  } else {
    return NULL;
  }
}
inline void TestOneofParsingLite::set_allocated_oneof_bytes_string_piece(::std::string* oneof_bytes_string_piece) {
  if (!has_oneof_bytes_string_piece()) {
    oneof_field_.oneof_bytes_string_piece_.UnsafeSetDefault(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get());
  }
  clear_oneof_field();
  if (oneof_bytes_string_piece != NULL) {
    set_has_oneof_bytes_string_piece();
    oneof_field_.oneof_bytes_string_piece_.SetAllocatedNoArena(&::protobuf_unittest::TestOneofParsingLite::_i_give_permission_to_break_this_code_default_oneof_bytes_string_piece_.get(), oneof_bytes_string_piece);
  }
  // @@protoc_insertion_point(field_set_allocated:protobuf_unittest.TestOneofParsingLite.oneof_bytes_string_piece)
}

// optional .protobuf_unittest.V2EnumLite oneof_enum = 9;
inline bool TestOneofParsingLite::has_oneof_enum() const {
  return oneof_field_case() == kOneofEnum;
}
inline void TestOneofParsingLite::set_has_oneof_enum() {
  _oneof_case_[0] = kOneofEnum;
}
inline void TestOneofParsingLite::clear_oneof_enum() {
  if (has_oneof_enum()) {
    oneof_field_.oneof_enum_ = 1;
    clear_has_oneof_field();
  }
}
inline ::protobuf_unittest::V2EnumLite TestOneofParsingLite::oneof_enum() const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.TestOneofParsingLite.oneof_enum)
  if (has_oneof_enum()) {
    return static_cast< ::protobuf_unittest::V2EnumLite >(oneof_field_.oneof_enum_);
  }
  return static_cast< ::protobuf_unittest::V2EnumLite >(1);
}
inline void TestOneofParsingLite::set_oneof_enum(::protobuf_unittest::V2EnumLite value) {
  assert(::protobuf_unittest::V2EnumLite_IsValid(value));
  if (!has_oneof_enum()) {
    clear_oneof_field();
    set_has_oneof_enum();
  }
  oneof_field_.oneof_enum_ = value;
  // @@protoc_insertion_point(field_set:protobuf_unittest.TestOneofParsingLite.oneof_enum)
}

inline bool TestOneofParsingLite::has_oneof_field() const {
  return oneof_field_case() != ONEOF_FIELD_NOT_SET;
}
inline void TestOneofParsingLite::clear_has_oneof_field() {
  _oneof_case_[0] = ONEOF_FIELD_NOT_SET;
}
inline TestOneofParsingLite::OneofFieldCase TestOneofParsingLite::oneof_field_case() const {
  return TestOneofParsingLite::OneofFieldCase(_oneof_case_[0]);
}
// -------------------------------------------------------------------

// PackedInt32

// repeated int32 repeated_int32 = 2048 [packed = true];
inline int PackedInt32::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void PackedInt32::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 PackedInt32::repeated_int32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.PackedInt32.repeated_int32)
  return repeated_int32_.Get(index);
}
inline void PackedInt32::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.PackedInt32.repeated_int32)
}
inline void PackedInt32::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.PackedInt32.repeated_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
PackedInt32::repeated_int32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.PackedInt32.repeated_int32)
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
PackedInt32::mutable_repeated_int32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.PackedInt32.repeated_int32)
  return &repeated_int32_;
}

// -------------------------------------------------------------------

// NonPackedInt32

// repeated int32 repeated_int32 = 2048;
inline int NonPackedInt32::repeated_int32_size() const {
  return repeated_int32_.size();
}
inline void NonPackedInt32::clear_repeated_int32() {
  repeated_int32_.Clear();
}
inline ::google::protobuf::int32 NonPackedInt32::repeated_int32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.NonPackedInt32.repeated_int32)
  return repeated_int32_.Get(index);
}
inline void NonPackedInt32::set_repeated_int32(int index, ::google::protobuf::int32 value) {
  repeated_int32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.NonPackedInt32.repeated_int32)
}
inline void NonPackedInt32::add_repeated_int32(::google::protobuf::int32 value) {
  repeated_int32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.NonPackedInt32.repeated_int32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
NonPackedInt32::repeated_int32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.NonPackedInt32.repeated_int32)
  return repeated_int32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
NonPackedInt32::mutable_repeated_int32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.NonPackedInt32.repeated_int32)
  return &repeated_int32_;
}

// -------------------------------------------------------------------

// PackedFixed32

// repeated fixed32 repeated_fixed32 = 2048 [packed = true];
inline int PackedFixed32::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void PackedFixed32::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 PackedFixed32::repeated_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.PackedFixed32.repeated_fixed32)
  return repeated_fixed32_.Get(index);
}
inline void PackedFixed32::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.PackedFixed32.repeated_fixed32)
}
inline void PackedFixed32::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.PackedFixed32.repeated_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
PackedFixed32::repeated_fixed32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.PackedFixed32.repeated_fixed32)
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
PackedFixed32::mutable_repeated_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.PackedFixed32.repeated_fixed32)
  return &repeated_fixed32_;
}

// -------------------------------------------------------------------

// NonPackedFixed32

// repeated fixed32 repeated_fixed32 = 2048;
inline int NonPackedFixed32::repeated_fixed32_size() const {
  return repeated_fixed32_.size();
}
inline void NonPackedFixed32::clear_repeated_fixed32() {
  repeated_fixed32_.Clear();
}
inline ::google::protobuf::uint32 NonPackedFixed32::repeated_fixed32(int index) const {
  // @@protoc_insertion_point(field_get:protobuf_unittest.NonPackedFixed32.repeated_fixed32)
  return repeated_fixed32_.Get(index);
}
inline void NonPackedFixed32::set_repeated_fixed32(int index, ::google::protobuf::uint32 value) {
  repeated_fixed32_.Set(index, value);
  // @@protoc_insertion_point(field_set:protobuf_unittest.NonPackedFixed32.repeated_fixed32)
}
inline void NonPackedFixed32::add_repeated_fixed32(::google::protobuf::uint32 value) {
  repeated_fixed32_.Add(value);
  // @@protoc_insertion_point(field_add:protobuf_unittest.NonPackedFixed32.repeated_fixed32)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
NonPackedFixed32::repeated_fixed32() const {
  // @@protoc_insertion_point(field_list:protobuf_unittest.NonPackedFixed32.repeated_fixed32)
  return repeated_fixed32_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
NonPackedFixed32::mutable_repeated_fixed32() {
  // @@protoc_insertion_point(field_mutable_list:protobuf_unittest.NonPackedFixed32.repeated_fixed32)
  return &repeated_fixed32_;
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace protobuf_unittest

namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::protobuf_unittest::TestAllTypesLite_NestedEnum> : ::std::true_type {};
template <> struct is_proto_enum< ::protobuf_unittest::ForeignEnumLite> : ::std::true_type {};
template <> struct is_proto_enum< ::protobuf_unittest::V1EnumLite> : ::std::true_type {};
template <> struct is_proto_enum< ::protobuf_unittest::V2EnumLite> : ::std::true_type {};

}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_google_2fprotobuf_2funittest_5flite_2eproto
