// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/protobuf/util/internal/testdata/default_value.proto

#include <google/protobuf/util/internal/testdata/default_value.pb.h>

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// This is a temporary google only hack
#ifdef GOOGLE_PROTOBUF_ENFORCE_UNIQUENESS
#include "third_party/protobuf/version.h"
#endif
// @@protoc_insertion_point(includes)

namespace protobuf_google_2fprotobuf_2fany_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fany_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Any;
}  // namespace protobuf_google_2fprotobuf_2fany_2eproto
namespace protobuf_google_2fprotobuf_2fstruct_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fstruct_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ListValue;
}  // namespace protobuf_google_2fprotobuf_2fstruct_2eproto
namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_AnyData_MapDataEntry_DoNotUse;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_IntToStringMap_MapEntry_DoNotUse;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MessageMap_M;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MixedMap2_MapEntry_DoNotUse;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_MixedMap_MapEntry_DoNotUse;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_StringtoIntMap_MapEntry_DoNotUse;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_DoubleMessage;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_DoubleValueMessage;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_IntToStringMap;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ListValueMessage;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_MessageMap;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_MessageMap_MapEntry_DoNotUse;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_MixedMap2;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_MixedMap;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_StringtoIntMap;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_StructMessage;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_ValueMessage;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_AnyData;
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_AnyMessage;
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto
namespace protobuf_google_2fprotobuf_2fwrappers_2eproto {
extern PROTOBUF_INTERNAL_EXPORT_protobuf_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_DoubleValue;
}  // namespace protobuf_google_2fprotobuf_2fwrappers_2eproto
namespace google {
namespace protobuf {
namespace testing {
class DefaultValueTestCasesDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DefaultValueTestCases>
      _instance;
} _DefaultValueTestCases_default_instance_;
class DoubleMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DoubleMessage>
      _instance;
  ::google::protobuf::internal::ArenaStringPtr str_value_;
  ::google::protobuf::int64 num_value_;
} _DoubleMessage_default_instance_;
class StructMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<StructMessage>
      _instance;
} _StructMessage_default_instance_;
class ValueMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ValueMessage>
      _instance;
} _ValueMessage_default_instance_;
class ListValueMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<ListValueMessage>
      _instance;
} _ListValueMessage_default_instance_;
class RequestMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<RequestMessage>
      _instance;
} _RequestMessage_default_instance_;
class AnyMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<AnyMessage>
      _instance;
} _AnyMessage_default_instance_;
class AnyData_MapDataEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<AnyData_MapDataEntry_DoNotUse>
      _instance;
} _AnyData_MapDataEntry_DoNotUse_default_instance_;
class AnyDataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<AnyData>
      _instance;
} _AnyData_default_instance_;
class StringtoIntMap_MapEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<StringtoIntMap_MapEntry_DoNotUse>
      _instance;
} _StringtoIntMap_MapEntry_DoNotUse_default_instance_;
class StringtoIntMapDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<StringtoIntMap>
      _instance;
} _StringtoIntMap_default_instance_;
class IntToStringMap_MapEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<IntToStringMap_MapEntry_DoNotUse>
      _instance;
} _IntToStringMap_MapEntry_DoNotUse_default_instance_;
class IntToStringMapDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<IntToStringMap>
      _instance;
} _IntToStringMap_default_instance_;
class MixedMap_MapEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MixedMap_MapEntry_DoNotUse>
      _instance;
} _MixedMap_MapEntry_DoNotUse_default_instance_;
class MixedMapDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MixedMap>
      _instance;
} _MixedMap_default_instance_;
class MixedMap2_MapEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MixedMap2_MapEntry_DoNotUse>
      _instance;
} _MixedMap2_MapEntry_DoNotUse_default_instance_;
class MixedMap2DefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MixedMap2>
      _instance;
} _MixedMap2_default_instance_;
class MessageMap_MDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMap_M>
      _instance;
} _MessageMap_M_default_instance_;
class MessageMap_MapEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMap_MapEntry_DoNotUse>
      _instance;
} _MessageMap_MapEntry_DoNotUse_default_instance_;
class MessageMapDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<MessageMap>
      _instance;
} _MessageMap_default_instance_;
class DoubleValueMessageDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DoubleValueMessage>
      _instance;
} _DoubleValueMessage_default_instance_;
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto {
static void InitDefaultsDefaultValueTestCases() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_DefaultValueTestCases_default_instance_;
    new (ptr) ::google::protobuf::testing::DefaultValueTestCases();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::DefaultValueTestCases::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<13> scc_info_DefaultValueTestCases =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 13, InitDefaultsDefaultValueTestCases}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DoubleMessage.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StructMessage.base,
      &protobuf_google_2fprotobuf_2fstruct_2eproto::scc_info_ListValue.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_ValueMessage.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_ListValueMessage.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyMessage.base,
      &protobuf_google_2fprotobuf_2fany_2eproto::scc_info_Any.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StringtoIntMap.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_IntToStringMap.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap2.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DoubleValueMessage.base,}};

static void InitDefaultsDoubleMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_DoubleMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::DoubleMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::DoubleMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_DoubleMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsDoubleMessage}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_DoubleValue.base,}};

static void InitDefaultsStructMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_StructMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::StructMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::StructMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_StructMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsStructMessage}, {
      &protobuf_google_2fprotobuf_2fstruct_2eproto::scc_info_ListValue.base,}};

static void InitDefaultsValueMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_ValueMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::ValueMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::ValueMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ValueMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsValueMessage}, {
      &protobuf_google_2fprotobuf_2fstruct_2eproto::scc_info_ListValue.base,}};

static void InitDefaultsListValueMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_ListValueMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::ListValueMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::ListValueMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_ListValueMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsListValueMessage}, {
      &protobuf_google_2fprotobuf_2fstruct_2eproto::scc_info_ListValue.base,}};

static void InitDefaultsRequestMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_RequestMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::RequestMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::RequestMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_RequestMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsRequestMessage}, {}};

static void InitDefaultsAnyMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_AnyMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::AnyMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::AnyMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_AnyMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsAnyMessage}, {
      &protobuf_google_2fprotobuf_2fany_2eproto::scc_info_Any.base,
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyData.base,}};

static void InitDefaultsAnyData_MapDataEntry_DoNotUse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_AnyData_MapDataEntry_DoNotUse_default_instance_;
    new (ptr) ::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse();
  }
  ::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_AnyData_MapDataEntry_DoNotUse =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsAnyData_MapDataEntry_DoNotUse}, {}};

static void InitDefaultsAnyData() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_AnyData_default_instance_;
    new (ptr) ::google::protobuf::testing::AnyData();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::AnyData::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_AnyData =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsAnyData}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyData_MapDataEntry_DoNotUse.base,
      &protobuf_google_2fprotobuf_2fstruct_2eproto::scc_info_ListValue.base,}};

static void InitDefaultsStringtoIntMap_MapEntry_DoNotUse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_StringtoIntMap_MapEntry_DoNotUse_default_instance_;
    new (ptr) ::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse();
  }
  ::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_StringtoIntMap_MapEntry_DoNotUse =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsStringtoIntMap_MapEntry_DoNotUse}, {}};

static void InitDefaultsStringtoIntMap() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_StringtoIntMap_default_instance_;
    new (ptr) ::google::protobuf::testing::StringtoIntMap();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::StringtoIntMap::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_StringtoIntMap =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsStringtoIntMap}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StringtoIntMap_MapEntry_DoNotUse.base,}};

static void InitDefaultsIntToStringMap_MapEntry_DoNotUse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_IntToStringMap_MapEntry_DoNotUse_default_instance_;
    new (ptr) ::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse();
  }
  ::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_IntToStringMap_MapEntry_DoNotUse =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsIntToStringMap_MapEntry_DoNotUse}, {}};

static void InitDefaultsIntToStringMap() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_IntToStringMap_default_instance_;
    new (ptr) ::google::protobuf::testing::IntToStringMap();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::IntToStringMap::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_IntToStringMap =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsIntToStringMap}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_IntToStringMap_MapEntry_DoNotUse.base,}};

static void InitDefaultsMixedMap_MapEntry_DoNotUse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MixedMap_MapEntry_DoNotUse_default_instance_;
    new (ptr) ::google::protobuf::testing::MixedMap_MapEntry_DoNotUse();
  }
  ::google::protobuf::testing::MixedMap_MapEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MixedMap_MapEntry_DoNotUse =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMixedMap_MapEntry_DoNotUse}, {}};

static void InitDefaultsMixedMap() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MixedMap_default_instance_;
    new (ptr) ::google::protobuf::testing::MixedMap();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::MixedMap::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_MixedMap =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsMixedMap}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap_MapEntry_DoNotUse.base,}};

static void InitDefaultsMixedMap2_MapEntry_DoNotUse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MixedMap2_MapEntry_DoNotUse_default_instance_;
    new (ptr) ::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse();
  }
  ::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MixedMap2_MapEntry_DoNotUse =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMixedMap2_MapEntry_DoNotUse}, {}};

static void InitDefaultsMixedMap2() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MixedMap2_default_instance_;
    new (ptr) ::google::protobuf::testing::MixedMap2();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::MixedMap2::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_MixedMap2 =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsMixedMap2}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap2_MapEntry_DoNotUse.base,}};

static void InitDefaultsMessageMap_M() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MessageMap_M_default_instance_;
    new (ptr) ::google::protobuf::testing::MessageMap_M();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::MessageMap_M::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<0> scc_info_MessageMap_M =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsMessageMap_M}, {}};

static void InitDefaultsMessageMap_MapEntry_DoNotUse() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MessageMap_MapEntry_DoNotUse_default_instance_;
    new (ptr) ::google::protobuf::testing::MessageMap_MapEntry_DoNotUse();
  }
  ::google::protobuf::testing::MessageMap_MapEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_MessageMap_MapEntry_DoNotUse =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsMessageMap_MapEntry_DoNotUse}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap_M.base,}};

static void InitDefaultsMessageMap() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_MessageMap_default_instance_;
    new (ptr) ::google::protobuf::testing::MessageMap();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::MessageMap::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_MessageMap =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsMessageMap}, {
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap_MapEntry_DoNotUse.base,}};

static void InitDefaultsDoubleValueMessage() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::google::protobuf::testing::_DoubleValueMessage_default_instance_;
    new (ptr) ::google::protobuf::testing::DoubleValueMessage();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::google::protobuf::testing::DoubleValueMessage::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_DoubleValueMessage =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsDoubleValueMessage}, {
      &protobuf_google_2fprotobuf_2fwrappers_2eproto::scc_info_DoubleValue.base,}};

void InitDefaults() {
  ::google::protobuf::internal::InitSCC(&scc_info_DefaultValueTestCases.base);
  ::google::protobuf::internal::InitSCC(&scc_info_DoubleMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_StructMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ValueMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_ListValueMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_RequestMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_AnyMessage.base);
  ::google::protobuf::internal::InitSCC(&scc_info_AnyData_MapDataEntry_DoNotUse.base);
  ::google::protobuf::internal::InitSCC(&scc_info_AnyData.base);
  ::google::protobuf::internal::InitSCC(&scc_info_StringtoIntMap_MapEntry_DoNotUse.base);
  ::google::protobuf::internal::InitSCC(&scc_info_StringtoIntMap.base);
  ::google::protobuf::internal::InitSCC(&scc_info_IntToStringMap_MapEntry_DoNotUse.base);
  ::google::protobuf::internal::InitSCC(&scc_info_IntToStringMap.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MixedMap_MapEntry_DoNotUse.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MixedMap.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MixedMap2_MapEntry_DoNotUse.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MixedMap2.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMap_M.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMap_MapEntry_DoNotUse.base);
  ::google::protobuf::internal::InitSCC(&scc_info_MessageMap.base);
  ::google::protobuf::internal::InitSCC(&scc_info_DoubleValueMessage.base);
}

::google::protobuf::Metadata file_level_metadata[21];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[1];

const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, empty_double_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, double_with_default_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, double_with_nondefault_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, repeated_double_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, nested_message_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, repeated_nested_message_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, double_message_with_oneof_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, empty_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, empty_struct2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_null_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_values_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_nested_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_nested_list_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_list_of_nulls_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_list_of_lists_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, struct_with_list_of_structs_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, top_level_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, value_wrapper_simple_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, value_wrapper_with_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, value_wrapper_with_list_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, list_value_wrapper_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, top_level_value_simple_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, top_level_value_with_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, top_level_value_with_list_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, top_level_listvalue_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, empty_any_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, type_only_any_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, recursive_any_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, any_with_message_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, any_with_nested_message_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, any_with_message_containing_map_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, any_with_message_containing_struct_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, top_level_any_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, empty_map_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, string_to_int_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, int_to_string_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, mixed1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, mixed2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, empty_mixed2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, map_of_objects_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, mixed_empty_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, message_map_empty_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, double_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DefaultValueTestCases, double_value_default_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, double_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, repeated_double_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, nested_message_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, repeated_nested_message_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, double_wrapper_),
  offsetof(::google::protobuf::testing::DoubleMessageDefaultTypeInternal, str_value_),
  offsetof(::google::protobuf::testing::DoubleMessageDefaultTypeInternal, num_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleMessage, value_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StructMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StructMessage, struct__),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::ValueMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::ValueMessage, value_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::ListValueMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::ListValueMessage, shopping_list_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::RequestMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::RequestMessage, content_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyMessage, any_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyMessage, data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse, key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, attr_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, str_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, msgs_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, nested_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, map_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, struct_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::AnyData, repeated_data_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse, key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringtoIntMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::StringtoIntMap, map_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse, key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::IntToStringMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::IntToStringMap, map_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap_MapEntry_DoNotUse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap_MapEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap_MapEntry_DoNotUse, key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap_MapEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap, msg_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap, map_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap, int_value_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse, key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2, map_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2, ee_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MixedMap2, msg_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_M, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_M, inner_int_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_M, inner_text_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_MapEntry_DoNotUse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_MapEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_MapEntry_DoNotUse, key_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap_MapEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::MessageMap, map_),
  ~0u,  // no _has_bits_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleValueMessage, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(::google::protobuf::testing::DoubleValueMessage, double__),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::google::protobuf::testing::DefaultValueTestCases)},
  { 49, -1, sizeof(::google::protobuf::testing::DoubleMessage)},
  { 62, -1, sizeof(::google::protobuf::testing::StructMessage)},
  { 68, -1, sizeof(::google::protobuf::testing::ValueMessage)},
  { 74, -1, sizeof(::google::protobuf::testing::ListValueMessage)},
  { 80, -1, sizeof(::google::protobuf::testing::RequestMessage)},
  { 86, -1, sizeof(::google::protobuf::testing::AnyMessage)},
  { 93, 100, sizeof(::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse)},
  { 102, -1, sizeof(::google::protobuf::testing::AnyData)},
  { 114, 121, sizeof(::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse)},
  { 123, -1, sizeof(::google::protobuf::testing::StringtoIntMap)},
  { 129, 136, sizeof(::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse)},
  { 138, -1, sizeof(::google::protobuf::testing::IntToStringMap)},
  { 144, 151, sizeof(::google::protobuf::testing::MixedMap_MapEntry_DoNotUse)},
  { 153, -1, sizeof(::google::protobuf::testing::MixedMap)},
  { 161, 168, sizeof(::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse)},
  { 170, -1, sizeof(::google::protobuf::testing::MixedMap2)},
  { 178, -1, sizeof(::google::protobuf::testing::MessageMap_M)},
  { 185, 192, sizeof(::google::protobuf::testing::MessageMap_MapEntry_DoNotUse)},
  { 194, -1, sizeof(::google::protobuf::testing::MessageMap)},
  { 200, -1, sizeof(::google::protobuf::testing::DoubleValueMessage)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_DefaultValueTestCases_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_DoubleMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_StructMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_ValueMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_ListValueMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_RequestMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_AnyMessage_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_AnyData_MapDataEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_AnyData_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_StringtoIntMap_MapEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_StringtoIntMap_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_IntToStringMap_MapEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_IntToStringMap_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MixedMap_MapEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MixedMap_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MixedMap2_MapEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MixedMap2_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MessageMap_M_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MessageMap_MapEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_MessageMap_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::google::protobuf::testing::_DoubleValueMessage_default_instance_),
};

void protobuf_AssignDescriptors() {
  AddDescriptors();
  AssignDescriptors(
      "google/protobuf/util/internal/testdata/default_value.proto", schemas, file_default_instances, TableStruct::offsets,
      file_level_metadata, file_level_enum_descriptors, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, protobuf_AssignDescriptors);
}

void protobuf_RegisterTypes(const ::std::string&) GOOGLE_PROTOBUF_ATTRIBUTE_COLD;
void protobuf_RegisterTypes(const ::std::string&) {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 21);
}

void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] GOOGLE_PROTOBUF_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
      "\n:google/protobuf/util/internal/testdata"
      "/default_value.proto\022\027google.protobuf.te"
      "sting\032\031google/protobuf/any.proto\032\034google"
      "/protobuf/struct.proto\032\036google/protobuf/"
      "wrappers.proto\"\211\027\n\025DefaultValueTestCases"
      "\022<\n\014empty_double\030\001 \001(\0132&.google.protobuf"
      ".testing.DoubleMessage\022I\n\031double_with_de"
      "fault_value\030\002 \001(\0132&.google.protobuf.test"
      "ing.DoubleMessage\022L\n\034double_with_nondefa"
      "ult_value\030\003 \001(\0132&.google.protobuf.testin"
      "g.DoubleMessage\022\?\n\017repeated_double\030\004 \001(\013"
      "2&.google.protobuf.testing.DoubleMessage"
      "\022>\n\016nested_message\030\005 \001(\0132&.google.protob"
      "uf.testing.DoubleMessage\022G\n\027repeated_nes"
      "ted_message\030\006 \001(\0132&.google.protobuf.test"
      "ing.DoubleMessage\022I\n\031double_message_with"
      "_oneof\030\007 \001(\0132&.google.protobuf.testing.D"
      "oubleMessage\022=\n\014empty_struct\030\311\001 \001(\0132&.go"
      "ogle.protobuf.testing.StructMessage\022>\n\re"
      "mpty_struct2\030\312\001 \001(\0132&.google.protobuf.te"
      "sting.StructMessage\022G\n\026struct_with_null_"
      "value\030\313\001 \001(\0132&.google.protobuf.testing.S"
      "tructMessage\022C\n\022struct_with_values\030\314\001 \001("
      "\0132&.google.protobuf.testing.StructMessag"
      "e\022J\n\031struct_with_nested_struct\030\315\001 \001(\0132&."
      "google.protobuf.testing.StructMessage\022H\n"
      "\027struct_with_nested_list\030\316\001 \001(\0132&.google"
      ".protobuf.testing.StructMessage\022J\n\031struc"
      "t_with_list_of_nulls\030\317\001 \001(\0132&.google.pro"
      "tobuf.testing.StructMessage\022J\n\031struct_wi"
      "th_list_of_lists\030\320\001 \001(\0132&.google.protobu"
      "f.testing.StructMessage\022L\n\033struct_with_l"
      "ist_of_structs\030\321\001 \001(\0132&.google.protobuf."
      "testing.StructMessage\0222\n\020top_level_struc"
      "t\030\322\001 \001(\0132\027.google.protobuf.Struct\022D\n\024val"
      "ue_wrapper_simple\030\324\001 \001(\0132%.google.protob"
      "uf.testing.ValueMessage\022I\n\031value_wrapper"
      "_with_struct\030\325\001 \001(\0132%.google.protobuf.te"
      "sting.ValueMessage\022G\n\027value_wrapper_with"
      "_list\030\326\001 \001(\0132%.google.protobuf.testing.V"
      "alueMessage\022F\n\022list_value_wrapper\030\327\001 \001(\013"
      "2).google.protobuf.testing.ListValueMess"
      "age\0227\n\026top_level_value_simple\030\330\001 \001(\0132\026.g"
      "oogle.protobuf.Value\022<\n\033top_level_value_"
      "with_struct\030\331\001 \001(\0132\026.google.protobuf.Val"
      "ue\022:\n\031top_level_value_with_list\030\332\001 \001(\0132\026"
      ".google.protobuf.Value\0228\n\023top_level_list"
      "value\030\333\001 \001(\0132\032.google.protobuf.ListValue"
      "\0227\n\tempty_any\030\255\002 \001(\0132#.google.protobuf.t"
      "esting.AnyMessage\022;\n\rtype_only_any\030\256\002 \001("
      "\0132#.google.protobuf.testing.AnyMessage\022;"
      "\n\rrecursive_any\030\257\002 \001(\0132#.google.protobuf"
      ".testing.AnyMessage\022D\n\026any_with_message_"
      "value\030\260\002 \001(\0132#.google.protobuf.testing.A"
      "nyMessage\022E\n\027any_with_nested_message\030\261\002 "
      "\001(\0132#.google.protobuf.testing.AnyMessage"
      "\022M\n\037any_with_message_containing_map\030\262\002 \001"
      "(\0132#.google.protobuf.testing.AnyMessage\022"
      "P\n\"any_with_message_containing_struct\030\263\002"
      " \001(\0132#.google.protobuf.testing.AnyMessag"
      "e\022,\n\rtop_level_any\030\264\002 \001(\0132\024.google.proto"
      "buf.Any\022;\n\tempty_map\030\221\003 \001(\0132\'.google.pro"
      "tobuf.testing.StringtoIntMap\022\?\n\rstring_t"
      "o_int\030\222\003 \001(\0132\'.google.protobuf.testing.S"
      "tringtoIntMap\022\?\n\rint_to_string\030\223\003 \001(\0132\'."
      "google.protobuf.testing.IntToStringMap\0222"
      "\n\006mixed1\030\224\003 \001(\0132!.google.protobuf.testin"
      "g.MixedMap\0223\n\006mixed2\030\225\003 \001(\0132\".google.pro"
      "tobuf.testing.MixedMap2\0229\n\014empty_mixed2\030"
      "\226\003 \001(\0132\".google.protobuf.testing.MixedMa"
      "p2\022<\n\016map_of_objects\030\227\003 \001(\0132#.google.pro"
      "tobuf.testing.MessageMap\0227\n\013mixed_empty\030"
      "\230\003 \001(\0132!.google.protobuf.testing.MixedMa"
      "p\022\?\n\021message_map_empty\030\231\003 \001(\0132#.google.p"
      "rotobuf.testing.MessageMap\022B\n\014double_val"
      "ue\030\365\003 \001(\0132+.google.protobuf.testing.Doub"
      "leValueMessage\022J\n\024double_value_default\030\366"
      "\003 \001(\0132+.google.protobuf.testing.DoubleVa"
      "lueMessage\"\260\002\n\rDoubleMessage\022\024\n\014double_v"
      "alue\030\001 \001(\001\022\027\n\017repeated_double\030\002 \003(\001\022>\n\016n"
      "ested_message\030\003 \001(\0132&.google.protobuf.te"
      "sting.DoubleMessage\022G\n\027repeated_nested_m"
      "essage\030\004 \003(\0132&.google.protobuf.testing.D"
      "oubleMessage\0224\n\016double_wrapper\030d \001(\0132\034.g"
      "oogle.protobuf.DoubleValue\022\023\n\tstr_value\030"
      "p \001(\tH\000\022\023\n\tnum_value\030q \001(\003H\000B\007\n\005value\"8\n"
      "\rStructMessage\022\'\n\006struct\030\001 \001(\0132\027.google."
      "protobuf.Struct\"5\n\014ValueMessage\022%\n\005value"
      "\030\001 \001(\0132\026.google.protobuf.Value\"E\n\020ListVa"
      "lueMessage\0221\n\rshopping_list\030\001 \001(\0132\032.goog"
      "le.protobuf.ListValue\"!\n\016RequestMessage\022"
      "\017\n\007content\030\001 \001(\t\"_\n\nAnyMessage\022!\n\003any\030\001 "
      "\001(\0132\024.google.protobuf.Any\022.\n\004data\030\002 \001(\0132"
      " .google.protobuf.testing.AnyData\"\301\002\n\007An"
      "yData\022\014\n\004attr\030\001 \001(\005\022\013\n\003str\030\002 \001(\t\022\014\n\004msgs"
      "\030\003 \003(\t\0225\n\013nested_data\030\004 \001(\0132 .google.pro"
      "tobuf.testing.AnyData\022\?\n\010map_data\030\007 \003(\0132"
      "-.google.protobuf.testing.AnyData.MapDat"
      "aEntry\022,\n\013struct_data\030\010 \001(\0132\027.google.pro"
      "tobuf.Struct\0227\n\rrepeated_data\030\t \003(\0132 .go"
      "ogle.protobuf.testing.AnyData\032.\n\014MapData"
      "Entry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"{\n"
      "\016StringtoIntMap\022=\n\003map\030\001 \003(\01320.google.pr"
      "otobuf.testing.StringtoIntMap.MapEntry\032*"
      "\n\010MapEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\005:\002"
      "8\001\"{\n\016IntToStringMap\022=\n\003map\030\001 \003(\01320.goog"
      "le.protobuf.testing.IntToStringMap.MapEn"
      "try\032*\n\010MapEntry\022\013\n\003key\030\001 \001(\005\022\r\n\005value\030\002 "
      "\001(\t:\0028\001\"\217\001\n\010MixedMap\022\013\n\003msg\030\001 \001(\t\0227\n\003map"
      "\030\002 \003(\0132*.google.protobuf.testing.MixedMa"
      "p.MapEntry\022\021\n\tint_value\030\003 \001(\005\032*\n\010MapEntr"
      "y\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\002:\0028\001\"\325\001\n\tMi"
      "xedMap2\0228\n\003map\030\001 \003(\0132+.google.protobuf.t"
      "esting.MixedMap2.MapEntry\0220\n\002ee\030\002 \001(\0162$."
      "google.protobuf.testing.MixedMap2.E\022\013\n\003m"
      "sg\030\004 \001(\t\032*\n\010MapEntry\022\013\n\003key\030\001 \001(\005\022\r\n\005val"
      "ue\030\002 \001(\010:\0028\001\"#\n\001E\022\006\n\002E0\020\000\022\006\n\002E1\020\001\022\006\n\002E2\020"
      "\002\022\006\n\002E3\020\003\"\306\001\n\nMessageMap\0229\n\003map\030\001 \003(\0132,."
      "google.protobuf.testing.MessageMap.MapEn"
      "try\032*\n\001M\022\021\n\tinner_int\030\001 \001(\005\022\022\n\ninner_tex"
      "t\030\002 \001(\t\032Q\n\010MapEntry\022\013\n\003key\030\001 \001(\t\0224\n\005valu"
      "e\030\002 \001(\0132%.google.protobuf.testing.Messag"
      "eMap.M:\0028\001\"B\n\022DoubleValueMessage\022,\n\006doub"
      "le\030\001 \001(\0132\034.google.protobuf.DoubleValue2z"
      "\n\027DefaultValueTestService\022_\n\004Call\022\'.goog"
      "le.protobuf.testing.RequestMessage\032..goo"
      "gle.protobuf.testing.DefaultValueTestCas"
      "esb\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 5090);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "google/protobuf/util/internal/testdata/default_value.proto", &protobuf_RegisterTypes);
  ::protobuf_google_2fprotobuf_2fany_2eproto::AddDescriptors();
  ::protobuf_google_2fprotobuf_2fstruct_2eproto::AddDescriptors();
  ::protobuf_google_2fprotobuf_2fwrappers_2eproto::AddDescriptors();
}

void AddDescriptors() {
  static ::google::protobuf::internal::once_flag once;
  ::google::protobuf::internal::call_once(once, AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at dynamic initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;
}  // namespace protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto
namespace google {
namespace protobuf {
namespace testing {
const ::google::protobuf::EnumDescriptor* MixedMap2_E_descriptor() {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_enum_descriptors[0];
}
bool MixedMap2_E_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const MixedMap2_E MixedMap2::E0;
const MixedMap2_E MixedMap2::E1;
const MixedMap2_E MixedMap2::E2;
const MixedMap2_E MixedMap2::E3;
const MixedMap2_E MixedMap2::E_MIN;
const MixedMap2_E MixedMap2::E_MAX;
const int MixedMap2::E_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

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

void DefaultValueTestCases::InitAsDefaultInstance() {
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->empty_double_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->double_with_default_value_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->double_with_nondefault_value_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->repeated_double_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->nested_message_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->repeated_nested_message_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->double_message_with_oneof_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->empty_struct_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->empty_struct2_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_null_value_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_values_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_nested_struct_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_nested_list_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_list_of_nulls_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_list_of_lists_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->struct_with_list_of_structs_ = const_cast< ::google::protobuf::testing::StructMessage*>(
      ::google::protobuf::testing::StructMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->top_level_struct_ = const_cast< ::google::protobuf::Struct*>(
      ::google::protobuf::Struct::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->value_wrapper_simple_ = const_cast< ::google::protobuf::testing::ValueMessage*>(
      ::google::protobuf::testing::ValueMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->value_wrapper_with_struct_ = const_cast< ::google::protobuf::testing::ValueMessage*>(
      ::google::protobuf::testing::ValueMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->value_wrapper_with_list_ = const_cast< ::google::protobuf::testing::ValueMessage*>(
      ::google::protobuf::testing::ValueMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->list_value_wrapper_ = const_cast< ::google::protobuf::testing::ListValueMessage*>(
      ::google::protobuf::testing::ListValueMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->top_level_value_simple_ = const_cast< ::google::protobuf::Value*>(
      ::google::protobuf::Value::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->top_level_value_with_struct_ = const_cast< ::google::protobuf::Value*>(
      ::google::protobuf::Value::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->top_level_value_with_list_ = const_cast< ::google::protobuf::Value*>(
      ::google::protobuf::Value::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->top_level_listvalue_ = const_cast< ::google::protobuf::ListValue*>(
      ::google::protobuf::ListValue::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->empty_any_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->type_only_any_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->recursive_any_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->any_with_message_value_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->any_with_nested_message_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->any_with_message_containing_map_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->any_with_message_containing_struct_ = const_cast< ::google::protobuf::testing::AnyMessage*>(
      ::google::protobuf::testing::AnyMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->top_level_any_ = const_cast< ::google::protobuf::Any*>(
      ::google::protobuf::Any::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->empty_map_ = const_cast< ::google::protobuf::testing::StringtoIntMap*>(
      ::google::protobuf::testing::StringtoIntMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->string_to_int_ = const_cast< ::google::protobuf::testing::StringtoIntMap*>(
      ::google::protobuf::testing::StringtoIntMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->int_to_string_ = const_cast< ::google::protobuf::testing::IntToStringMap*>(
      ::google::protobuf::testing::IntToStringMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->mixed1_ = const_cast< ::google::protobuf::testing::MixedMap*>(
      ::google::protobuf::testing::MixedMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->mixed2_ = const_cast< ::google::protobuf::testing::MixedMap2*>(
      ::google::protobuf::testing::MixedMap2::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->empty_mixed2_ = const_cast< ::google::protobuf::testing::MixedMap2*>(
      ::google::protobuf::testing::MixedMap2::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->map_of_objects_ = const_cast< ::google::protobuf::testing::MessageMap*>(
      ::google::protobuf::testing::MessageMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->mixed_empty_ = const_cast< ::google::protobuf::testing::MixedMap*>(
      ::google::protobuf::testing::MixedMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->message_map_empty_ = const_cast< ::google::protobuf::testing::MessageMap*>(
      ::google::protobuf::testing::MessageMap::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->double_value_ = const_cast< ::google::protobuf::testing::DoubleValueMessage*>(
      ::google::protobuf::testing::DoubleValueMessage::internal_default_instance());
  ::google::protobuf::testing::_DefaultValueTestCases_default_instance_._instance.get_mutable()->double_value_default_ = const_cast< ::google::protobuf::testing::DoubleValueMessage*>(
      ::google::protobuf::testing::DoubleValueMessage::internal_default_instance());
}
void DefaultValueTestCases::clear_top_level_struct() {
  if (GetArenaNoVirtual() == NULL && top_level_struct_ != NULL) {
    delete top_level_struct_;
  }
  top_level_struct_ = NULL;
}
void DefaultValueTestCases::clear_top_level_value_simple() {
  if (GetArenaNoVirtual() == NULL && top_level_value_simple_ != NULL) {
    delete top_level_value_simple_;
  }
  top_level_value_simple_ = NULL;
}
void DefaultValueTestCases::clear_top_level_value_with_struct() {
  if (GetArenaNoVirtual() == NULL && top_level_value_with_struct_ != NULL) {
    delete top_level_value_with_struct_;
  }
  top_level_value_with_struct_ = NULL;
}
void DefaultValueTestCases::clear_top_level_value_with_list() {
  if (GetArenaNoVirtual() == NULL && top_level_value_with_list_ != NULL) {
    delete top_level_value_with_list_;
  }
  top_level_value_with_list_ = NULL;
}
void DefaultValueTestCases::clear_top_level_listvalue() {
  if (GetArenaNoVirtual() == NULL && top_level_listvalue_ != NULL) {
    delete top_level_listvalue_;
  }
  top_level_listvalue_ = NULL;
}
void DefaultValueTestCases::clear_top_level_any() {
  if (GetArenaNoVirtual() == NULL && top_level_any_ != NULL) {
    delete top_level_any_;
  }
  top_level_any_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DefaultValueTestCases::kEmptyDoubleFieldNumber;
const int DefaultValueTestCases::kDoubleWithDefaultValueFieldNumber;
const int DefaultValueTestCases::kDoubleWithNondefaultValueFieldNumber;
const int DefaultValueTestCases::kRepeatedDoubleFieldNumber;
const int DefaultValueTestCases::kNestedMessageFieldNumber;
const int DefaultValueTestCases::kRepeatedNestedMessageFieldNumber;
const int DefaultValueTestCases::kDoubleMessageWithOneofFieldNumber;
const int DefaultValueTestCases::kEmptyStructFieldNumber;
const int DefaultValueTestCases::kEmptyStruct2FieldNumber;
const int DefaultValueTestCases::kStructWithNullValueFieldNumber;
const int DefaultValueTestCases::kStructWithValuesFieldNumber;
const int DefaultValueTestCases::kStructWithNestedStructFieldNumber;
const int DefaultValueTestCases::kStructWithNestedListFieldNumber;
const int DefaultValueTestCases::kStructWithListOfNullsFieldNumber;
const int DefaultValueTestCases::kStructWithListOfListsFieldNumber;
const int DefaultValueTestCases::kStructWithListOfStructsFieldNumber;
const int DefaultValueTestCases::kTopLevelStructFieldNumber;
const int DefaultValueTestCases::kValueWrapperSimpleFieldNumber;
const int DefaultValueTestCases::kValueWrapperWithStructFieldNumber;
const int DefaultValueTestCases::kValueWrapperWithListFieldNumber;
const int DefaultValueTestCases::kListValueWrapperFieldNumber;
const int DefaultValueTestCases::kTopLevelValueSimpleFieldNumber;
const int DefaultValueTestCases::kTopLevelValueWithStructFieldNumber;
const int DefaultValueTestCases::kTopLevelValueWithListFieldNumber;
const int DefaultValueTestCases::kTopLevelListvalueFieldNumber;
const int DefaultValueTestCases::kEmptyAnyFieldNumber;
const int DefaultValueTestCases::kTypeOnlyAnyFieldNumber;
const int DefaultValueTestCases::kRecursiveAnyFieldNumber;
const int DefaultValueTestCases::kAnyWithMessageValueFieldNumber;
const int DefaultValueTestCases::kAnyWithNestedMessageFieldNumber;
const int DefaultValueTestCases::kAnyWithMessageContainingMapFieldNumber;
const int DefaultValueTestCases::kAnyWithMessageContainingStructFieldNumber;
const int DefaultValueTestCases::kTopLevelAnyFieldNumber;
const int DefaultValueTestCases::kEmptyMapFieldNumber;
const int DefaultValueTestCases::kStringToIntFieldNumber;
const int DefaultValueTestCases::kIntToStringFieldNumber;
const int DefaultValueTestCases::kMixed1FieldNumber;
const int DefaultValueTestCases::kMixed2FieldNumber;
const int DefaultValueTestCases::kEmptyMixed2FieldNumber;
const int DefaultValueTestCases::kMapOfObjectsFieldNumber;
const int DefaultValueTestCases::kMixedEmptyFieldNumber;
const int DefaultValueTestCases::kMessageMapEmptyFieldNumber;
const int DefaultValueTestCases::kDoubleValueFieldNumber;
const int DefaultValueTestCases::kDoubleValueDefaultFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DefaultValueTestCases::DefaultValueTestCases()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DefaultValueTestCases.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.DefaultValueTestCases)
}
DefaultValueTestCases::DefaultValueTestCases(const DefaultValueTestCases& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_empty_double()) {
    empty_double_ = new ::google::protobuf::testing::DoubleMessage(*from.empty_double_);
  } else {
    empty_double_ = NULL;
  }
  if (from.has_double_with_default_value()) {
    double_with_default_value_ = new ::google::protobuf::testing::DoubleMessage(*from.double_with_default_value_);
  } else {
    double_with_default_value_ = NULL;
  }
  if (from.has_double_with_nondefault_value()) {
    double_with_nondefault_value_ = new ::google::protobuf::testing::DoubleMessage(*from.double_with_nondefault_value_);
  } else {
    double_with_nondefault_value_ = NULL;
  }
  if (from.has_repeated_double()) {
    repeated_double_ = new ::google::protobuf::testing::DoubleMessage(*from.repeated_double_);
  } else {
    repeated_double_ = NULL;
  }
  if (from.has_nested_message()) {
    nested_message_ = new ::google::protobuf::testing::DoubleMessage(*from.nested_message_);
  } else {
    nested_message_ = NULL;
  }
  if (from.has_repeated_nested_message()) {
    repeated_nested_message_ = new ::google::protobuf::testing::DoubleMessage(*from.repeated_nested_message_);
  } else {
    repeated_nested_message_ = NULL;
  }
  if (from.has_double_message_with_oneof()) {
    double_message_with_oneof_ = new ::google::protobuf::testing::DoubleMessage(*from.double_message_with_oneof_);
  } else {
    double_message_with_oneof_ = NULL;
  }
  if (from.has_empty_struct()) {
    empty_struct_ = new ::google::protobuf::testing::StructMessage(*from.empty_struct_);
  } else {
    empty_struct_ = NULL;
  }
  if (from.has_empty_struct2()) {
    empty_struct2_ = new ::google::protobuf::testing::StructMessage(*from.empty_struct2_);
  } else {
    empty_struct2_ = NULL;
  }
  if (from.has_struct_with_null_value()) {
    struct_with_null_value_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_null_value_);
  } else {
    struct_with_null_value_ = NULL;
  }
  if (from.has_struct_with_values()) {
    struct_with_values_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_values_);
  } else {
    struct_with_values_ = NULL;
  }
  if (from.has_struct_with_nested_struct()) {
    struct_with_nested_struct_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_nested_struct_);
  } else {
    struct_with_nested_struct_ = NULL;
  }
  if (from.has_struct_with_nested_list()) {
    struct_with_nested_list_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_nested_list_);
  } else {
    struct_with_nested_list_ = NULL;
  }
  if (from.has_struct_with_list_of_nulls()) {
    struct_with_list_of_nulls_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_list_of_nulls_);
  } else {
    struct_with_list_of_nulls_ = NULL;
  }
  if (from.has_struct_with_list_of_lists()) {
    struct_with_list_of_lists_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_list_of_lists_);
  } else {
    struct_with_list_of_lists_ = NULL;
  }
  if (from.has_struct_with_list_of_structs()) {
    struct_with_list_of_structs_ = new ::google::protobuf::testing::StructMessage(*from.struct_with_list_of_structs_);
  } else {
    struct_with_list_of_structs_ = NULL;
  }
  if (from.has_top_level_struct()) {
    top_level_struct_ = new ::google::protobuf::Struct(*from.top_level_struct_);
  } else {
    top_level_struct_ = NULL;
  }
  if (from.has_value_wrapper_simple()) {
    value_wrapper_simple_ = new ::google::protobuf::testing::ValueMessage(*from.value_wrapper_simple_);
  } else {
    value_wrapper_simple_ = NULL;
  }
  if (from.has_value_wrapper_with_struct()) {
    value_wrapper_with_struct_ = new ::google::protobuf::testing::ValueMessage(*from.value_wrapper_with_struct_);
  } else {
    value_wrapper_with_struct_ = NULL;
  }
  if (from.has_value_wrapper_with_list()) {
    value_wrapper_with_list_ = new ::google::protobuf::testing::ValueMessage(*from.value_wrapper_with_list_);
  } else {
    value_wrapper_with_list_ = NULL;
  }
  if (from.has_list_value_wrapper()) {
    list_value_wrapper_ = new ::google::protobuf::testing::ListValueMessage(*from.list_value_wrapper_);
  } else {
    list_value_wrapper_ = NULL;
  }
  if (from.has_top_level_value_simple()) {
    top_level_value_simple_ = new ::google::protobuf::Value(*from.top_level_value_simple_);
  } else {
    top_level_value_simple_ = NULL;
  }
  if (from.has_top_level_value_with_struct()) {
    top_level_value_with_struct_ = new ::google::protobuf::Value(*from.top_level_value_with_struct_);
  } else {
    top_level_value_with_struct_ = NULL;
  }
  if (from.has_top_level_value_with_list()) {
    top_level_value_with_list_ = new ::google::protobuf::Value(*from.top_level_value_with_list_);
  } else {
    top_level_value_with_list_ = NULL;
  }
  if (from.has_top_level_listvalue()) {
    top_level_listvalue_ = new ::google::protobuf::ListValue(*from.top_level_listvalue_);
  } else {
    top_level_listvalue_ = NULL;
  }
  if (from.has_empty_any()) {
    empty_any_ = new ::google::protobuf::testing::AnyMessage(*from.empty_any_);
  } else {
    empty_any_ = NULL;
  }
  if (from.has_type_only_any()) {
    type_only_any_ = new ::google::protobuf::testing::AnyMessage(*from.type_only_any_);
  } else {
    type_only_any_ = NULL;
  }
  if (from.has_recursive_any()) {
    recursive_any_ = new ::google::protobuf::testing::AnyMessage(*from.recursive_any_);
  } else {
    recursive_any_ = NULL;
  }
  if (from.has_any_with_message_value()) {
    any_with_message_value_ = new ::google::protobuf::testing::AnyMessage(*from.any_with_message_value_);
  } else {
    any_with_message_value_ = NULL;
  }
  if (from.has_any_with_nested_message()) {
    any_with_nested_message_ = new ::google::protobuf::testing::AnyMessage(*from.any_with_nested_message_);
  } else {
    any_with_nested_message_ = NULL;
  }
  if (from.has_any_with_message_containing_map()) {
    any_with_message_containing_map_ = new ::google::protobuf::testing::AnyMessage(*from.any_with_message_containing_map_);
  } else {
    any_with_message_containing_map_ = NULL;
  }
  if (from.has_any_with_message_containing_struct()) {
    any_with_message_containing_struct_ = new ::google::protobuf::testing::AnyMessage(*from.any_with_message_containing_struct_);
  } else {
    any_with_message_containing_struct_ = NULL;
  }
  if (from.has_top_level_any()) {
    top_level_any_ = new ::google::protobuf::Any(*from.top_level_any_);
  } else {
    top_level_any_ = NULL;
  }
  if (from.has_empty_map()) {
    empty_map_ = new ::google::protobuf::testing::StringtoIntMap(*from.empty_map_);
  } else {
    empty_map_ = NULL;
  }
  if (from.has_string_to_int()) {
    string_to_int_ = new ::google::protobuf::testing::StringtoIntMap(*from.string_to_int_);
  } else {
    string_to_int_ = NULL;
  }
  if (from.has_int_to_string()) {
    int_to_string_ = new ::google::protobuf::testing::IntToStringMap(*from.int_to_string_);
  } else {
    int_to_string_ = NULL;
  }
  if (from.has_mixed1()) {
    mixed1_ = new ::google::protobuf::testing::MixedMap(*from.mixed1_);
  } else {
    mixed1_ = NULL;
  }
  if (from.has_mixed2()) {
    mixed2_ = new ::google::protobuf::testing::MixedMap2(*from.mixed2_);
  } else {
    mixed2_ = NULL;
  }
  if (from.has_empty_mixed2()) {
    empty_mixed2_ = new ::google::protobuf::testing::MixedMap2(*from.empty_mixed2_);
  } else {
    empty_mixed2_ = NULL;
  }
  if (from.has_map_of_objects()) {
    map_of_objects_ = new ::google::protobuf::testing::MessageMap(*from.map_of_objects_);
  } else {
    map_of_objects_ = NULL;
  }
  if (from.has_mixed_empty()) {
    mixed_empty_ = new ::google::protobuf::testing::MixedMap(*from.mixed_empty_);
  } else {
    mixed_empty_ = NULL;
  }
  if (from.has_message_map_empty()) {
    message_map_empty_ = new ::google::protobuf::testing::MessageMap(*from.message_map_empty_);
  } else {
    message_map_empty_ = NULL;
  }
  if (from.has_double_value()) {
    double_value_ = new ::google::protobuf::testing::DoubleValueMessage(*from.double_value_);
  } else {
    double_value_ = NULL;
  }
  if (from.has_double_value_default()) {
    double_value_default_ = new ::google::protobuf::testing::DoubleValueMessage(*from.double_value_default_);
  } else {
    double_value_default_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.DefaultValueTestCases)
}

void DefaultValueTestCases::SharedCtor() {
  ::memset(&empty_double_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&double_value_default_) -
      reinterpret_cast<char*>(&empty_double_)) + sizeof(double_value_default_));
}

DefaultValueTestCases::~DefaultValueTestCases() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.DefaultValueTestCases)
  SharedDtor();
}

void DefaultValueTestCases::SharedDtor() {
  if (this != internal_default_instance()) delete empty_double_;
  if (this != internal_default_instance()) delete double_with_default_value_;
  if (this != internal_default_instance()) delete double_with_nondefault_value_;
  if (this != internal_default_instance()) delete repeated_double_;
  if (this != internal_default_instance()) delete nested_message_;
  if (this != internal_default_instance()) delete repeated_nested_message_;
  if (this != internal_default_instance()) delete double_message_with_oneof_;
  if (this != internal_default_instance()) delete empty_struct_;
  if (this != internal_default_instance()) delete empty_struct2_;
  if (this != internal_default_instance()) delete struct_with_null_value_;
  if (this != internal_default_instance()) delete struct_with_values_;
  if (this != internal_default_instance()) delete struct_with_nested_struct_;
  if (this != internal_default_instance()) delete struct_with_nested_list_;
  if (this != internal_default_instance()) delete struct_with_list_of_nulls_;
  if (this != internal_default_instance()) delete struct_with_list_of_lists_;
  if (this != internal_default_instance()) delete struct_with_list_of_structs_;
  if (this != internal_default_instance()) delete top_level_struct_;
  if (this != internal_default_instance()) delete value_wrapper_simple_;
  if (this != internal_default_instance()) delete value_wrapper_with_struct_;
  if (this != internal_default_instance()) delete value_wrapper_with_list_;
  if (this != internal_default_instance()) delete list_value_wrapper_;
  if (this != internal_default_instance()) delete top_level_value_simple_;
  if (this != internal_default_instance()) delete top_level_value_with_struct_;
  if (this != internal_default_instance()) delete top_level_value_with_list_;
  if (this != internal_default_instance()) delete top_level_listvalue_;
  if (this != internal_default_instance()) delete empty_any_;
  if (this != internal_default_instance()) delete type_only_any_;
  if (this != internal_default_instance()) delete recursive_any_;
  if (this != internal_default_instance()) delete any_with_message_value_;
  if (this != internal_default_instance()) delete any_with_nested_message_;
  if (this != internal_default_instance()) delete any_with_message_containing_map_;
  if (this != internal_default_instance()) delete any_with_message_containing_struct_;
  if (this != internal_default_instance()) delete top_level_any_;
  if (this != internal_default_instance()) delete empty_map_;
  if (this != internal_default_instance()) delete string_to_int_;
  if (this != internal_default_instance()) delete int_to_string_;
  if (this != internal_default_instance()) delete mixed1_;
  if (this != internal_default_instance()) delete mixed2_;
  if (this != internal_default_instance()) delete empty_mixed2_;
  if (this != internal_default_instance()) delete map_of_objects_;
  if (this != internal_default_instance()) delete mixed_empty_;
  if (this != internal_default_instance()) delete message_map_empty_;
  if (this != internal_default_instance()) delete double_value_;
  if (this != internal_default_instance()) delete double_value_default_;
}

void DefaultValueTestCases::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* DefaultValueTestCases::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const DefaultValueTestCases& DefaultValueTestCases::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DefaultValueTestCases.base);
  return *internal_default_instance();
}


void DefaultValueTestCases::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.DefaultValueTestCases)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && empty_double_ != NULL) {
    delete empty_double_;
  }
  empty_double_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_with_default_value_ != NULL) {
    delete double_with_default_value_;
  }
  double_with_default_value_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_with_nondefault_value_ != NULL) {
    delete double_with_nondefault_value_;
  }
  double_with_nondefault_value_ = NULL;
  if (GetArenaNoVirtual() == NULL && repeated_double_ != NULL) {
    delete repeated_double_;
  }
  repeated_double_ = NULL;
  if (GetArenaNoVirtual() == NULL && nested_message_ != NULL) {
    delete nested_message_;
  }
  nested_message_ = NULL;
  if (GetArenaNoVirtual() == NULL && repeated_nested_message_ != NULL) {
    delete repeated_nested_message_;
  }
  repeated_nested_message_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_message_with_oneof_ != NULL) {
    delete double_message_with_oneof_;
  }
  double_message_with_oneof_ = NULL;
  if (GetArenaNoVirtual() == NULL && empty_struct_ != NULL) {
    delete empty_struct_;
  }
  empty_struct_ = NULL;
  if (GetArenaNoVirtual() == NULL && empty_struct2_ != NULL) {
    delete empty_struct2_;
  }
  empty_struct2_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_null_value_ != NULL) {
    delete struct_with_null_value_;
  }
  struct_with_null_value_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_values_ != NULL) {
    delete struct_with_values_;
  }
  struct_with_values_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_nested_struct_ != NULL) {
    delete struct_with_nested_struct_;
  }
  struct_with_nested_struct_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_nested_list_ != NULL) {
    delete struct_with_nested_list_;
  }
  struct_with_nested_list_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_nulls_ != NULL) {
    delete struct_with_list_of_nulls_;
  }
  struct_with_list_of_nulls_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_lists_ != NULL) {
    delete struct_with_list_of_lists_;
  }
  struct_with_list_of_lists_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_with_list_of_structs_ != NULL) {
    delete struct_with_list_of_structs_;
  }
  struct_with_list_of_structs_ = NULL;
  if (GetArenaNoVirtual() == NULL && top_level_struct_ != NULL) {
    delete top_level_struct_;
  }
  top_level_struct_ = NULL;
  if (GetArenaNoVirtual() == NULL && value_wrapper_simple_ != NULL) {
    delete value_wrapper_simple_;
  }
  value_wrapper_simple_ = NULL;
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_struct_ != NULL) {
    delete value_wrapper_with_struct_;
  }
  value_wrapper_with_struct_ = NULL;
  if (GetArenaNoVirtual() == NULL && value_wrapper_with_list_ != NULL) {
    delete value_wrapper_with_list_;
  }
  value_wrapper_with_list_ = NULL;
  if (GetArenaNoVirtual() == NULL && list_value_wrapper_ != NULL) {
    delete list_value_wrapper_;
  }
  list_value_wrapper_ = NULL;
  if (GetArenaNoVirtual() == NULL && top_level_value_simple_ != NULL) {
    delete top_level_value_simple_;
  }
  top_level_value_simple_ = NULL;
  if (GetArenaNoVirtual() == NULL && top_level_value_with_struct_ != NULL) {
    delete top_level_value_with_struct_;
  }
  top_level_value_with_struct_ = NULL;
  if (GetArenaNoVirtual() == NULL && top_level_value_with_list_ != NULL) {
    delete top_level_value_with_list_;
  }
  top_level_value_with_list_ = NULL;
  if (GetArenaNoVirtual() == NULL && top_level_listvalue_ != NULL) {
    delete top_level_listvalue_;
  }
  top_level_listvalue_ = NULL;
  if (GetArenaNoVirtual() == NULL && empty_any_ != NULL) {
    delete empty_any_;
  }
  empty_any_ = NULL;
  if (GetArenaNoVirtual() == NULL && type_only_any_ != NULL) {
    delete type_only_any_;
  }
  type_only_any_ = NULL;
  if (GetArenaNoVirtual() == NULL && recursive_any_ != NULL) {
    delete recursive_any_;
  }
  recursive_any_ = NULL;
  if (GetArenaNoVirtual() == NULL && any_with_message_value_ != NULL) {
    delete any_with_message_value_;
  }
  any_with_message_value_ = NULL;
  if (GetArenaNoVirtual() == NULL && any_with_nested_message_ != NULL) {
    delete any_with_nested_message_;
  }
  any_with_nested_message_ = NULL;
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_map_ != NULL) {
    delete any_with_message_containing_map_;
  }
  any_with_message_containing_map_ = NULL;
  if (GetArenaNoVirtual() == NULL && any_with_message_containing_struct_ != NULL) {
    delete any_with_message_containing_struct_;
  }
  any_with_message_containing_struct_ = NULL;
  if (GetArenaNoVirtual() == NULL && top_level_any_ != NULL) {
    delete top_level_any_;
  }
  top_level_any_ = NULL;
  if (GetArenaNoVirtual() == NULL && empty_map_ != NULL) {
    delete empty_map_;
  }
  empty_map_ = NULL;
  if (GetArenaNoVirtual() == NULL && string_to_int_ != NULL) {
    delete string_to_int_;
  }
  string_to_int_ = NULL;
  if (GetArenaNoVirtual() == NULL && int_to_string_ != NULL) {
    delete int_to_string_;
  }
  int_to_string_ = NULL;
  if (GetArenaNoVirtual() == NULL && mixed1_ != NULL) {
    delete mixed1_;
  }
  mixed1_ = NULL;
  if (GetArenaNoVirtual() == NULL && mixed2_ != NULL) {
    delete mixed2_;
  }
  mixed2_ = NULL;
  if (GetArenaNoVirtual() == NULL && empty_mixed2_ != NULL) {
    delete empty_mixed2_;
  }
  empty_mixed2_ = NULL;
  if (GetArenaNoVirtual() == NULL && map_of_objects_ != NULL) {
    delete map_of_objects_;
  }
  map_of_objects_ = NULL;
  if (GetArenaNoVirtual() == NULL && mixed_empty_ != NULL) {
    delete mixed_empty_;
  }
  mixed_empty_ = NULL;
  if (GetArenaNoVirtual() == NULL && message_map_empty_ != NULL) {
    delete message_map_empty_;
  }
  message_map_empty_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_value_ != NULL) {
    delete double_value_;
  }
  double_value_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_value_default_ != NULL) {
    delete double_value_default_;
  }
  double_value_default_ = NULL;
  _internal_metadata_.Clear();
}

bool DefaultValueTestCases::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.DefaultValueTestCases)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.testing.DoubleMessage empty_double = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_empty_double()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage double_with_default_value = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_with_default_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage double_with_nondefault_value = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_with_nondefault_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage repeated_double = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_repeated_double()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage nested_message = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_nested_message()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage repeated_nested_message = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_repeated_nested_message()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage double_message_with_oneof = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_message_with_oneof()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage empty_struct = 201;
      case 201: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 1610 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_empty_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage empty_struct2 = 202;
      case 202: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(82u /* 1618 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_empty_struct2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_null_value = 203;
      case 203: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(90u /* 1626 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_null_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_values = 204;
      case 204: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(98u /* 1634 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_values()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_nested_struct = 205;
      case 205: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u /* 1642 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_nested_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_nested_list = 206;
      case 206: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(114u /* 1650 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_nested_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_list_of_nulls = 207;
      case 207: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u /* 1658 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_list_of_nulls()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_list_of_lists = 208;
      case 208: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u /* 1666 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_list_of_lists()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StructMessage struct_with_list_of_structs = 209;
      case 209: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(138u /* 1674 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_with_list_of_structs()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Struct top_level_struct = 210;
      case 210: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(146u /* 1682 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_top_level_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.ValueMessage value_wrapper_simple = 212;
      case 212: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(162u /* 1698 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_value_wrapper_simple()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.ValueMessage value_wrapper_with_struct = 213;
      case 213: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(170u /* 1706 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_value_wrapper_with_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.ValueMessage value_wrapper_with_list = 214;
      case 214: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(178u /* 1714 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_value_wrapper_with_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.ListValueMessage list_value_wrapper = 215;
      case 215: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(186u /* 1722 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_list_value_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Value top_level_value_simple = 216;
      case 216: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(194u /* 1730 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_top_level_value_simple()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Value top_level_value_with_struct = 217;
      case 217: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(202u /* 1738 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_top_level_value_with_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Value top_level_value_with_list = 218;
      case 218: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(210u /* 1746 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_top_level_value_with_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.ListValue top_level_listvalue = 219;
      case 219: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(218u /* 1754 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_top_level_listvalue()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage empty_any = 301;
      case 301: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(106u /* 2410 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_empty_any()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage type_only_any = 302;
      case 302: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(114u /* 2418 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_type_only_any()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage recursive_any = 303;
      case 303: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(122u /* 2426 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_recursive_any()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage any_with_message_value = 304;
      case 304: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u /* 2434 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_any_with_message_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage any_with_nested_message = 305;
      case 305: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(138u /* 2442 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_any_with_nested_message()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage any_with_message_containing_map = 306;
      case 306: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(146u /* 2450 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_any_with_message_containing_map()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyMessage any_with_message_containing_struct = 307;
      case 307: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(154u /* 2458 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_any_with_message_containing_struct()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Any top_level_any = 308;
      case 308: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(162u /* 2466 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_top_level_any()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StringtoIntMap empty_map = 401;
      case 401: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(138u /* 3210 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_empty_map()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.StringtoIntMap string_to_int = 402;
      case 402: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(146u /* 3218 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_string_to_int()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.IntToStringMap int_to_string = 403;
      case 403: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(154u /* 3226 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_int_to_string()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MixedMap mixed1 = 404;
      case 404: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(162u /* 3234 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_mixed1()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MixedMap2 mixed2 = 405;
      case 405: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(170u /* 3242 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_mixed2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MixedMap2 empty_mixed2 = 406;
      case 406: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(178u /* 3250 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_empty_mixed2()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MessageMap map_of_objects = 407;
      case 407: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(186u /* 3258 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_map_of_objects()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MixedMap mixed_empty = 408;
      case 408: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(194u /* 3266 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_mixed_empty()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MessageMap message_map_empty = 409;
      case 409: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(202u /* 3274 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_message_map_empty()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleValueMessage double_value = 501;
      case 501: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(170u /* 4010 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleValueMessage double_value_default = 502;
      case 502: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(178u /* 4018 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_value_default()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.DefaultValueTestCases)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.DefaultValueTestCases)
  return false;
#undef DO_
}

void DefaultValueTestCases::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.DefaultValueTestCases)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.testing.DoubleMessage empty_double = 1;
  if (this->has_empty_double()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_empty_double(), output);
  }

  // .google.protobuf.testing.DoubleMessage double_with_default_value = 2;
  if (this->has_double_with_default_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->_internal_double_with_default_value(), output);
  }

  // .google.protobuf.testing.DoubleMessage double_with_nondefault_value = 3;
  if (this->has_double_with_nondefault_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, this->_internal_double_with_nondefault_value(), output);
  }

  // .google.protobuf.testing.DoubleMessage repeated_double = 4;
  if (this->has_repeated_double()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_repeated_double(), output);
  }

  // .google.protobuf.testing.DoubleMessage nested_message = 5;
  if (this->has_nested_message()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      5, this->_internal_nested_message(), output);
  }

  // .google.protobuf.testing.DoubleMessage repeated_nested_message = 6;
  if (this->has_repeated_nested_message()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      6, this->_internal_repeated_nested_message(), output);
  }

  // .google.protobuf.testing.DoubleMessage double_message_with_oneof = 7;
  if (this->has_double_message_with_oneof()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, this->_internal_double_message_with_oneof(), output);
  }

  // .google.protobuf.testing.StructMessage empty_struct = 201;
  if (this->has_empty_struct()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      201, this->_internal_empty_struct(), output);
  }

  // .google.protobuf.testing.StructMessage empty_struct2 = 202;
  if (this->has_empty_struct2()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      202, this->_internal_empty_struct2(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_null_value = 203;
  if (this->has_struct_with_null_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      203, this->_internal_struct_with_null_value(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_values = 204;
  if (this->has_struct_with_values()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      204, this->_internal_struct_with_values(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_nested_struct = 205;
  if (this->has_struct_with_nested_struct()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      205, this->_internal_struct_with_nested_struct(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_nested_list = 206;
  if (this->has_struct_with_nested_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      206, this->_internal_struct_with_nested_list(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_nulls = 207;
  if (this->has_struct_with_list_of_nulls()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      207, this->_internal_struct_with_list_of_nulls(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_lists = 208;
  if (this->has_struct_with_list_of_lists()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      208, this->_internal_struct_with_list_of_lists(), output);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_structs = 209;
  if (this->has_struct_with_list_of_structs()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      209, this->_internal_struct_with_list_of_structs(), output);
  }

  // .google.protobuf.Struct top_level_struct = 210;
  if (this->has_top_level_struct()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      210, this->_internal_top_level_struct(), output);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_simple = 212;
  if (this->has_value_wrapper_simple()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      212, this->_internal_value_wrapper_simple(), output);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_with_struct = 213;
  if (this->has_value_wrapper_with_struct()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      213, this->_internal_value_wrapper_with_struct(), output);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_with_list = 214;
  if (this->has_value_wrapper_with_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      214, this->_internal_value_wrapper_with_list(), output);
  }

  // .google.protobuf.testing.ListValueMessage list_value_wrapper = 215;
  if (this->has_list_value_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      215, this->_internal_list_value_wrapper(), output);
  }

  // .google.protobuf.Value top_level_value_simple = 216;
  if (this->has_top_level_value_simple()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      216, this->_internal_top_level_value_simple(), output);
  }

  // .google.protobuf.Value top_level_value_with_struct = 217;
  if (this->has_top_level_value_with_struct()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      217, this->_internal_top_level_value_with_struct(), output);
  }

  // .google.protobuf.Value top_level_value_with_list = 218;
  if (this->has_top_level_value_with_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      218, this->_internal_top_level_value_with_list(), output);
  }

  // .google.protobuf.ListValue top_level_listvalue = 219;
  if (this->has_top_level_listvalue()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      219, this->_internal_top_level_listvalue(), output);
  }

  // .google.protobuf.testing.AnyMessage empty_any = 301;
  if (this->has_empty_any()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      301, this->_internal_empty_any(), output);
  }

  // .google.protobuf.testing.AnyMessage type_only_any = 302;
  if (this->has_type_only_any()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      302, this->_internal_type_only_any(), output);
  }

  // .google.protobuf.testing.AnyMessage recursive_any = 303;
  if (this->has_recursive_any()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      303, this->_internal_recursive_any(), output);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_value = 304;
  if (this->has_any_with_message_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      304, this->_internal_any_with_message_value(), output);
  }

  // .google.protobuf.testing.AnyMessage any_with_nested_message = 305;
  if (this->has_any_with_nested_message()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      305, this->_internal_any_with_nested_message(), output);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_containing_map = 306;
  if (this->has_any_with_message_containing_map()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      306, this->_internal_any_with_message_containing_map(), output);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_containing_struct = 307;
  if (this->has_any_with_message_containing_struct()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      307, this->_internal_any_with_message_containing_struct(), output);
  }

  // .google.protobuf.Any top_level_any = 308;
  if (this->has_top_level_any()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      308, this->_internal_top_level_any(), output);
  }

  // .google.protobuf.testing.StringtoIntMap empty_map = 401;
  if (this->has_empty_map()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      401, this->_internal_empty_map(), output);
  }

  // .google.protobuf.testing.StringtoIntMap string_to_int = 402;
  if (this->has_string_to_int()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      402, this->_internal_string_to_int(), output);
  }

  // .google.protobuf.testing.IntToStringMap int_to_string = 403;
  if (this->has_int_to_string()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      403, this->_internal_int_to_string(), output);
  }

  // .google.protobuf.testing.MixedMap mixed1 = 404;
  if (this->has_mixed1()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      404, this->_internal_mixed1(), output);
  }

  // .google.protobuf.testing.MixedMap2 mixed2 = 405;
  if (this->has_mixed2()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      405, this->_internal_mixed2(), output);
  }

  // .google.protobuf.testing.MixedMap2 empty_mixed2 = 406;
  if (this->has_empty_mixed2()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      406, this->_internal_empty_mixed2(), output);
  }

  // .google.protobuf.testing.MessageMap map_of_objects = 407;
  if (this->has_map_of_objects()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      407, this->_internal_map_of_objects(), output);
  }

  // .google.protobuf.testing.MixedMap mixed_empty = 408;
  if (this->has_mixed_empty()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      408, this->_internal_mixed_empty(), output);
  }

  // .google.protobuf.testing.MessageMap message_map_empty = 409;
  if (this->has_message_map_empty()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      409, this->_internal_message_map_empty(), output);
  }

  // .google.protobuf.testing.DoubleValueMessage double_value = 501;
  if (this->has_double_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      501, this->_internal_double_value(), output);
  }

  // .google.protobuf.testing.DoubleValueMessage double_value_default = 502;
  if (this->has_double_value_default()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      502, this->_internal_double_value_default(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.DefaultValueTestCases)
}

::google::protobuf::uint8* DefaultValueTestCases::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.DefaultValueTestCases)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.testing.DoubleMessage empty_double = 1;
  if (this->has_empty_double()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_empty_double(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleMessage double_with_default_value = 2;
  if (this->has_double_with_default_value()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->_internal_double_with_default_value(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleMessage double_with_nondefault_value = 3;
  if (this->has_double_with_nondefault_value()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, this->_internal_double_with_nondefault_value(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleMessage repeated_double = 4;
  if (this->has_repeated_double()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_repeated_double(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleMessage nested_message = 5;
  if (this->has_nested_message()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        5, this->_internal_nested_message(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleMessage repeated_nested_message = 6;
  if (this->has_repeated_nested_message()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        6, this->_internal_repeated_nested_message(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleMessage double_message_with_oneof = 7;
  if (this->has_double_message_with_oneof()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        7, this->_internal_double_message_with_oneof(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage empty_struct = 201;
  if (this->has_empty_struct()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        201, this->_internal_empty_struct(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage empty_struct2 = 202;
  if (this->has_empty_struct2()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        202, this->_internal_empty_struct2(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_null_value = 203;
  if (this->has_struct_with_null_value()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        203, this->_internal_struct_with_null_value(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_values = 204;
  if (this->has_struct_with_values()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        204, this->_internal_struct_with_values(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_nested_struct = 205;
  if (this->has_struct_with_nested_struct()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        205, this->_internal_struct_with_nested_struct(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_nested_list = 206;
  if (this->has_struct_with_nested_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        206, this->_internal_struct_with_nested_list(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_nulls = 207;
  if (this->has_struct_with_list_of_nulls()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        207, this->_internal_struct_with_list_of_nulls(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_lists = 208;
  if (this->has_struct_with_list_of_lists()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        208, this->_internal_struct_with_list_of_lists(), deterministic, target);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_structs = 209;
  if (this->has_struct_with_list_of_structs()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        209, this->_internal_struct_with_list_of_structs(), deterministic, target);
  }

  // .google.protobuf.Struct top_level_struct = 210;
  if (this->has_top_level_struct()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        210, this->_internal_top_level_struct(), deterministic, target);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_simple = 212;
  if (this->has_value_wrapper_simple()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        212, this->_internal_value_wrapper_simple(), deterministic, target);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_with_struct = 213;
  if (this->has_value_wrapper_with_struct()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        213, this->_internal_value_wrapper_with_struct(), deterministic, target);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_with_list = 214;
  if (this->has_value_wrapper_with_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        214, this->_internal_value_wrapper_with_list(), deterministic, target);
  }

  // .google.protobuf.testing.ListValueMessage list_value_wrapper = 215;
  if (this->has_list_value_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        215, this->_internal_list_value_wrapper(), deterministic, target);
  }

  // .google.protobuf.Value top_level_value_simple = 216;
  if (this->has_top_level_value_simple()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        216, this->_internal_top_level_value_simple(), deterministic, target);
  }

  // .google.protobuf.Value top_level_value_with_struct = 217;
  if (this->has_top_level_value_with_struct()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        217, this->_internal_top_level_value_with_struct(), deterministic, target);
  }

  // .google.protobuf.Value top_level_value_with_list = 218;
  if (this->has_top_level_value_with_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        218, this->_internal_top_level_value_with_list(), deterministic, target);
  }

  // .google.protobuf.ListValue top_level_listvalue = 219;
  if (this->has_top_level_listvalue()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        219, this->_internal_top_level_listvalue(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage empty_any = 301;
  if (this->has_empty_any()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        301, this->_internal_empty_any(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage type_only_any = 302;
  if (this->has_type_only_any()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        302, this->_internal_type_only_any(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage recursive_any = 303;
  if (this->has_recursive_any()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        303, this->_internal_recursive_any(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_value = 304;
  if (this->has_any_with_message_value()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        304, this->_internal_any_with_message_value(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage any_with_nested_message = 305;
  if (this->has_any_with_nested_message()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        305, this->_internal_any_with_nested_message(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_containing_map = 306;
  if (this->has_any_with_message_containing_map()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        306, this->_internal_any_with_message_containing_map(), deterministic, target);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_containing_struct = 307;
  if (this->has_any_with_message_containing_struct()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        307, this->_internal_any_with_message_containing_struct(), deterministic, target);
  }

  // .google.protobuf.Any top_level_any = 308;
  if (this->has_top_level_any()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        308, this->_internal_top_level_any(), deterministic, target);
  }

  // .google.protobuf.testing.StringtoIntMap empty_map = 401;
  if (this->has_empty_map()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        401, this->_internal_empty_map(), deterministic, target);
  }

  // .google.protobuf.testing.StringtoIntMap string_to_int = 402;
  if (this->has_string_to_int()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        402, this->_internal_string_to_int(), deterministic, target);
  }

  // .google.protobuf.testing.IntToStringMap int_to_string = 403;
  if (this->has_int_to_string()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        403, this->_internal_int_to_string(), deterministic, target);
  }

  // .google.protobuf.testing.MixedMap mixed1 = 404;
  if (this->has_mixed1()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        404, this->_internal_mixed1(), deterministic, target);
  }

  // .google.protobuf.testing.MixedMap2 mixed2 = 405;
  if (this->has_mixed2()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        405, this->_internal_mixed2(), deterministic, target);
  }

  // .google.protobuf.testing.MixedMap2 empty_mixed2 = 406;
  if (this->has_empty_mixed2()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        406, this->_internal_empty_mixed2(), deterministic, target);
  }

  // .google.protobuf.testing.MessageMap map_of_objects = 407;
  if (this->has_map_of_objects()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        407, this->_internal_map_of_objects(), deterministic, target);
  }

  // .google.protobuf.testing.MixedMap mixed_empty = 408;
  if (this->has_mixed_empty()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        408, this->_internal_mixed_empty(), deterministic, target);
  }

  // .google.protobuf.testing.MessageMap message_map_empty = 409;
  if (this->has_message_map_empty()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        409, this->_internal_message_map_empty(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleValueMessage double_value = 501;
  if (this->has_double_value()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        501, this->_internal_double_value(), deterministic, target);
  }

  // .google.protobuf.testing.DoubleValueMessage double_value_default = 502;
  if (this->has_double_value_default()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        502, this->_internal_double_value_default(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.DefaultValueTestCases)
  return target;
}

size_t DefaultValueTestCases::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.DefaultValueTestCases)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.testing.DoubleMessage empty_double = 1;
  if (this->has_empty_double()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *empty_double_);
  }

  // .google.protobuf.testing.DoubleMessage double_with_default_value = 2;
  if (this->has_double_with_default_value()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_with_default_value_);
  }

  // .google.protobuf.testing.DoubleMessage double_with_nondefault_value = 3;
  if (this->has_double_with_nondefault_value()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_with_nondefault_value_);
  }

  // .google.protobuf.testing.DoubleMessage repeated_double = 4;
  if (this->has_repeated_double()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *repeated_double_);
  }

  // .google.protobuf.testing.DoubleMessage nested_message = 5;
  if (this->has_nested_message()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *nested_message_);
  }

  // .google.protobuf.testing.DoubleMessage repeated_nested_message = 6;
  if (this->has_repeated_nested_message()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *repeated_nested_message_);
  }

  // .google.protobuf.testing.DoubleMessage double_message_with_oneof = 7;
  if (this->has_double_message_with_oneof()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_message_with_oneof_);
  }

  // .google.protobuf.testing.StructMessage empty_struct = 201;
  if (this->has_empty_struct()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *empty_struct_);
  }

  // .google.protobuf.testing.StructMessage empty_struct2 = 202;
  if (this->has_empty_struct2()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *empty_struct2_);
  }

  // .google.protobuf.testing.StructMessage struct_with_null_value = 203;
  if (this->has_struct_with_null_value()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_null_value_);
  }

  // .google.protobuf.testing.StructMessage struct_with_values = 204;
  if (this->has_struct_with_values()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_values_);
  }

  // .google.protobuf.testing.StructMessage struct_with_nested_struct = 205;
  if (this->has_struct_with_nested_struct()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_nested_struct_);
  }

  // .google.protobuf.testing.StructMessage struct_with_nested_list = 206;
  if (this->has_struct_with_nested_list()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_nested_list_);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_nulls = 207;
  if (this->has_struct_with_list_of_nulls()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_list_of_nulls_);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_lists = 208;
  if (this->has_struct_with_list_of_lists()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_list_of_lists_);
  }

  // .google.protobuf.testing.StructMessage struct_with_list_of_structs = 209;
  if (this->has_struct_with_list_of_structs()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_with_list_of_structs_);
  }

  // .google.protobuf.Struct top_level_struct = 210;
  if (this->has_top_level_struct()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *top_level_struct_);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_simple = 212;
  if (this->has_value_wrapper_simple()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *value_wrapper_simple_);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_with_struct = 213;
  if (this->has_value_wrapper_with_struct()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *value_wrapper_with_struct_);
  }

  // .google.protobuf.testing.ValueMessage value_wrapper_with_list = 214;
  if (this->has_value_wrapper_with_list()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *value_wrapper_with_list_);
  }

  // .google.protobuf.testing.ListValueMessage list_value_wrapper = 215;
  if (this->has_list_value_wrapper()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *list_value_wrapper_);
  }

  // .google.protobuf.Value top_level_value_simple = 216;
  if (this->has_top_level_value_simple()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *top_level_value_simple_);
  }

  // .google.protobuf.Value top_level_value_with_struct = 217;
  if (this->has_top_level_value_with_struct()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *top_level_value_with_struct_);
  }

  // .google.protobuf.Value top_level_value_with_list = 218;
  if (this->has_top_level_value_with_list()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *top_level_value_with_list_);
  }

  // .google.protobuf.ListValue top_level_listvalue = 219;
  if (this->has_top_level_listvalue()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *top_level_listvalue_);
  }

  // .google.protobuf.testing.AnyMessage empty_any = 301;
  if (this->has_empty_any()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *empty_any_);
  }

  // .google.protobuf.testing.AnyMessage type_only_any = 302;
  if (this->has_type_only_any()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *type_only_any_);
  }

  // .google.protobuf.testing.AnyMessage recursive_any = 303;
  if (this->has_recursive_any()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *recursive_any_);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_value = 304;
  if (this->has_any_with_message_value()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *any_with_message_value_);
  }

  // .google.protobuf.testing.AnyMessage any_with_nested_message = 305;
  if (this->has_any_with_nested_message()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *any_with_nested_message_);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_containing_map = 306;
  if (this->has_any_with_message_containing_map()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *any_with_message_containing_map_);
  }

  // .google.protobuf.testing.AnyMessage any_with_message_containing_struct = 307;
  if (this->has_any_with_message_containing_struct()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *any_with_message_containing_struct_);
  }

  // .google.protobuf.Any top_level_any = 308;
  if (this->has_top_level_any()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *top_level_any_);
  }

  // .google.protobuf.testing.StringtoIntMap empty_map = 401;
  if (this->has_empty_map()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *empty_map_);
  }

  // .google.protobuf.testing.StringtoIntMap string_to_int = 402;
  if (this->has_string_to_int()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *string_to_int_);
  }

  // .google.protobuf.testing.IntToStringMap int_to_string = 403;
  if (this->has_int_to_string()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *int_to_string_);
  }

  // .google.protobuf.testing.MixedMap mixed1 = 404;
  if (this->has_mixed1()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *mixed1_);
  }

  // .google.protobuf.testing.MixedMap2 mixed2 = 405;
  if (this->has_mixed2()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *mixed2_);
  }

  // .google.protobuf.testing.MixedMap2 empty_mixed2 = 406;
  if (this->has_empty_mixed2()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *empty_mixed2_);
  }

  // .google.protobuf.testing.MessageMap map_of_objects = 407;
  if (this->has_map_of_objects()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *map_of_objects_);
  }

  // .google.protobuf.testing.MixedMap mixed_empty = 408;
  if (this->has_mixed_empty()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *mixed_empty_);
  }

  // .google.protobuf.testing.MessageMap message_map_empty = 409;
  if (this->has_message_map_empty()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *message_map_empty_);
  }

  // .google.protobuf.testing.DoubleValueMessage double_value = 501;
  if (this->has_double_value()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_value_);
  }

  // .google.protobuf.testing.DoubleValueMessage double_value_default = 502;
  if (this->has_double_value_default()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_value_default_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DefaultValueTestCases::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.DefaultValueTestCases)
  GOOGLE_DCHECK_NE(&from, this);
  const DefaultValueTestCases* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const DefaultValueTestCases>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.DefaultValueTestCases)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.DefaultValueTestCases)
    MergeFrom(*source);
  }
}

void DefaultValueTestCases::MergeFrom(const DefaultValueTestCases& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.DefaultValueTestCases)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_empty_double()) {
    mutable_empty_double()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.empty_double());
  }
  if (from.has_double_with_default_value()) {
    mutable_double_with_default_value()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.double_with_default_value());
  }
  if (from.has_double_with_nondefault_value()) {
    mutable_double_with_nondefault_value()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.double_with_nondefault_value());
  }
  if (from.has_repeated_double()) {
    mutable_repeated_double()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.repeated_double());
  }
  if (from.has_nested_message()) {
    mutable_nested_message()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.nested_message());
  }
  if (from.has_repeated_nested_message()) {
    mutable_repeated_nested_message()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.repeated_nested_message());
  }
  if (from.has_double_message_with_oneof()) {
    mutable_double_message_with_oneof()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.double_message_with_oneof());
  }
  if (from.has_empty_struct()) {
    mutable_empty_struct()->::google::protobuf::testing::StructMessage::MergeFrom(from.empty_struct());
  }
  if (from.has_empty_struct2()) {
    mutable_empty_struct2()->::google::protobuf::testing::StructMessage::MergeFrom(from.empty_struct2());
  }
  if (from.has_struct_with_null_value()) {
    mutable_struct_with_null_value()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_null_value());
  }
  if (from.has_struct_with_values()) {
    mutable_struct_with_values()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_values());
  }
  if (from.has_struct_with_nested_struct()) {
    mutable_struct_with_nested_struct()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_nested_struct());
  }
  if (from.has_struct_with_nested_list()) {
    mutable_struct_with_nested_list()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_nested_list());
  }
  if (from.has_struct_with_list_of_nulls()) {
    mutable_struct_with_list_of_nulls()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_list_of_nulls());
  }
  if (from.has_struct_with_list_of_lists()) {
    mutable_struct_with_list_of_lists()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_list_of_lists());
  }
  if (from.has_struct_with_list_of_structs()) {
    mutable_struct_with_list_of_structs()->::google::protobuf::testing::StructMessage::MergeFrom(from.struct_with_list_of_structs());
  }
  if (from.has_top_level_struct()) {
    mutable_top_level_struct()->::google::protobuf::Struct::MergeFrom(from.top_level_struct());
  }
  if (from.has_value_wrapper_simple()) {
    mutable_value_wrapper_simple()->::google::protobuf::testing::ValueMessage::MergeFrom(from.value_wrapper_simple());
  }
  if (from.has_value_wrapper_with_struct()) {
    mutable_value_wrapper_with_struct()->::google::protobuf::testing::ValueMessage::MergeFrom(from.value_wrapper_with_struct());
  }
  if (from.has_value_wrapper_with_list()) {
    mutable_value_wrapper_with_list()->::google::protobuf::testing::ValueMessage::MergeFrom(from.value_wrapper_with_list());
  }
  if (from.has_list_value_wrapper()) {
    mutable_list_value_wrapper()->::google::protobuf::testing::ListValueMessage::MergeFrom(from.list_value_wrapper());
  }
  if (from.has_top_level_value_simple()) {
    mutable_top_level_value_simple()->::google::protobuf::Value::MergeFrom(from.top_level_value_simple());
  }
  if (from.has_top_level_value_with_struct()) {
    mutable_top_level_value_with_struct()->::google::protobuf::Value::MergeFrom(from.top_level_value_with_struct());
  }
  if (from.has_top_level_value_with_list()) {
    mutable_top_level_value_with_list()->::google::protobuf::Value::MergeFrom(from.top_level_value_with_list());
  }
  if (from.has_top_level_listvalue()) {
    mutable_top_level_listvalue()->::google::protobuf::ListValue::MergeFrom(from.top_level_listvalue());
  }
  if (from.has_empty_any()) {
    mutable_empty_any()->::google::protobuf::testing::AnyMessage::MergeFrom(from.empty_any());
  }
  if (from.has_type_only_any()) {
    mutable_type_only_any()->::google::protobuf::testing::AnyMessage::MergeFrom(from.type_only_any());
  }
  if (from.has_recursive_any()) {
    mutable_recursive_any()->::google::protobuf::testing::AnyMessage::MergeFrom(from.recursive_any());
  }
  if (from.has_any_with_message_value()) {
    mutable_any_with_message_value()->::google::protobuf::testing::AnyMessage::MergeFrom(from.any_with_message_value());
  }
  if (from.has_any_with_nested_message()) {
    mutable_any_with_nested_message()->::google::protobuf::testing::AnyMessage::MergeFrom(from.any_with_nested_message());
  }
  if (from.has_any_with_message_containing_map()) {
    mutable_any_with_message_containing_map()->::google::protobuf::testing::AnyMessage::MergeFrom(from.any_with_message_containing_map());
  }
  if (from.has_any_with_message_containing_struct()) {
    mutable_any_with_message_containing_struct()->::google::protobuf::testing::AnyMessage::MergeFrom(from.any_with_message_containing_struct());
  }
  if (from.has_top_level_any()) {
    mutable_top_level_any()->::google::protobuf::Any::MergeFrom(from.top_level_any());
  }
  if (from.has_empty_map()) {
    mutable_empty_map()->::google::protobuf::testing::StringtoIntMap::MergeFrom(from.empty_map());
  }
  if (from.has_string_to_int()) {
    mutable_string_to_int()->::google::protobuf::testing::StringtoIntMap::MergeFrom(from.string_to_int());
  }
  if (from.has_int_to_string()) {
    mutable_int_to_string()->::google::protobuf::testing::IntToStringMap::MergeFrom(from.int_to_string());
  }
  if (from.has_mixed1()) {
    mutable_mixed1()->::google::protobuf::testing::MixedMap::MergeFrom(from.mixed1());
  }
  if (from.has_mixed2()) {
    mutable_mixed2()->::google::protobuf::testing::MixedMap2::MergeFrom(from.mixed2());
  }
  if (from.has_empty_mixed2()) {
    mutable_empty_mixed2()->::google::protobuf::testing::MixedMap2::MergeFrom(from.empty_mixed2());
  }
  if (from.has_map_of_objects()) {
    mutable_map_of_objects()->::google::protobuf::testing::MessageMap::MergeFrom(from.map_of_objects());
  }
  if (from.has_mixed_empty()) {
    mutable_mixed_empty()->::google::protobuf::testing::MixedMap::MergeFrom(from.mixed_empty());
  }
  if (from.has_message_map_empty()) {
    mutable_message_map_empty()->::google::protobuf::testing::MessageMap::MergeFrom(from.message_map_empty());
  }
  if (from.has_double_value()) {
    mutable_double_value()->::google::protobuf::testing::DoubleValueMessage::MergeFrom(from.double_value());
  }
  if (from.has_double_value_default()) {
    mutable_double_value_default()->::google::protobuf::testing::DoubleValueMessage::MergeFrom(from.double_value_default());
  }
}

void DefaultValueTestCases::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.DefaultValueTestCases)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DefaultValueTestCases::CopyFrom(const DefaultValueTestCases& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.DefaultValueTestCases)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DefaultValueTestCases::Swap(DefaultValueTestCases* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DefaultValueTestCases::InternalSwap(DefaultValueTestCases* other) {
  using std::swap;
  swap(empty_double_, other->empty_double_);
  swap(double_with_default_value_, other->double_with_default_value_);
  swap(double_with_nondefault_value_, other->double_with_nondefault_value_);
  swap(repeated_double_, other->repeated_double_);
  swap(nested_message_, other->nested_message_);
  swap(repeated_nested_message_, other->repeated_nested_message_);
  swap(double_message_with_oneof_, other->double_message_with_oneof_);
  swap(empty_struct_, other->empty_struct_);
  swap(empty_struct2_, other->empty_struct2_);
  swap(struct_with_null_value_, other->struct_with_null_value_);
  swap(struct_with_values_, other->struct_with_values_);
  swap(struct_with_nested_struct_, other->struct_with_nested_struct_);
  swap(struct_with_nested_list_, other->struct_with_nested_list_);
  swap(struct_with_list_of_nulls_, other->struct_with_list_of_nulls_);
  swap(struct_with_list_of_lists_, other->struct_with_list_of_lists_);
  swap(struct_with_list_of_structs_, other->struct_with_list_of_structs_);
  swap(top_level_struct_, other->top_level_struct_);
  swap(value_wrapper_simple_, other->value_wrapper_simple_);
  swap(value_wrapper_with_struct_, other->value_wrapper_with_struct_);
  swap(value_wrapper_with_list_, other->value_wrapper_with_list_);
  swap(list_value_wrapper_, other->list_value_wrapper_);
  swap(top_level_value_simple_, other->top_level_value_simple_);
  swap(top_level_value_with_struct_, other->top_level_value_with_struct_);
  swap(top_level_value_with_list_, other->top_level_value_with_list_);
  swap(top_level_listvalue_, other->top_level_listvalue_);
  swap(empty_any_, other->empty_any_);
  swap(type_only_any_, other->type_only_any_);
  swap(recursive_any_, other->recursive_any_);
  swap(any_with_message_value_, other->any_with_message_value_);
  swap(any_with_nested_message_, other->any_with_nested_message_);
  swap(any_with_message_containing_map_, other->any_with_message_containing_map_);
  swap(any_with_message_containing_struct_, other->any_with_message_containing_struct_);
  swap(top_level_any_, other->top_level_any_);
  swap(empty_map_, other->empty_map_);
  swap(string_to_int_, other->string_to_int_);
  swap(int_to_string_, other->int_to_string_);
  swap(mixed1_, other->mixed1_);
  swap(mixed2_, other->mixed2_);
  swap(empty_mixed2_, other->empty_mixed2_);
  swap(map_of_objects_, other->map_of_objects_);
  swap(mixed_empty_, other->mixed_empty_);
  swap(message_map_empty_, other->message_map_empty_);
  swap(double_value_, other->double_value_);
  swap(double_value_default_, other->double_value_default_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata DefaultValueTestCases::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void DoubleMessage::InitAsDefaultInstance() {
  ::google::protobuf::testing::_DoubleMessage_default_instance_._instance.get_mutable()->nested_message_ = const_cast< ::google::protobuf::testing::DoubleMessage*>(
      ::google::protobuf::testing::DoubleMessage::internal_default_instance());
  ::google::protobuf::testing::_DoubleMessage_default_instance_._instance.get_mutable()->double_wrapper_ = const_cast< ::google::protobuf::DoubleValue*>(
      ::google::protobuf::DoubleValue::internal_default_instance());
  ::google::protobuf::testing::_DoubleMessage_default_instance_.str_value_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::google::protobuf::testing::_DoubleMessage_default_instance_.num_value_ = GOOGLE_LONGLONG(0);
}
void DoubleMessage::clear_double_wrapper() {
  if (GetArenaNoVirtual() == NULL && double_wrapper_ != NULL) {
    delete double_wrapper_;
  }
  double_wrapper_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DoubleMessage::kDoubleValueFieldNumber;
const int DoubleMessage::kRepeatedDoubleFieldNumber;
const int DoubleMessage::kNestedMessageFieldNumber;
const int DoubleMessage::kRepeatedNestedMessageFieldNumber;
const int DoubleMessage::kDoubleWrapperFieldNumber;
const int DoubleMessage::kStrValueFieldNumber;
const int DoubleMessage::kNumValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DoubleMessage::DoubleMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DoubleMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.DoubleMessage)
}
DoubleMessage::DoubleMessage(const DoubleMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      repeated_double_(from.repeated_double_),
      repeated_nested_message_(from.repeated_nested_message_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_nested_message()) {
    nested_message_ = new ::google::protobuf::testing::DoubleMessage(*from.nested_message_);
  } else {
    nested_message_ = NULL;
  }
  if (from.has_double_wrapper()) {
    double_wrapper_ = new ::google::protobuf::DoubleValue(*from.double_wrapper_);
  } else {
    double_wrapper_ = NULL;
  }
  double_value_ = from.double_value_;
  clear_has_value();
  switch (from.value_case()) {
    case kStrValue: {
      set_str_value(from.str_value());
      break;
    }
    case kNumValue: {
      set_num_value(from.num_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.DoubleMessage)
}

void DoubleMessage::SharedCtor() {
  ::memset(&nested_message_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&double_value_) -
      reinterpret_cast<char*>(&nested_message_)) + sizeof(double_value_));
  clear_has_value();
}

DoubleMessage::~DoubleMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.DoubleMessage)
  SharedDtor();
}

void DoubleMessage::SharedDtor() {
  if (this != internal_default_instance()) delete nested_message_;
  if (this != internal_default_instance()) delete double_wrapper_;
  if (has_value()) {
    clear_value();
  }
}

void DoubleMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* DoubleMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const DoubleMessage& DoubleMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DoubleMessage.base);
  return *internal_default_instance();
}


void DoubleMessage::clear_value() {
// @@protoc_insertion_point(one_of_clear_start:google.protobuf.testing.DoubleMessage)
  switch (value_case()) {
    case kStrValue: {
      value_.str_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case kNumValue: {
      // No need to clear
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = VALUE_NOT_SET;
}


void DoubleMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.DoubleMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  repeated_double_.Clear();
  repeated_nested_message_.Clear();
  if (GetArenaNoVirtual() == NULL && nested_message_ != NULL) {
    delete nested_message_;
  }
  nested_message_ = NULL;
  if (GetArenaNoVirtual() == NULL && double_wrapper_ != NULL) {
    delete double_wrapper_;
  }
  double_wrapper_ = NULL;
  double_value_ = 0;
  clear_value();
  _internal_metadata_.Clear();
}

bool DoubleMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.DoubleMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // double double_value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(9u /* 9 & 0xFF */)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, &double_value_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated double repeated_double = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitive<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 input, this->mutable_repeated_double())));
        } else if (
            static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(17u /* 17 & 0xFF */)) {
          DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitiveNoInline<
                   double, ::google::protobuf::internal::WireFormatLite::TYPE_DOUBLE>(
                 1, 18u, input, this->mutable_repeated_double())));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.DoubleMessage nested_message = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_nested_message()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .google.protobuf.testing.DoubleMessage repeated_nested_message = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_repeated_nested_message()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.DoubleValue double_wrapper = 100;
      case 100: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 802 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_wrapper()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string str_value = 112;
      case 112: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(130u /* 898 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_str_value()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->str_value().data(), static_cast<int>(this->str_value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.DoubleMessage.str_value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 num_value = 113;
      case 113: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(136u /* 904 & 0xFF */)) {
          clear_value();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &value_.num_value_)));
          set_has_num_value();
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.DoubleMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.DoubleMessage)
  return false;
#undef DO_
}

void DoubleMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.DoubleMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // double double_value = 1;
  if (this->double_value() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteDouble(1, this->double_value(), output);
  }

  // repeated double repeated_double = 2;
  if (this->repeated_double_size() > 0) {
    ::google::protobuf::internal::WireFormatLite::WriteTag(2, ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED, output);
    output->WriteVarint32(static_cast< ::google::protobuf::uint32>(
        _repeated_double_cached_byte_size_));
    ::google::protobuf::internal::WireFormatLite::WriteDoubleArray(
      this->repeated_double().data(), this->repeated_double_size(), output);
  }

  // .google.protobuf.testing.DoubleMessage nested_message = 3;
  if (this->has_nested_message()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, this->_internal_nested_message(), output);
  }

  // repeated .google.protobuf.testing.DoubleMessage repeated_nested_message = 4;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->repeated_nested_message_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4,
      this->repeated_nested_message(static_cast<int>(i)),
      output);
  }

  // .google.protobuf.DoubleValue double_wrapper = 100;
  if (this->has_double_wrapper()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      100, this->_internal_double_wrapper(), output);
  }

  // string str_value = 112;
  if (has_str_value()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_value().data(), static_cast<int>(this->str_value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.DoubleMessage.str_value");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      112, this->str_value(), output);
  }

  // int64 num_value = 113;
  if (has_num_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(113, this->num_value(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.DoubleMessage)
}

::google::protobuf::uint8* DoubleMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.DoubleMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // double double_value = 1;
  if (this->double_value() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteDoubleToArray(1, this->double_value(), target);
  }

  // repeated double repeated_double = 2;
  if (this->repeated_double_size() > 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteTagToArray(
      2,
      ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED,
      target);
    target = ::google::protobuf::io::CodedOutputStream::WriteVarint32ToArray(
        static_cast< ::google::protobuf::int32>(
            _repeated_double_cached_byte_size_), target);
    target = ::google::protobuf::internal::WireFormatLite::
      WriteDoubleNoTagToArray(this->repeated_double_, target);
  }

  // .google.protobuf.testing.DoubleMessage nested_message = 3;
  if (this->has_nested_message()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, this->_internal_nested_message(), deterministic, target);
  }

  // repeated .google.protobuf.testing.DoubleMessage repeated_nested_message = 4;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->repeated_nested_message_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->repeated_nested_message(static_cast<int>(i)), deterministic, target);
  }

  // .google.protobuf.DoubleValue double_wrapper = 100;
  if (this->has_double_wrapper()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        100, this->_internal_double_wrapper(), deterministic, target);
  }

  // string str_value = 112;
  if (has_str_value()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str_value().data(), static_cast<int>(this->str_value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.DoubleMessage.str_value");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        112, this->str_value(), target);
  }

  // int64 num_value = 113;
  if (has_num_value()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(113, this->num_value(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.DoubleMessage)
  return target;
}

size_t DoubleMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.DoubleMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // repeated double repeated_double = 2;
  {
    unsigned int count = static_cast<unsigned int>(this->repeated_double_size());
    size_t data_size = 8UL * count;
    if (data_size > 0) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
            static_cast< ::google::protobuf::int32>(data_size));
    }
    int cached_size = ::google::protobuf::internal::ToCachedSize(data_size);
    GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
    _repeated_double_cached_byte_size_ = cached_size;
    GOOGLE_SAFE_CONCURRENT_WRITES_END();
    total_size += data_size;
  }

  // repeated .google.protobuf.testing.DoubleMessage repeated_nested_message = 4;
  {
    unsigned int count = static_cast<unsigned int>(this->repeated_nested_message_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->repeated_nested_message(static_cast<int>(i)));
    }
  }

  // .google.protobuf.testing.DoubleMessage nested_message = 3;
  if (this->has_nested_message()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *nested_message_);
  }

  // .google.protobuf.DoubleValue double_wrapper = 100;
  if (this->has_double_wrapper()) {
    total_size += 2 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double_wrapper_);
  }

  // double double_value = 1;
  if (this->double_value() != 0) {
    total_size += 1 + 8;
  }

  switch (value_case()) {
    // string str_value = 112;
    case kStrValue: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->str_value());
      break;
    }
    // int64 num_value = 113;
    case kNumValue: {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->num_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DoubleMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.DoubleMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const DoubleMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const DoubleMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.DoubleMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.DoubleMessage)
    MergeFrom(*source);
  }
}

void DoubleMessage::MergeFrom(const DoubleMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.DoubleMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  repeated_double_.MergeFrom(from.repeated_double_);
  repeated_nested_message_.MergeFrom(from.repeated_nested_message_);
  if (from.has_nested_message()) {
    mutable_nested_message()->::google::protobuf::testing::DoubleMessage::MergeFrom(from.nested_message());
  }
  if (from.has_double_wrapper()) {
    mutable_double_wrapper()->::google::protobuf::DoubleValue::MergeFrom(from.double_wrapper());
  }
  if (from.double_value() != 0) {
    set_double_value(from.double_value());
  }
  switch (from.value_case()) {
    case kStrValue: {
      set_str_value(from.str_value());
      break;
    }
    case kNumValue: {
      set_num_value(from.num_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
}

void DoubleMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.DoubleMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DoubleMessage::CopyFrom(const DoubleMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.DoubleMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DoubleMessage::Swap(DoubleMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DoubleMessage::InternalSwap(DoubleMessage* other) {
  using std::swap;
  repeated_double_.InternalSwap(&other->repeated_double_);
  CastToBase(&repeated_nested_message_)->InternalSwap(CastToBase(&other->repeated_nested_message_));
  swap(nested_message_, other->nested_message_);
  swap(double_wrapper_, other->double_wrapper_);
  swap(double_value_, other->double_value_);
  swap(value_, other->value_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata DoubleMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void StructMessage::InitAsDefaultInstance() {
  ::google::protobuf::testing::_StructMessage_default_instance_._instance.get_mutable()->struct__ = const_cast< ::google::protobuf::Struct*>(
      ::google::protobuf::Struct::internal_default_instance());
}
void StructMessage::clear_struct_() {
  if (GetArenaNoVirtual() == NULL && struct__ != NULL) {
    delete struct__;
  }
  struct__ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int StructMessage::kStructFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

StructMessage::StructMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StructMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.StructMessage)
}
StructMessage::StructMessage(const StructMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_struct_()) {
    struct__ = new ::google::protobuf::Struct(*from.struct__);
  } else {
    struct__ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.StructMessage)
}

void StructMessage::SharedCtor() {
  struct__ = NULL;
}

StructMessage::~StructMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.StructMessage)
  SharedDtor();
}

void StructMessage::SharedDtor() {
  if (this != internal_default_instance()) delete struct__;
}

void StructMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* StructMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const StructMessage& StructMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StructMessage.base);
  return *internal_default_instance();
}


void StructMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.StructMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && struct__ != NULL) {
    delete struct__;
  }
  struct__ = NULL;
  _internal_metadata_.Clear();
}

bool StructMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.StructMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Struct struct = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.StructMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.StructMessage)
  return false;
#undef DO_
}

void StructMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.StructMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Struct struct = 1;
  if (this->has_struct_()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_struct_(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.StructMessage)
}

::google::protobuf::uint8* StructMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.StructMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Struct struct = 1;
  if (this->has_struct_()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_struct_(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.StructMessage)
  return target;
}

size_t StructMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.StructMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.Struct struct = 1;
  if (this->has_struct_()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct__);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void StructMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.StructMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const StructMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const StructMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.StructMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.StructMessage)
    MergeFrom(*source);
  }
}

void StructMessage::MergeFrom(const StructMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.StructMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_struct_()) {
    mutable_struct_()->::google::protobuf::Struct::MergeFrom(from.struct_());
  }
}

void StructMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.StructMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StructMessage::CopyFrom(const StructMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.StructMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void StructMessage::Swap(StructMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void StructMessage::InternalSwap(StructMessage* other) {
  using std::swap;
  swap(struct__, other->struct__);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata StructMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void ValueMessage::InitAsDefaultInstance() {
  ::google::protobuf::testing::_ValueMessage_default_instance_._instance.get_mutable()->value_ = const_cast< ::google::protobuf::Value*>(
      ::google::protobuf::Value::internal_default_instance());
}
void ValueMessage::clear_value() {
  if (GetArenaNoVirtual() == NULL && value_ != NULL) {
    delete value_;
  }
  value_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ValueMessage::kValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ValueMessage::ValueMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_ValueMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.ValueMessage)
}
ValueMessage::ValueMessage(const ValueMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_value()) {
    value_ = new ::google::protobuf::Value(*from.value_);
  } else {
    value_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.ValueMessage)
}

void ValueMessage::SharedCtor() {
  value_ = NULL;
}

ValueMessage::~ValueMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.ValueMessage)
  SharedDtor();
}

void ValueMessage::SharedDtor() {
  if (this != internal_default_instance()) delete value_;
}

void ValueMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* ValueMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ValueMessage& ValueMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_ValueMessage.base);
  return *internal_default_instance();
}


void ValueMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.ValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && value_ != NULL) {
    delete value_;
  }
  value_ = NULL;
  _internal_metadata_.Clear();
}

bool ValueMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.ValueMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Value value = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.ValueMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.ValueMessage)
  return false;
#undef DO_
}

void ValueMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.ValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Value value = 1;
  if (this->has_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_value(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.ValueMessage)
}

::google::protobuf::uint8* ValueMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.ValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Value value = 1;
  if (this->has_value()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_value(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.ValueMessage)
  return target;
}

size_t ValueMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.ValueMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.Value value = 1;
  if (this->has_value()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *value_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ValueMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.ValueMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const ValueMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ValueMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.ValueMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.ValueMessage)
    MergeFrom(*source);
  }
}

void ValueMessage::MergeFrom(const ValueMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.ValueMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_value()) {
    mutable_value()->::google::protobuf::Value::MergeFrom(from.value());
  }
}

void ValueMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.ValueMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ValueMessage::CopyFrom(const ValueMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.ValueMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ValueMessage::Swap(ValueMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ValueMessage::InternalSwap(ValueMessage* other) {
  using std::swap;
  swap(value_, other->value_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata ValueMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void ListValueMessage::InitAsDefaultInstance() {
  ::google::protobuf::testing::_ListValueMessage_default_instance_._instance.get_mutable()->shopping_list_ = const_cast< ::google::protobuf::ListValue*>(
      ::google::protobuf::ListValue::internal_default_instance());
}
void ListValueMessage::clear_shopping_list() {
  if (GetArenaNoVirtual() == NULL && shopping_list_ != NULL) {
    delete shopping_list_;
  }
  shopping_list_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int ListValueMessage::kShoppingListFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

ListValueMessage::ListValueMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_ListValueMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.ListValueMessage)
}
ListValueMessage::ListValueMessage(const ListValueMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_shopping_list()) {
    shopping_list_ = new ::google::protobuf::ListValue(*from.shopping_list_);
  } else {
    shopping_list_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.ListValueMessage)
}

void ListValueMessage::SharedCtor() {
  shopping_list_ = NULL;
}

ListValueMessage::~ListValueMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.ListValueMessage)
  SharedDtor();
}

void ListValueMessage::SharedDtor() {
  if (this != internal_default_instance()) delete shopping_list_;
}

void ListValueMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* ListValueMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const ListValueMessage& ListValueMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_ListValueMessage.base);
  return *internal_default_instance();
}


void ListValueMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.ListValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && shopping_list_ != NULL) {
    delete shopping_list_;
  }
  shopping_list_ = NULL;
  _internal_metadata_.Clear();
}

bool ListValueMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.ListValueMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.ListValue shopping_list = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_shopping_list()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.ListValueMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.ListValueMessage)
  return false;
#undef DO_
}

void ListValueMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.ListValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.ListValue shopping_list = 1;
  if (this->has_shopping_list()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_shopping_list(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.ListValueMessage)
}

::google::protobuf::uint8* ListValueMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.ListValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.ListValue shopping_list = 1;
  if (this->has_shopping_list()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_shopping_list(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.ListValueMessage)
  return target;
}

size_t ListValueMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.ListValueMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.ListValue shopping_list = 1;
  if (this->has_shopping_list()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *shopping_list_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void ListValueMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.ListValueMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const ListValueMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const ListValueMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.ListValueMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.ListValueMessage)
    MergeFrom(*source);
  }
}

void ListValueMessage::MergeFrom(const ListValueMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.ListValueMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_shopping_list()) {
    mutable_shopping_list()->::google::protobuf::ListValue::MergeFrom(from.shopping_list());
  }
}

void ListValueMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.ListValueMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void ListValueMessage::CopyFrom(const ListValueMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.ListValueMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ListValueMessage::Swap(ListValueMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void ListValueMessage::InternalSwap(ListValueMessage* other) {
  using std::swap;
  swap(shopping_list_, other->shopping_list_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata ListValueMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void RequestMessage::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int RequestMessage::kContentFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

RequestMessage::RequestMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_RequestMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.RequestMessage)
}
RequestMessage::RequestMessage(const RequestMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  content_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.content().size() > 0) {
    content_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_);
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.RequestMessage)
}

void RequestMessage::SharedCtor() {
  content_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

RequestMessage::~RequestMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.RequestMessage)
  SharedDtor();
}

void RequestMessage::SharedDtor() {
  content_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void RequestMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* RequestMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const RequestMessage& RequestMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_RequestMessage.base);
  return *internal_default_instance();
}


void RequestMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.RequestMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  content_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

bool RequestMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.RequestMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string content = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_content()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->content().data(), static_cast<int>(this->content().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.RequestMessage.content"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.RequestMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.RequestMessage)
  return false;
#undef DO_
}

void RequestMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.RequestMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string content = 1;
  if (this->content().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content().data(), static_cast<int>(this->content().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.RequestMessage.content");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->content(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.RequestMessage)
}

::google::protobuf::uint8* RequestMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.RequestMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string content = 1;
  if (this->content().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->content().data(), static_cast<int>(this->content().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.RequestMessage.content");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->content(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.RequestMessage)
  return target;
}

size_t RequestMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.RequestMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string content = 1;
  if (this->content().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->content());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void RequestMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.RequestMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const RequestMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const RequestMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.RequestMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.RequestMessage)
    MergeFrom(*source);
  }
}

void RequestMessage::MergeFrom(const RequestMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.RequestMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.content().size() > 0) {

    content_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.content_);
  }
}

void RequestMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.RequestMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RequestMessage::CopyFrom(const RequestMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.RequestMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void RequestMessage::Swap(RequestMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void RequestMessage::InternalSwap(RequestMessage* other) {
  using std::swap;
  content_.Swap(&other->content_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata RequestMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void AnyMessage::InitAsDefaultInstance() {
  ::google::protobuf::testing::_AnyMessage_default_instance_._instance.get_mutable()->any_ = const_cast< ::google::protobuf::Any*>(
      ::google::protobuf::Any::internal_default_instance());
  ::google::protobuf::testing::_AnyMessage_default_instance_._instance.get_mutable()->data_ = const_cast< ::google::protobuf::testing::AnyData*>(
      ::google::protobuf::testing::AnyData::internal_default_instance());
}
void AnyMessage::clear_any() {
  if (GetArenaNoVirtual() == NULL && any_ != NULL) {
    delete any_;
  }
  any_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int AnyMessage::kAnyFieldNumber;
const int AnyMessage::kDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

AnyMessage::AnyMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.AnyMessage)
}
AnyMessage::AnyMessage(const AnyMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_any()) {
    any_ = new ::google::protobuf::Any(*from.any_);
  } else {
    any_ = NULL;
  }
  if (from.has_data()) {
    data_ = new ::google::protobuf::testing::AnyData(*from.data_);
  } else {
    data_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.AnyMessage)
}

void AnyMessage::SharedCtor() {
  ::memset(&any_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&data_) -
      reinterpret_cast<char*>(&any_)) + sizeof(data_));
}

AnyMessage::~AnyMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.AnyMessage)
  SharedDtor();
}

void AnyMessage::SharedDtor() {
  if (this != internal_default_instance()) delete any_;
  if (this != internal_default_instance()) delete data_;
}

void AnyMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* AnyMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const AnyMessage& AnyMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyMessage.base);
  return *internal_default_instance();
}


void AnyMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.AnyMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && any_ != NULL) {
    delete any_;
  }
  any_ = NULL;
  if (GetArenaNoVirtual() == NULL && data_ != NULL) {
    delete data_;
  }
  data_ = NULL;
  _internal_metadata_.Clear();
}

bool AnyMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.AnyMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.Any any = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_any()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyData data = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.AnyMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.AnyMessage)
  return false;
#undef DO_
}

void AnyMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.AnyMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Any any = 1;
  if (this->has_any()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_any(), output);
  }

  // .google.protobuf.testing.AnyData data = 2;
  if (this->has_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, this->_internal_data(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.AnyMessage)
}

::google::protobuf::uint8* AnyMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.AnyMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.Any any = 1;
  if (this->has_any()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_any(), deterministic, target);
  }

  // .google.protobuf.testing.AnyData data = 2;
  if (this->has_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, this->_internal_data(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.AnyMessage)
  return target;
}

size_t AnyMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.AnyMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.Any any = 1;
  if (this->has_any()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *any_);
  }

  // .google.protobuf.testing.AnyData data = 2;
  if (this->has_data()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *data_);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AnyMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.AnyMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const AnyMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const AnyMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.AnyMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.AnyMessage)
    MergeFrom(*source);
  }
}

void AnyMessage::MergeFrom(const AnyMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.AnyMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_any()) {
    mutable_any()->::google::protobuf::Any::MergeFrom(from.any());
  }
  if (from.has_data()) {
    mutable_data()->::google::protobuf::testing::AnyData::MergeFrom(from.data());
  }
}

void AnyMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.AnyMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AnyMessage::CopyFrom(const AnyMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.AnyMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void AnyMessage::Swap(AnyMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void AnyMessage::InternalSwap(AnyMessage* other) {
  using std::swap;
  swap(any_, other->any_);
  swap(data_, other->data_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata AnyMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

AnyData_MapDataEntry_DoNotUse::AnyData_MapDataEntry_DoNotUse() {}
AnyData_MapDataEntry_DoNotUse::AnyData_MapDataEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
void AnyData_MapDataEntry_DoNotUse::MergeFrom(const AnyData_MapDataEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata AnyData_MapDataEntry_DoNotUse::GetMetadata() const {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[7];
}
void AnyData_MapDataEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}


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

void AnyData::InitAsDefaultInstance() {
  ::google::protobuf::testing::_AnyData_default_instance_._instance.get_mutable()->nested_data_ = const_cast< ::google::protobuf::testing::AnyData*>(
      ::google::protobuf::testing::AnyData::internal_default_instance());
  ::google::protobuf::testing::_AnyData_default_instance_._instance.get_mutable()->struct_data_ = const_cast< ::google::protobuf::Struct*>(
      ::google::protobuf::Struct::internal_default_instance());
}
void AnyData::clear_struct_data() {
  if (GetArenaNoVirtual() == NULL && struct_data_ != NULL) {
    delete struct_data_;
  }
  struct_data_ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int AnyData::kAttrFieldNumber;
const int AnyData::kStrFieldNumber;
const int AnyData::kMsgsFieldNumber;
const int AnyData::kNestedDataFieldNumber;
const int AnyData::kMapDataFieldNumber;
const int AnyData::kStructDataFieldNumber;
const int AnyData::kRepeatedDataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

AnyData::AnyData()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyData.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.AnyData)
}
AnyData::AnyData(const AnyData& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      msgs_(from.msgs_),
      repeated_data_(from.repeated_data_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  map_data_.MergeFrom(from.map_data_);
  str_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.str().size() > 0) {
    str_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.str_);
  }
  if (from.has_nested_data()) {
    nested_data_ = new ::google::protobuf::testing::AnyData(*from.nested_data_);
  } else {
    nested_data_ = NULL;
  }
  if (from.has_struct_data()) {
    struct_data_ = new ::google::protobuf::Struct(*from.struct_data_);
  } else {
    struct_data_ = NULL;
  }
  attr_ = from.attr_;
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.AnyData)
}

void AnyData::SharedCtor() {
  str_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&nested_data_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&attr_) -
      reinterpret_cast<char*>(&nested_data_)) + sizeof(attr_));
}

AnyData::~AnyData() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.AnyData)
  SharedDtor();
}

void AnyData::SharedDtor() {
  str_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete nested_data_;
  if (this != internal_default_instance()) delete struct_data_;
}

void AnyData::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* AnyData::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const AnyData& AnyData::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_AnyData.base);
  return *internal_default_instance();
}


void AnyData::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.AnyData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  msgs_.Clear();
  map_data_.Clear();
  repeated_data_.Clear();
  str_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == NULL && nested_data_ != NULL) {
    delete nested_data_;
  }
  nested_data_ = NULL;
  if (GetArenaNoVirtual() == NULL && struct_data_ != NULL) {
    delete struct_data_;
  }
  struct_data_ = NULL;
  attr_ = 0;
  _internal_metadata_.Clear();
}

bool AnyData::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.AnyData)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 attr = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &attr_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string str = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_str()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->str().data(), static_cast<int>(this->str().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.AnyData.str"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated string msgs = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u /* 26 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->add_msgs()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->msgs(this->msgs_size() - 1).data(),
            static_cast<int>(this->msgs(this->msgs_size() - 1).length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.AnyData.msgs"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.AnyData nested_data = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_nested_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, string> map_data = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
          AnyData_MapDataEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              AnyData_MapDataEntry_DoNotUse,
              ::std::string, ::std::string,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              0 >,
            ::google::protobuf::Map< ::std::string, ::std::string > > parser(&map_data_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.AnyData.MapDataEntry.key"));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.AnyData.MapDataEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Struct struct_data = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(66u /* 66 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_struct_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // repeated .google.protobuf.testing.AnyData repeated_data = 9;
      case 9: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(74u /* 74 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
                input, add_repeated_data()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.AnyData)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.AnyData)
  return false;
#undef DO_
}

void AnyData::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.AnyData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 attr = 1;
  if (this->attr() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->attr(), output);
  }

  // string str = 2;
  if (this->str().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str().data(), static_cast<int>(this->str().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.AnyData.str");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->str(), output);
  }

  // repeated string msgs = 3;
  for (int i = 0, n = this->msgs_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->msgs(i).data(), static_cast<int>(this->msgs(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.AnyData.msgs");
    ::google::protobuf::internal::WireFormatLite::WriteString(
      3, this->msgs(i), output);
  }

  // .google.protobuf.testing.AnyData nested_data = 4;
  if (this->has_nested_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, this->_internal_nested_data(), output);
  }

  // map<string, string> map_data = 7;
  if (!this->map_data().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.AnyData.MapDataEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.AnyData.MapDataEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->map_data().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map_data().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->map_data().begin();
          it != this->map_data().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<AnyData_MapDataEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_data_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            7, *entry, output);
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<AnyData_MapDataEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->map_data().begin();
          it != this->map_data().end(); ++it) {
        entry.reset(map_data_.NewEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            7, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  // .google.protobuf.Struct struct_data = 8;
  if (this->has_struct_data()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      8, this->_internal_struct_data(), output);
  }

  // repeated .google.protobuf.testing.AnyData repeated_data = 9;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->repeated_data_size()); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      9,
      this->repeated_data(static_cast<int>(i)),
      output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.AnyData)
}

::google::protobuf::uint8* AnyData::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.AnyData)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 attr = 1;
  if (this->attr() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->attr(), target);
  }

  // string str = 2;
  if (this->str().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->str().data(), static_cast<int>(this->str().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.AnyData.str");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->str(), target);
  }

  // repeated string msgs = 3;
  for (int i = 0, n = this->msgs_size(); i < n; i++) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->msgs(i).data(), static_cast<int>(this->msgs(i).length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.AnyData.msgs");
    target = ::google::protobuf::internal::WireFormatLite::
      WriteStringToArray(3, this->msgs(i), target);
  }

  // .google.protobuf.testing.AnyData nested_data = 4;
  if (this->has_nested_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, this->_internal_nested_data(), deterministic, target);
  }

  // map<string, string> map_data = 7;
  if (!this->map_data().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.AnyData.MapDataEntry.key");
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.AnyData.MapDataEntry.value");
      }
    };

    if (deterministic &&
        this->map_data().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map_data().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::std::string >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->map_data().begin();
          it != this->map_data().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<AnyData_MapDataEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_data_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       7, *entry, deterministic, target);
;
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<AnyData_MapDataEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
          it = this->map_data().begin();
          it != this->map_data().end(); ++it) {
        entry.reset(map_data_.NewEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       7, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  // .google.protobuf.Struct struct_data = 8;
  if (this->has_struct_data()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        8, this->_internal_struct_data(), deterministic, target);
  }

  // repeated .google.protobuf.testing.AnyData repeated_data = 9;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->repeated_data_size()); i < n; i++) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        9, this->repeated_data(static_cast<int>(i)), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.AnyData)
  return target;
}

size_t AnyData::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.AnyData)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // repeated string msgs = 3;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->msgs_size());
  for (int i = 0, n = this->msgs_size(); i < n; i++) {
    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
      this->msgs(i));
  }

  // map<string, string> map_data = 7;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->map_data_size());
  {
    ::std::unique_ptr<AnyData_MapDataEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::std::string >::const_iterator
        it = this->map_data().begin();
        it != this->map_data().end(); ++it) {
      entry.reset(map_data_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // repeated .google.protobuf.testing.AnyData repeated_data = 9;
  {
    unsigned int count = static_cast<unsigned int>(this->repeated_data_size());
    total_size += 1UL * count;
    for (unsigned int i = 0; i < count; i++) {
      total_size +=
        ::google::protobuf::internal::WireFormatLite::MessageSize(
          this->repeated_data(static_cast<int>(i)));
    }
  }

  // string str = 2;
  if (this->str().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->str());
  }

  // .google.protobuf.testing.AnyData nested_data = 4;
  if (this->has_nested_data()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *nested_data_);
  }

  // .google.protobuf.Struct struct_data = 8;
  if (this->has_struct_data()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *struct_data_);
  }

  // int32 attr = 1;
  if (this->attr() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->attr());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void AnyData::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.AnyData)
  GOOGLE_DCHECK_NE(&from, this);
  const AnyData* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const AnyData>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.AnyData)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.AnyData)
    MergeFrom(*source);
  }
}

void AnyData::MergeFrom(const AnyData& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.AnyData)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  msgs_.MergeFrom(from.msgs_);
  map_data_.MergeFrom(from.map_data_);
  repeated_data_.MergeFrom(from.repeated_data_);
  if (from.str().size() > 0) {

    str_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.str_);
  }
  if (from.has_nested_data()) {
    mutable_nested_data()->::google::protobuf::testing::AnyData::MergeFrom(from.nested_data());
  }
  if (from.has_struct_data()) {
    mutable_struct_data()->::google::protobuf::Struct::MergeFrom(from.struct_data());
  }
  if (from.attr() != 0) {
    set_attr(from.attr());
  }
}

void AnyData::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.AnyData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void AnyData::CopyFrom(const AnyData& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.AnyData)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void AnyData::Swap(AnyData* other) {
  if (other == this) return;
  InternalSwap(other);
}
void AnyData::InternalSwap(AnyData* other) {
  using std::swap;
  msgs_.InternalSwap(CastToBase(&other->msgs_));
  map_data_.Swap(&other->map_data_);
  CastToBase(&repeated_data_)->InternalSwap(CastToBase(&other->repeated_data_));
  str_.Swap(&other->str_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(nested_data_, other->nested_data_);
  swap(struct_data_, other->struct_data_);
  swap(attr_, other->attr_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata AnyData::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

StringtoIntMap_MapEntry_DoNotUse::StringtoIntMap_MapEntry_DoNotUse() {}
StringtoIntMap_MapEntry_DoNotUse::StringtoIntMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
void StringtoIntMap_MapEntry_DoNotUse::MergeFrom(const StringtoIntMap_MapEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata StringtoIntMap_MapEntry_DoNotUse::GetMetadata() const {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[9];
}
void StringtoIntMap_MapEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}


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

void StringtoIntMap::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int StringtoIntMap::kMapFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

StringtoIntMap::StringtoIntMap()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StringtoIntMap.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.StringtoIntMap)
}
StringtoIntMap::StringtoIntMap(const StringtoIntMap& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  map_.MergeFrom(from.map_);
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.StringtoIntMap)
}

void StringtoIntMap::SharedCtor() {
}

StringtoIntMap::~StringtoIntMap() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.StringtoIntMap)
  SharedDtor();
}

void StringtoIntMap::SharedDtor() {
}

void StringtoIntMap::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* StringtoIntMap::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const StringtoIntMap& StringtoIntMap::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_StringtoIntMap.base);
  return *internal_default_instance();
}


void StringtoIntMap::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.StringtoIntMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  map_.Clear();
  _internal_metadata_.Clear();
}

bool StringtoIntMap::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.StringtoIntMap)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // map<string, int32> map = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          StringtoIntMap_MapEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              StringtoIntMap_MapEntry_DoNotUse,
              ::std::string, ::google::protobuf::int32,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
              0 >,
            ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 > > parser(&map_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.StringtoIntMap.MapEntry.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.StringtoIntMap)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.StringtoIntMap)
  return false;
#undef DO_
}

void StringtoIntMap::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.StringtoIntMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, int32> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.StringtoIntMap.MapEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<StringtoIntMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<StringtoIntMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.StringtoIntMap)
}

::google::protobuf::uint8* StringtoIntMap::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.StringtoIntMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, int32> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.StringtoIntMap.MapEntry.key");
      }
    };

    if (deterministic &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<StringtoIntMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<StringtoIntMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.StringtoIntMap)
  return target;
}

size_t StringtoIntMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.StringtoIntMap)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // map<string, int32> map = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->map_size());
  {
    ::std::unique_ptr<StringtoIntMap_MapEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::google::protobuf::int32 >::const_iterator
        it = this->map().begin();
        it != this->map().end(); ++it) {
      entry.reset(map_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void StringtoIntMap::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.StringtoIntMap)
  GOOGLE_DCHECK_NE(&from, this);
  const StringtoIntMap* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const StringtoIntMap>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.StringtoIntMap)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.StringtoIntMap)
    MergeFrom(*source);
  }
}

void StringtoIntMap::MergeFrom(const StringtoIntMap& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.StringtoIntMap)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  map_.MergeFrom(from.map_);
}

void StringtoIntMap::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.StringtoIntMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StringtoIntMap::CopyFrom(const StringtoIntMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.StringtoIntMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void StringtoIntMap::Swap(StringtoIntMap* other) {
  if (other == this) return;
  InternalSwap(other);
}
void StringtoIntMap::InternalSwap(StringtoIntMap* other) {
  using std::swap;
  map_.Swap(&other->map_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata StringtoIntMap::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

IntToStringMap_MapEntry_DoNotUse::IntToStringMap_MapEntry_DoNotUse() {}
IntToStringMap_MapEntry_DoNotUse::IntToStringMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
void IntToStringMap_MapEntry_DoNotUse::MergeFrom(const IntToStringMap_MapEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata IntToStringMap_MapEntry_DoNotUse::GetMetadata() const {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[11];
}
void IntToStringMap_MapEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}


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

void IntToStringMap::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int IntToStringMap::kMapFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

IntToStringMap::IntToStringMap()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_IntToStringMap.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.IntToStringMap)
}
IntToStringMap::IntToStringMap(const IntToStringMap& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  map_.MergeFrom(from.map_);
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.IntToStringMap)
}

void IntToStringMap::SharedCtor() {
}

IntToStringMap::~IntToStringMap() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.IntToStringMap)
  SharedDtor();
}

void IntToStringMap::SharedDtor() {
}

void IntToStringMap::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* IntToStringMap::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const IntToStringMap& IntToStringMap::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_IntToStringMap.base);
  return *internal_default_instance();
}


void IntToStringMap::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.IntToStringMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  map_.Clear();
  _internal_metadata_.Clear();
}

bool IntToStringMap::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.IntToStringMap)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // map<int32, string> map = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          IntToStringMap_MapEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              IntToStringMap_MapEntry_DoNotUse,
              ::google::protobuf::int32, ::std::string,
              ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              0 >,
            ::google::protobuf::Map< ::google::protobuf::int32, ::std::string > > parser(&map_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.value().data(), static_cast<int>(parser.value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.IntToStringMap.MapEntry.value"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.IntToStringMap)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.IntToStringMap)
  return false;
#undef DO_
}

void IntToStringMap::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.IntToStringMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<int32, string> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_pointer
        ConstPtr;
    typedef ::google::protobuf::internal::SortItem< ::google::protobuf::int32, ConstPtr > SortItem;
    typedef ::google::protobuf::internal::CompareByFirstField<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.IntToStringMap.MapEntry.value");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<IntToStringMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)].second->first, items[static_cast<ptrdiff_t>(i)].second->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)].second);
      }
    } else {
      ::std::unique_ptr<IntToStringMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.IntToStringMap)
}

::google::protobuf::uint8* IntToStringMap::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.IntToStringMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<int32, string> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_pointer
        ConstPtr;
    typedef ::google::protobuf::internal::SortItem< ::google::protobuf::int32, ConstPtr > SortItem;
    typedef ::google::protobuf::internal::CompareByFirstField<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.IntToStringMap.MapEntry.value");
      }
    };

    if (deterministic &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<IntToStringMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)].second->first, items[static_cast<ptrdiff_t>(i)].second->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)].second);
      }
    } else {
      ::std::unique_ptr<IntToStringMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.IntToStringMap)
  return target;
}

size_t IntToStringMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.IntToStringMap)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // map<int32, string> map = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->map_size());
  {
    ::std::unique_ptr<IntToStringMap_MapEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::google::protobuf::int32, ::std::string >::const_iterator
        it = this->map().begin();
        it != this->map().end(); ++it) {
      entry.reset(map_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void IntToStringMap::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.IntToStringMap)
  GOOGLE_DCHECK_NE(&from, this);
  const IntToStringMap* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const IntToStringMap>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.IntToStringMap)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.IntToStringMap)
    MergeFrom(*source);
  }
}

void IntToStringMap::MergeFrom(const IntToStringMap& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.IntToStringMap)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  map_.MergeFrom(from.map_);
}

void IntToStringMap::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.IntToStringMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void IntToStringMap::CopyFrom(const IntToStringMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.IntToStringMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void IntToStringMap::Swap(IntToStringMap* other) {
  if (other == this) return;
  InternalSwap(other);
}
void IntToStringMap::InternalSwap(IntToStringMap* other) {
  using std::swap;
  map_.Swap(&other->map_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata IntToStringMap::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

MixedMap_MapEntry_DoNotUse::MixedMap_MapEntry_DoNotUse() {}
MixedMap_MapEntry_DoNotUse::MixedMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
void MixedMap_MapEntry_DoNotUse::MergeFrom(const MixedMap_MapEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata MixedMap_MapEntry_DoNotUse::GetMetadata() const {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[13];
}
void MixedMap_MapEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}


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

void MixedMap::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MixedMap::kMsgFieldNumber;
const int MixedMap::kMapFieldNumber;
const int MixedMap::kIntValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MixedMap::MixedMap()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.MixedMap)
}
MixedMap::MixedMap(const MixedMap& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  map_.MergeFrom(from.map_);
  msg_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.msg().size() > 0) {
    msg_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.msg_);
  }
  int_value_ = from.int_value_;
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.MixedMap)
}

void MixedMap::SharedCtor() {
  msg_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  int_value_ = 0;
}

MixedMap::~MixedMap() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.MixedMap)
  SharedDtor();
}

void MixedMap::SharedDtor() {
  msg_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void MixedMap::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MixedMap::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MixedMap& MixedMap::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap.base);
  return *internal_default_instance();
}


void MixedMap::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.MixedMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  map_.Clear();
  msg_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  int_value_ = 0;
  _internal_metadata_.Clear();
}

bool MixedMap::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.MixedMap)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // string msg = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_msg()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->msg().data(), static_cast<int>(this->msg().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.MixedMap.msg"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // map<string, float> map = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          MixedMap_MapEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              MixedMap_MapEntry_DoNotUse,
              ::std::string, float,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT,
              0 >,
            ::google::protobuf::Map< ::std::string, float > > parser(&map_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.MixedMap.MapEntry.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 int_value = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &int_value_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.MixedMap)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.MixedMap)
  return false;
#undef DO_
}

void MixedMap::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.MixedMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string msg = 1;
  if (this->msg().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->msg().data(), static_cast<int>(this->msg().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.MixedMap.msg");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->msg(), output);
  }

  // map<string, float> map = 2;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::std::string, float >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.MixedMap.MapEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::std::string, float >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, float >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<MixedMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            2, *entry, output);
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<MixedMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, float >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            2, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  // int32 int_value = 3;
  if (this->int_value() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->int_value(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.MixedMap)
}

::google::protobuf::uint8* MixedMap::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.MixedMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string msg = 1;
  if (this->msg().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->msg().data(), static_cast<int>(this->msg().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.MixedMap.msg");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->msg(), target);
  }

  // map<string, float> map = 2;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::std::string, float >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.MixedMap.MapEntry.key");
      }
    };

    if (deterministic &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::std::string, float >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, float >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<MixedMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       2, *entry, deterministic, target);
;
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<MixedMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, float >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       2, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  // int32 int_value = 3;
  if (this->int_value() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->int_value(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.MixedMap)
  return target;
}

size_t MixedMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.MixedMap)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // map<string, float> map = 2;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->map_size());
  {
    ::std::unique_ptr<MixedMap_MapEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, float >::const_iterator
        it = this->map().begin();
        it != this->map().end(); ++it) {
      entry.reset(map_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // string msg = 1;
  if (this->msg().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->msg());
  }

  // int32 int_value = 3;
  if (this->int_value() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->int_value());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void MixedMap::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.MixedMap)
  GOOGLE_DCHECK_NE(&from, this);
  const MixedMap* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const MixedMap>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.MixedMap)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.MixedMap)
    MergeFrom(*source);
  }
}

void MixedMap::MergeFrom(const MixedMap& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.MixedMap)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  map_.MergeFrom(from.map_);
  if (from.msg().size() > 0) {

    msg_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.msg_);
  }
  if (from.int_value() != 0) {
    set_int_value(from.int_value());
  }
}

void MixedMap::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.MixedMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MixedMap::CopyFrom(const MixedMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.MixedMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void MixedMap::Swap(MixedMap* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MixedMap::InternalSwap(MixedMap* other) {
  using std::swap;
  map_.Swap(&other->map_);
  msg_.Swap(&other->msg_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(int_value_, other->int_value_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata MixedMap::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

MixedMap2_MapEntry_DoNotUse::MixedMap2_MapEntry_DoNotUse() {}
MixedMap2_MapEntry_DoNotUse::MixedMap2_MapEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
void MixedMap2_MapEntry_DoNotUse::MergeFrom(const MixedMap2_MapEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata MixedMap2_MapEntry_DoNotUse::GetMetadata() const {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[15];
}
void MixedMap2_MapEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}


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

void MixedMap2::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MixedMap2::kMapFieldNumber;
const int MixedMap2::kEeFieldNumber;
const int MixedMap2::kMsgFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MixedMap2::MixedMap2()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap2.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.MixedMap2)
}
MixedMap2::MixedMap2(const MixedMap2& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  map_.MergeFrom(from.map_);
  msg_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.msg().size() > 0) {
    msg_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.msg_);
  }
  ee_ = from.ee_;
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.MixedMap2)
}

void MixedMap2::SharedCtor() {
  msg_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ee_ = 0;
}

MixedMap2::~MixedMap2() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.MixedMap2)
  SharedDtor();
}

void MixedMap2::SharedDtor() {
  msg_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void MixedMap2::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MixedMap2::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MixedMap2& MixedMap2::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MixedMap2.base);
  return *internal_default_instance();
}


void MixedMap2::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.MixedMap2)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  map_.Clear();
  msg_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ee_ = 0;
  _internal_metadata_.Clear();
}

bool MixedMap2::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.MixedMap2)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // map<int32, bool> map = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          MixedMap2_MapEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              MixedMap2_MapEntry_DoNotUse,
              ::google::protobuf::int32, bool,
              ::google::protobuf::internal::WireFormatLite::TYPE_INT32,
              ::google::protobuf::internal::WireFormatLite::TYPE_BOOL,
              0 >,
            ::google::protobuf::Map< ::google::protobuf::int32, bool > > parser(&map_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.testing.MixedMap2.E ee = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
          int value;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_ee(static_cast< ::google::protobuf::testing::MixedMap2_E >(value));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string msg = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(34u /* 34 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_msg()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->msg().data(), static_cast<int>(this->msg().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.MixedMap2.msg"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.MixedMap2)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.MixedMap2)
  return false;
#undef DO_
}

void MixedMap2::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.MixedMap2)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<int32, bool> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::google::protobuf::int32, bool >::const_pointer
        ConstPtr;
    typedef ::google::protobuf::internal::SortItem< ::google::protobuf::int32, ConstPtr > SortItem;
    typedef ::google::protobuf::internal::CompareByFirstField<SortItem> Less;

    if (output->IsSerializationDeterministic() &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::google::protobuf::int32, bool >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::google::protobuf::int32, bool >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<MixedMap2_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)].second->first, items[static_cast<ptrdiff_t>(i)].second->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
      }
    } else {
      ::std::unique_ptr<MixedMap2_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::google::protobuf::int32, bool >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
      }
    }
  }

  // .google.protobuf.testing.MixedMap2.E ee = 2;
  if (this->ee() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      2, this->ee(), output);
  }

  // string msg = 4;
  if (this->msg().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->msg().data(), static_cast<int>(this->msg().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.MixedMap2.msg");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      4, this->msg(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.MixedMap2)
}

::google::protobuf::uint8* MixedMap2::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.MixedMap2)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<int32, bool> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::google::protobuf::int32, bool >::const_pointer
        ConstPtr;
    typedef ::google::protobuf::internal::SortItem< ::google::protobuf::int32, ConstPtr > SortItem;
    typedef ::google::protobuf::internal::CompareByFirstField<SortItem> Less;

    if (deterministic &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::google::protobuf::int32, bool >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::google::protobuf::int32, bool >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<MixedMap2_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)].second->first, items[static_cast<ptrdiff_t>(i)].second->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
      }
    } else {
      ::std::unique_ptr<MixedMap2_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::google::protobuf::int32, bool >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
      }
    }
  }

  // .google.protobuf.testing.MixedMap2.E ee = 2;
  if (this->ee() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      2, this->ee(), target);
  }

  // string msg = 4;
  if (this->msg().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->msg().data(), static_cast<int>(this->msg().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.MixedMap2.msg");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        4, this->msg(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.MixedMap2)
  return target;
}

size_t MixedMap2::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.MixedMap2)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // map<int32, bool> map = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->map_size());
  {
    ::std::unique_ptr<MixedMap2_MapEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::google::protobuf::int32, bool >::const_iterator
        it = this->map().begin();
        it != this->map().end(); ++it) {
      entry.reset(map_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  // string msg = 4;
  if (this->msg().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->msg());
  }

  // .google.protobuf.testing.MixedMap2.E ee = 2;
  if (this->ee() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->ee());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void MixedMap2::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.MixedMap2)
  GOOGLE_DCHECK_NE(&from, this);
  const MixedMap2* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const MixedMap2>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.MixedMap2)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.MixedMap2)
    MergeFrom(*source);
  }
}

void MixedMap2::MergeFrom(const MixedMap2& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.MixedMap2)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  map_.MergeFrom(from.map_);
  if (from.msg().size() > 0) {

    msg_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.msg_);
  }
  if (from.ee() != 0) {
    set_ee(from.ee());
  }
}

void MixedMap2::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.MixedMap2)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MixedMap2::CopyFrom(const MixedMap2& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.MixedMap2)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void MixedMap2::Swap(MixedMap2* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MixedMap2::InternalSwap(MixedMap2* other) {
  using std::swap;
  map_.Swap(&other->map_);
  msg_.Swap(&other->msg_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(ee_, other->ee_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata MixedMap2::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void MessageMap_M::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MessageMap_M::kInnerIntFieldNumber;
const int MessageMap_M::kInnerTextFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MessageMap_M::MessageMap_M()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap_M.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.MessageMap.M)
}
MessageMap_M::MessageMap_M(const MessageMap_M& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  inner_text_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.inner_text().size() > 0) {
    inner_text_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.inner_text_);
  }
  inner_int_ = from.inner_int_;
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.MessageMap.M)
}

void MessageMap_M::SharedCtor() {
  inner_text_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  inner_int_ = 0;
}

MessageMap_M::~MessageMap_M() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.MessageMap.M)
  SharedDtor();
}

void MessageMap_M::SharedDtor() {
  inner_text_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void MessageMap_M::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MessageMap_M::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MessageMap_M& MessageMap_M::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap_M.base);
  return *internal_default_instance();
}


void MessageMap_M::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.MessageMap.M)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  inner_text_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  inner_int_ = 0;
  _internal_metadata_.Clear();
}

bool MessageMap_M::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.MessageMap.M)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // int32 inner_int = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &inner_int_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string inner_text = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_inner_text()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->inner_text().data(), static_cast<int>(this->inner_text().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.MessageMap.M.inner_text"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.MessageMap.M)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.MessageMap.M)
  return false;
#undef DO_
}

void MessageMap_M::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.MessageMap.M)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 inner_int = 1;
  if (this->inner_int() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->inner_int(), output);
  }

  // string inner_text = 2;
  if (this->inner_text().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->inner_text().data(), static_cast<int>(this->inner_text().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.MessageMap.M.inner_text");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->inner_text(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.MessageMap.M)
}

::google::protobuf::uint8* MessageMap_M::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.MessageMap.M)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 inner_int = 1;
  if (this->inner_int() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->inner_int(), target);
  }

  // string inner_text = 2;
  if (this->inner_text().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->inner_text().data(), static_cast<int>(this->inner_text().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "google.protobuf.testing.MessageMap.M.inner_text");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->inner_text(), target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.MessageMap.M)
  return target;
}

size_t MessageMap_M::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.MessageMap.M)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // string inner_text = 2;
  if (this->inner_text().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->inner_text());
  }

  // int32 inner_int = 1;
  if (this->inner_int() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->inner_int());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void MessageMap_M::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.MessageMap.M)
  GOOGLE_DCHECK_NE(&from, this);
  const MessageMap_M* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const MessageMap_M>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.MessageMap.M)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.MessageMap.M)
    MergeFrom(*source);
  }
}

void MessageMap_M::MergeFrom(const MessageMap_M& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.MessageMap.M)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.inner_text().size() > 0) {

    inner_text_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.inner_text_);
  }
  if (from.inner_int() != 0) {
    set_inner_int(from.inner_int());
  }
}

void MessageMap_M::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.MessageMap.M)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MessageMap_M::CopyFrom(const MessageMap_M& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.MessageMap.M)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void MessageMap_M::Swap(MessageMap_M* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MessageMap_M::InternalSwap(MessageMap_M* other) {
  using std::swap;
  inner_text_.Swap(&other->inner_text_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(inner_int_, other->inner_int_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata MessageMap_M::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

MessageMap_MapEntry_DoNotUse::MessageMap_MapEntry_DoNotUse() {}
MessageMap_MapEntry_DoNotUse::MessageMap_MapEntry_DoNotUse(::google::protobuf::Arena* arena) : SuperType(arena) {}
void MessageMap_MapEntry_DoNotUse::MergeFrom(const MessageMap_MapEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata MessageMap_MapEntry_DoNotUse::GetMetadata() const {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[18];
}
void MessageMap_MapEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}


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

void MessageMap::InitAsDefaultInstance() {
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int MessageMap::kMapFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

MessageMap::MessageMap()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.MessageMap)
}
MessageMap::MessageMap(const MessageMap& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  map_.MergeFrom(from.map_);
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.MessageMap)
}

void MessageMap::SharedCtor() {
}

MessageMap::~MessageMap() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.MessageMap)
  SharedDtor();
}

void MessageMap::SharedDtor() {
}

void MessageMap::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* MessageMap::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const MessageMap& MessageMap::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_MessageMap.base);
  return *internal_default_instance();
}


void MessageMap::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.MessageMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  map_.Clear();
  _internal_metadata_.Clear();
}

bool MessageMap::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.MessageMap)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // map<string, .google.protobuf.testing.MessageMap.M> map = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          MessageMap_MapEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              MessageMap_MapEntry_DoNotUse,
              ::std::string, ::google::protobuf::testing::MessageMap_M,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
              0 >,
            ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M > > parser(&map_);
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
              input, &parser));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            parser.key().data(), static_cast<int>(parser.key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "google.protobuf.testing.MessageMap.MapEntry.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.MessageMap)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.MessageMap)
  return false;
#undef DO_
}

void MessageMap::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.MessageMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .google.protobuf.testing.MessageMap.M> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.MessageMap.MapEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<MessageMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<MessageMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
            1, *entry, output);
        Utf8Check::Check(&*it);
      }
    }
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.MessageMap)
}

::google::protobuf::uint8* MessageMap::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.MessageMap)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .google.protobuf.testing.MessageMap.M> map = 1;
  if (!this->map().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::google::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::google::protobuf::internal::WireFormatLite::SERIALIZE,
          "google.protobuf.testing.MessageMap.MapEntry.key");
      }
    };

    if (deterministic &&
        this->map().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->map().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      ::std::unique_ptr<MessageMap_MapEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(map_.NewEntryWrapper(
            items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(items[static_cast<ptrdiff_t>(i)]);
      }
    } else {
      ::std::unique_ptr<MessageMap_MapEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_iterator
          it = this->map().begin();
          it != this->map().end(); ++it) {
        entry.reset(map_.NewEntryWrapper(
            it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::
                   InternalWriteMessageNoVirtualToArray(
                       1, *entry, deterministic, target);
;
        Utf8Check::Check(&*it);
      }
    }
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.MessageMap)
  return target;
}

size_t MessageMap::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.MessageMap)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // map<string, .google.protobuf.testing.MessageMap.M> map = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->map_size());
  {
    ::std::unique_ptr<MessageMap_MapEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::google::protobuf::testing::MessageMap_M >::const_iterator
        it = this->map().begin();
        it != this->map().end(); ++it) {
      entry.reset(map_.NewEntryWrapper(it->first, it->second));
      total_size += ::google::protobuf::internal::WireFormatLite::
          MessageSizeNoVirtual(*entry);
    }
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void MessageMap::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.MessageMap)
  GOOGLE_DCHECK_NE(&from, this);
  const MessageMap* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const MessageMap>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.MessageMap)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.MessageMap)
    MergeFrom(*source);
  }
}

void MessageMap::MergeFrom(const MessageMap& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.MessageMap)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  map_.MergeFrom(from.map_);
}

void MessageMap::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.MessageMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void MessageMap::CopyFrom(const MessageMap& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.MessageMap)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void MessageMap::Swap(MessageMap* other) {
  if (other == this) return;
  InternalSwap(other);
}
void MessageMap::InternalSwap(MessageMap* other) {
  using std::swap;
  map_.Swap(&other->map_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata MessageMap::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


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

void DoubleValueMessage::InitAsDefaultInstance() {
  ::google::protobuf::testing::_DoubleValueMessage_default_instance_._instance.get_mutable()->double__ = const_cast< ::google::protobuf::DoubleValue*>(
      ::google::protobuf::DoubleValue::internal_default_instance());
}
void DoubleValueMessage::clear_double_() {
  if (GetArenaNoVirtual() == NULL && double__ != NULL) {
    delete double__;
  }
  double__ = NULL;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DoubleValueMessage::kDoubleFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DoubleValueMessage::DoubleValueMessage()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  ::google::protobuf::internal::InitSCC(
      &protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DoubleValueMessage.base);
  SharedCtor();
  // @@protoc_insertion_point(constructor:google.protobuf.testing.DoubleValueMessage)
}
DoubleValueMessage::DoubleValueMessage(const DoubleValueMessage& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_double_()) {
    double__ = new ::google::protobuf::DoubleValue(*from.double__);
  } else {
    double__ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:google.protobuf.testing.DoubleValueMessage)
}

void DoubleValueMessage::SharedCtor() {
  double__ = NULL;
}

DoubleValueMessage::~DoubleValueMessage() {
  // @@protoc_insertion_point(destructor:google.protobuf.testing.DoubleValueMessage)
  SharedDtor();
}

void DoubleValueMessage::SharedDtor() {
  if (this != internal_default_instance()) delete double__;
}

void DoubleValueMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const ::google::protobuf::Descriptor* DoubleValueMessage::descriptor() {
  ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const DoubleValueMessage& DoubleValueMessage::default_instance() {
  ::google::protobuf::internal::InitSCC(&protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::scc_info_DoubleValueMessage.base);
  return *internal_default_instance();
}


void DoubleValueMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:google.protobuf.testing.DoubleValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == NULL && double__ != NULL) {
    delete double__;
  }
  double__ = NULL;
  _internal_metadata_.Clear();
}

bool DoubleValueMessage::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:google.protobuf.testing.DoubleValueMessage)
  for (;;) {
    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // .google.protobuf.DoubleValue double = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_double_()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, _internal_metadata_.mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:google.protobuf.testing.DoubleValueMessage)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:google.protobuf.testing.DoubleValueMessage)
  return false;
#undef DO_
}

void DoubleValueMessage::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:google.protobuf.testing.DoubleValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.DoubleValue double = 1;
  if (this->has_double_()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, this->_internal_double_(), output);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), output);
  }
  // @@protoc_insertion_point(serialize_end:google.protobuf.testing.DoubleValueMessage)
}

::google::protobuf::uint8* DoubleValueMessage::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:google.protobuf.testing.DoubleValueMessage)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .google.protobuf.DoubleValue double = 1;
  if (this->has_double_()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, this->_internal_double_(), deterministic, target);
  }

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:google.protobuf.testing.DoubleValueMessage)
  return target;
}

size_t DoubleValueMessage::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:google.protobuf.testing.DoubleValueMessage)
  size_t total_size = 0;

  if ((_internal_metadata_.have_unknown_fields() &&  ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        (::google::protobuf::internal::GetProto3PreserveUnknownsDefault()   ? _internal_metadata_.unknown_fields()   : _internal_metadata_.default_instance()));
  }
  // .google.protobuf.DoubleValue double = 1;
  if (this->has_double_()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *double__);
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DoubleValueMessage::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:google.protobuf.testing.DoubleValueMessage)
  GOOGLE_DCHECK_NE(&from, this);
  const DoubleValueMessage* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const DoubleValueMessage>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:google.protobuf.testing.DoubleValueMessage)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:google.protobuf.testing.DoubleValueMessage)
    MergeFrom(*source);
  }
}

void DoubleValueMessage::MergeFrom(const DoubleValueMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:google.protobuf.testing.DoubleValueMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from.has_double_()) {
    mutable_double_()->::google::protobuf::DoubleValue::MergeFrom(from.double_());
  }
}

void DoubleValueMessage::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:google.protobuf.testing.DoubleValueMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DoubleValueMessage::CopyFrom(const DoubleValueMessage& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:google.protobuf.testing.DoubleValueMessage)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DoubleValueMessage::Swap(DoubleValueMessage* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DoubleValueMessage::InternalSwap(DoubleValueMessage* other) {
  using std::swap;
  swap(double__, other->double__);
  _internal_metadata_.Swap(&other->_internal_metadata_);
}

::google::protobuf::Metadata DoubleValueMessage::GetMetadata() const {
  protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::protobuf_AssignDescriptorsOnce();
  return ::protobuf_google_2fprotobuf_2futil_2finternal_2ftestdata_2fdefault_5fvalue_2eproto::file_level_metadata[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace testing
}  // namespace protobuf
}  // namespace google
namespace google {
namespace protobuf {
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::DefaultValueTestCases* Arena::CreateMaybeMessage< ::google::protobuf::testing::DefaultValueTestCases >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::DefaultValueTestCases >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::DoubleMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::DoubleMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::DoubleMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::StructMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::StructMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::StructMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::ValueMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::ValueMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::ValueMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::ListValueMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::ListValueMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::ListValueMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::RequestMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::RequestMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::RequestMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::AnyMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::AnyMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::AnyMessage >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::AnyData_MapDataEntry_DoNotUse >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::AnyData* Arena::CreateMaybeMessage< ::google::protobuf::testing::AnyData >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::AnyData >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::StringtoIntMap_MapEntry_DoNotUse >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::StringtoIntMap* Arena::CreateMaybeMessage< ::google::protobuf::testing::StringtoIntMap >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::StringtoIntMap >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::IntToStringMap_MapEntry_DoNotUse >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::IntToStringMap* Arena::CreateMaybeMessage< ::google::protobuf::testing::IntToStringMap >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::IntToStringMap >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MixedMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::protobuf::testing::MixedMap_MapEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MixedMap_MapEntry_DoNotUse >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MixedMap* Arena::CreateMaybeMessage< ::google::protobuf::testing::MixedMap >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MixedMap >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MixedMap2_MapEntry_DoNotUse >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MixedMap2* Arena::CreateMaybeMessage< ::google::protobuf::testing::MixedMap2 >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MixedMap2 >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MessageMap_M* Arena::CreateMaybeMessage< ::google::protobuf::testing::MessageMap_M >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MessageMap_M >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MessageMap_MapEntry_DoNotUse* Arena::CreateMaybeMessage< ::google::protobuf::testing::MessageMap_MapEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MessageMap_MapEntry_DoNotUse >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::MessageMap* Arena::CreateMaybeMessage< ::google::protobuf::testing::MessageMap >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::MessageMap >(arena);
}
template<> GOOGLE_PROTOBUF_ATTRIBUTE_NOINLINE ::google::protobuf::testing::DoubleValueMessage* Arena::CreateMaybeMessage< ::google::protobuf::testing::DoubleValueMessage >(Arena* arena) {
  return Arena::CreateInternal< ::google::protobuf::testing::DoubleValueMessage >(arena);
}
}  // namespace protobuf
}  // namespace google

// @@protoc_insertion_point(global_scope)
