// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: envoy/api/v2/core/base.proto

#include "envoy/api/v2/core/base.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.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>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

extern PROTOBUF_INTERNAL_EXPORT_envoy_2fapi_2fv2_2fcore_2fbase_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_HeaderValue_envoy_2fapi_2fv2_2fcore_2fbase_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_envoy_2fapi_2fv2_2fcore_2fbase_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Locality_envoy_2fapi_2fv2_2fcore_2fbase_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_envoy_2fapi_2fv2_2fcore_2fbase_2eproto ::google::protobuf::internal::SCCInfo<1> scc_info_Metadata_FilterMetadataEntry_DoNotUse_envoy_2fapi_2fv2_2fcore_2fbase_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fstruct_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_google_2fprotobuf_2fwrappers_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_BoolValue_google_2fprotobuf_2fwrappers_2eproto;
namespace envoy {
namespace api {
namespace v2 {
namespace core {
class LocalityDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Locality> _instance;
} _Locality_default_instance_;
class NodeDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Node> _instance;
} _Node_default_instance_;
class Metadata_FilterMetadataEntry_DoNotUseDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Metadata_FilterMetadataEntry_DoNotUse> _instance;
} _Metadata_FilterMetadataEntry_DoNotUse_default_instance_;
class MetadataDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<Metadata> _instance;
} _Metadata_default_instance_;
class RuntimeUInt32DefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<RuntimeUInt32> _instance;
} _RuntimeUInt32_default_instance_;
class HeaderValueDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<HeaderValue> _instance;
} _HeaderValue_default_instance_;
class HeaderValueOptionDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<HeaderValueOption> _instance;
} _HeaderValueOption_default_instance_;
class DataSourceDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<DataSource> _instance;
  ::google::protobuf::internal::ArenaStringPtr filename_;
  ::google::protobuf::internal::ArenaStringPtr inline_bytes_;
  ::google::protobuf::internal::ArenaStringPtr inline_string_;
} _DataSource_default_instance_;
class TransportSocketDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<TransportSocket> _instance;
} _TransportSocket_default_instance_;
class SocketOptionDefaultTypeInternal {
 public:
  ::google::protobuf::internal::ExplicitlyConstructed<SocketOption> _instance;
  ::google::protobuf::int64 int_value_;
  ::google::protobuf::internal::ArenaStringPtr buf_value_;
} _SocketOption_default_instance_;
}  // namespace core
}  // namespace v2
}  // namespace api
}  // namespace envoy
static void InitDefaultsLocality_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_Locality_default_instance_;
    new (ptr) ::envoy::api::v2::core::Locality();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::Locality::InitAsDefaultInstance();
}

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

static void InitDefaultsNode_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_Node_default_instance_;
    new (ptr) ::envoy::api::v2::core::Node();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::Node::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_Node_envoy_2fapi_2fv2_2fcore_2fbase_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsNode_envoy_2fapi_2fv2_2fcore_2fbase_2eproto}, {
      &scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base,
      &scc_info_Locality_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base,}};

static void InitDefaultsMetadata_FilterMetadataEntry_DoNotUse_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_Metadata_FilterMetadataEntry_DoNotUse_default_instance_;
    new (ptr) ::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse();
  }
  ::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Metadata_FilterMetadataEntry_DoNotUse_envoy_2fapi_2fv2_2fcore_2fbase_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsMetadata_FilterMetadataEntry_DoNotUse_envoy_2fapi_2fv2_2fcore_2fbase_2eproto}, {
      &scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base,}};

static void InitDefaultsMetadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_Metadata_default_instance_;
    new (ptr) ::envoy::api::v2::core::Metadata();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::Metadata::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_Metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsMetadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto}, {
      &scc_info_Metadata_FilterMetadataEntry_DoNotUse_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base,}};

static void InitDefaultsRuntimeUInt32_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_RuntimeUInt32_default_instance_;
    new (ptr) ::envoy::api::v2::core::RuntimeUInt32();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::RuntimeUInt32::InitAsDefaultInstance();
}

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

static void InitDefaultsHeaderValue_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_HeaderValue_default_instance_;
    new (ptr) ::envoy::api::v2::core::HeaderValue();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::HeaderValue::InitAsDefaultInstance();
}

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

static void InitDefaultsHeaderValueOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_HeaderValueOption_default_instance_;
    new (ptr) ::envoy::api::v2::core::HeaderValueOption();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::HeaderValueOption::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<2> scc_info_HeaderValueOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 2, InitDefaultsHeaderValueOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto}, {
      &scc_info_HeaderValue_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base,
      &scc_info_BoolValue_google_2fprotobuf_2fwrappers_2eproto.base,}};

static void InitDefaultsDataSource_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_DataSource_default_instance_;
    new (ptr) ::envoy::api::v2::core::DataSource();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::DataSource::InitAsDefaultInstance();
}

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

static void InitDefaultsTransportSocket_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_TransportSocket_default_instance_;
    new (ptr) ::envoy::api::v2::core::TransportSocket();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::TransportSocket::InitAsDefaultInstance();
}

::google::protobuf::internal::SCCInfo<1> scc_info_TransportSocket_envoy_2fapi_2fv2_2fcore_2fbase_2eproto =
    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsTransportSocket_envoy_2fapi_2fv2_2fcore_2fbase_2eproto}, {
      &scc_info_ListValue_google_2fprotobuf_2fstruct_2eproto.base,}};

static void InitDefaultsSocketOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  {
    void* ptr = &::envoy::api::v2::core::_SocketOption_default_instance_;
    new (ptr) ::envoy::api::v2::core::SocketOption();
    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
  }
  ::envoy::api::v2::core::SocketOption::InitAsDefaultInstance();
}

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

void InitDefaults_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  ::google::protobuf::internal::InitSCC(&scc_info_Locality_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Node_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Metadata_FilterMetadataEntry_DoNotUse_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_Metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_RuntimeUInt32_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_HeaderValue_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_HeaderValueOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_DataSource_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_TransportSocket_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::google::protobuf::internal::InitSCC(&scc_info_SocketOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
}

::google::protobuf::Metadata file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[10];
const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[3];
constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto = nullptr;

const ::google::protobuf::uint32 TableStruct_envoy_2fapi_2fv2_2fcore_2fbase_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Locality, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Locality, region_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Locality, zone_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Locality, sub_zone_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Node, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Node, id_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Node, cluster_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Node, metadata_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Node, locality_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Node, build_version_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Metadata, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::Metadata, filter_metadata_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::RuntimeUInt32, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::RuntimeUInt32, default_value_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::RuntimeUInt32, runtime_key_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::HeaderValue, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::HeaderValue, key_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::HeaderValue, value_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::HeaderValueOption, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::HeaderValueOption, header_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::HeaderValueOption, append_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::DataSource, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::DataSource, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  offsetof(::envoy::api::v2::core::DataSourceDefaultTypeInternal, filename_),
  offsetof(::envoy::api::v2::core::DataSourceDefaultTypeInternal, inline_bytes_),
  offsetof(::envoy::api::v2::core::DataSourceDefaultTypeInternal, inline_string_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::DataSource, specifier_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::TransportSocket, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::TransportSocket, name_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::TransportSocket, config_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, _internal_metadata_),
  ~0u,  // no _extensions_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, _oneof_case_[0]),
  ~0u,  // no _weak_field_map_
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, description_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, level_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, name_),
  offsetof(::envoy::api::v2::core::SocketOptionDefaultTypeInternal, int_value_),
  offsetof(::envoy::api::v2::core::SocketOptionDefaultTypeInternal, buf_value_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, state_),
  PROTOBUF_FIELD_OFFSET(::envoy::api::v2::core::SocketOption, value_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(::envoy::api::v2::core::Locality)},
  { 8, -1, sizeof(::envoy::api::v2::core::Node)},
  { 18, 25, sizeof(::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse)},
  { 27, -1, sizeof(::envoy::api::v2::core::Metadata)},
  { 33, -1, sizeof(::envoy::api::v2::core::RuntimeUInt32)},
  { 40, -1, sizeof(::envoy::api::v2::core::HeaderValue)},
  { 47, -1, sizeof(::envoy::api::v2::core::HeaderValueOption)},
  { 54, -1, sizeof(::envoy::api::v2::core::DataSource)},
  { 63, -1, sizeof(::envoy::api::v2::core::TransportSocket)},
  { 70, -1, sizeof(::envoy::api::v2::core::SocketOption)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_Locality_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_Node_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_Metadata_FilterMetadataEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_Metadata_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_RuntimeUInt32_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_HeaderValue_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_HeaderValueOption_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_DataSource_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_TransportSocket_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&::envoy::api::v2::core::_SocketOption_default_instance_),
};

::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto = {
  {}, AddDescriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto, "envoy/api/v2/core/base.proto", schemas,
  file_default_instances, TableStruct_envoy_2fapi_2fv2_2fcore_2fbase_2eproto::offsets,
  file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto, 10, file_level_enum_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto, file_level_service_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto,
};

const char descriptor_table_protodef_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[] =
  "\n\034envoy/api/v2/core/base.proto\022\021envoy.ap"
  "i.v2.core\032\034google/protobuf/struct.proto\032"
  "\036google/protobuf/wrappers.proto\032\027validat"
  "e/validate.proto\032\024gogoproto/gogo.proto\":"
  "\n\010Locality\022\016\n\006region\030\001 \001(\t\022\014\n\004zone\030\002 \001(\t"
  "\022\020\n\010sub_zone\030\003 \001(\t\"\224\001\n\004Node\022\n\n\002id\030\001 \001(\t\022"
  "\017\n\007cluster\030\002 \001(\t\022)\n\010metadata\030\003 \001(\0132\027.goo"
  "gle.protobuf.Struct\022-\n\010locality\030\004 \001(\0132\033."
  "envoy.api.v2.core.Locality\022\025\n\rbuild_vers"
  "ion\030\005 \001(\t\"\244\001\n\010Metadata\022H\n\017filter_metadat"
  "a\030\001 \003(\0132/.envoy.api.v2.core.Metadata.Fil"
  "terMetadataEntry\032N\n\023FilterMetadataEntry\022"
  "\013\n\003key\030\001 \001(\t\022&\n\005value\030\002 \001(\0132\027.google.pro"
  "tobuf.Struct:\0028\001\"F\n\rRuntimeUInt32\022\025\n\rdef"
  "ault_value\030\002 \001(\r\022\036\n\013runtime_key\030\003 \001(\tB\t\272"
  "\351\300\003\004r\002 \001\")\n\013HeaderValue\022\013\n\003key\030\001 \001(\t\022\r\n\005"
  "value\030\002 \001(\t\"o\n\021HeaderValueOption\022.\n\006head"
  "er\030\001 \001(\0132\036.envoy.api.v2.core.HeaderValue"
  "\022*\n\006append\030\002 \001(\0132\032.google.protobuf.BoolV"
  "alue\"\206\001\n\nDataSource\022\035\n\010filename\030\001 \001(\tB\t\272"
  "\351\300\003\004r\002 \001H\000\022!\n\014inline_bytes\030\002 \001(\014B\t\272\351\300\003\004z"
  "\002\020\001H\000\022\"\n\rinline_string\030\003 \001(\tB\t\272\351\300\003\004r\002 \001H"
  "\000B\022\n\tspecifier\022\005\270\351\300\003\001\"S\n\017TransportSocket"
  "\022\027\n\004name\030\001 \001(\tB\t\272\351\300\003\004r\002 \001\022\'\n\006config\030\002 \001("
  "\0132\027.google.protobuf.Struct\"\232\002\n\014SocketOpt"
  "ion\022\023\n\013description\030\001 \001(\t\022\r\n\005level\030\002 \001(\003\022"
  "\014\n\004name\030\003 \001(\003\022\023\n\tint_value\030\004 \001(\003H\000\022\023\n\tbu"
  "f_value\030\005 \001(\014H\000\022P\n\005state\030\006 \001(\0162+.envoy.a"
  "pi.v2.core.SocketOption.SocketStateB\024\272\351\300"
  "\003\005\212\001\002\020\001\272\351\300\003\005\202\001\002\020\001\"L\n\013SocketState\022\021\n\rSTAT"
  "E_PREBIND\020\000\022\017\n\013STATE_BOUND\020\001\022\023\n\017STATE_LI"
  "STENING\020\002\032\004\210\243\036\000B\016\n\005value\022\005\270\351\300\003\001*(\n\017Routi"
  "ngPriority\022\013\n\007DEFAULT\020\000\022\010\n\004HIGH\020\001*\204\001\n\rRe"
  "questMethod\022\026\n\022METHOD_UNSPECIFIED\020\000\022\007\n\003G"
  "ET\020\001\022\010\n\004HEAD\020\002\022\010\n\004POST\020\003\022\007\n\003PUT\020\004\022\n\n\006DEL"
  "ETE\020\005\022\013\n\007CONNECT\020\006\022\013\n\007OPTIONS\020\007\022\t\n\005TRACE"
  "\020\010\032\004\210\243\036\000B\nZ\004core\250\342\036\001b\006proto3"
  ;
::google::protobuf::internal::DescriptorTable descriptor_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto = {
  false, InitDefaults_envoy_2fapi_2fv2_2fcore_2fbase_2eproto, 
  descriptor_table_protodef_envoy_2fapi_2fv2_2fcore_2fbase_2eproto,
  "envoy/api/v2/core/base.proto", &assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto, 1468,
};

void AddDescriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto() {
  static constexpr ::google::protobuf::internal::InitFunc deps[4] =
  {
    ::AddDescriptors_google_2fprotobuf_2fstruct_2eproto,
    ::AddDescriptors_google_2fprotobuf_2fwrappers_2eproto,
    ::AddDescriptors_validate_2fvalidate_2eproto,
    ::AddDescriptors_gogoproto_2fgogo_2eproto,
  };
 ::google::protobuf::internal::AddDescriptors(&descriptor_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto, deps, 4);
}

// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_envoy_2fapi_2fv2_2fcore_2fbase_2eproto = []() { AddDescriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto(); return true; }();
namespace envoy {
namespace api {
namespace v2 {
namespace core {
const ::google::protobuf::EnumDescriptor* SocketOption_SocketState_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return file_level_enum_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[0];
}
bool SocketOption_SocketState_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
      return true;
    default:
      return false;
  }
}

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const SocketOption_SocketState SocketOption::STATE_PREBIND;
const SocketOption_SocketState SocketOption::STATE_BOUND;
const SocketOption_SocketState SocketOption::STATE_LISTENING;
const SocketOption_SocketState SocketOption::SocketState_MIN;
const SocketOption_SocketState SocketOption::SocketState_MAX;
const int SocketOption::SocketState_ARRAYSIZE;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
const ::google::protobuf::EnumDescriptor* RoutingPriority_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return file_level_enum_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[1];
}
bool RoutingPriority_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
      return true;
    default:
      return false;
  }
}

const ::google::protobuf::EnumDescriptor* RequestMethod_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return file_level_enum_descriptors_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[2];
}
bool RequestMethod_IsValid(int value) {
  switch (value) {
    case 0:
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
      return true;
    default:
      return false;
  }
}


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

void Locality::InitAsDefaultInstance() {
}
class Locality::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Locality::kRegionFieldNumber;
const int Locality::kZoneFieldNumber;
const int Locality::kSubZoneFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Locality::Locality()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.Locality)
}
Locality::Locality(const Locality& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  region_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.region().size() > 0) {
    region_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.region_);
  }
  zone_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.zone().size() > 0) {
    zone_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.zone_);
  }
  sub_zone_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.sub_zone().size() > 0) {
    sub_zone_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.sub_zone_);
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.Locality)
}

void Locality::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Locality_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  region_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  zone_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sub_zone_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

Locality::~Locality() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.Locality)
  SharedDtor();
}

void Locality::SharedDtor() {
  region_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  zone_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sub_zone_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void Locality::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Locality& Locality::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Locality_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void Locality::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.Locality)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  region_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  zone_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  sub_zone_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Locality::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Locality*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string region = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.Locality.region");
        object = msg->mutable_region();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string zone = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.Locality.zone");
        object = msg->mutable_zone();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string sub_zone = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.Locality.sub_zone");
        object = msg->mutable_sub_zone();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Locality::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.Locality)
  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 region = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_region()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->region().data(), static_cast<int>(this->region().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.Locality.region"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string zone = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_zone()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->zone().data(), static_cast<int>(this->zone().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.Locality.zone"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string sub_zone = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_sub_zone()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->sub_zone().data(), static_cast<int>(this->sub_zone().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.Locality.sub_zone"));
        } 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:envoy.api.v2.core.Locality)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.Locality)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Locality::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.Locality)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string region = 1;
  if (this->region().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->region().data(), static_cast<int>(this->region().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Locality.region");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->region(), output);
  }

  // string zone = 2;
  if (this->zone().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->zone().data(), static_cast<int>(this->zone().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Locality.zone");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->zone(), output);
  }

  // string sub_zone = 3;
  if (this->sub_zone().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->sub_zone().data(), static_cast<int>(this->sub_zone().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Locality.sub_zone");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->sub_zone(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.Locality)
}

::google::protobuf::uint8* Locality::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.Locality)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string region = 1;
  if (this->region().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->region().data(), static_cast<int>(this->region().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Locality.region");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->region(), target);
  }

  // string zone = 2;
  if (this->zone().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->zone().data(), static_cast<int>(this->zone().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Locality.zone");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->zone(), target);
  }

  // string sub_zone = 3;
  if (this->sub_zone().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->sub_zone().data(), static_cast<int>(this->sub_zone().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Locality.sub_zone");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->sub_zone(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.Locality)
  return target;
}

size_t Locality::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.Locality)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

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

void Locality::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.Locality)
  GOOGLE_DCHECK_NE(&from, this);
  const Locality* source =
      ::google::protobuf::DynamicCastToGenerated<Locality>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.Locality)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.Locality)
    MergeFrom(*source);
  }
}

void Locality::MergeFrom(const Locality& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.Locality)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

    region_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.region_);
  }
  if (from.zone().size() > 0) {

    zone_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.zone_);
  }
  if (from.sub_zone().size() > 0) {

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

void Locality::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.Locality)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Locality::CopyFrom(const Locality& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.Locality)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::google::protobuf::Metadata Locality::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void Node::InitAsDefaultInstance() {
  ::envoy::api::v2::core::_Node_default_instance_._instance.get_mutable()->metadata_ = const_cast< ::google::protobuf::Struct*>(
      ::google::protobuf::Struct::internal_default_instance());
  ::envoy::api::v2::core::_Node_default_instance_._instance.get_mutable()->locality_ = const_cast< ::envoy::api::v2::core::Locality*>(
      ::envoy::api::v2::core::Locality::internal_default_instance());
}
class Node::HasBitSetters {
 public:
  static const ::google::protobuf::Struct& metadata(const Node* msg);
  static const ::envoy::api::v2::core::Locality& locality(const Node* msg);
};

const ::google::protobuf::Struct&
Node::HasBitSetters::metadata(const Node* msg) {
  return *msg->metadata_;
}
const ::envoy::api::v2::core::Locality&
Node::HasBitSetters::locality(const Node* msg) {
  return *msg->locality_;
}
void Node::clear_metadata() {
  if (GetArenaNoVirtual() == nullptr && metadata_ != nullptr) {
    delete metadata_;
  }
  metadata_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Node::kIdFieldNumber;
const int Node::kClusterFieldNumber;
const int Node::kMetadataFieldNumber;
const int Node::kLocalityFieldNumber;
const int Node::kBuildVersionFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Node::Node()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.Node)
}
Node::Node(const Node& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.id().size() > 0) {
    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  cluster_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.cluster().size() > 0) {
    cluster_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cluster_);
  }
  build_version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.build_version().size() > 0) {
    build_version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.build_version_);
  }
  if (from.has_metadata()) {
    metadata_ = new ::google::protobuf::Struct(*from.metadata_);
  } else {
    metadata_ = nullptr;
  }
  if (from.has_locality()) {
    locality_ = new ::envoy::api::v2::core::Locality(*from.locality_);
  } else {
    locality_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.Node)
}

void Node::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Node_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  id_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cluster_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  build_version_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&metadata_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&locality_) -
      reinterpret_cast<char*>(&metadata_)) + sizeof(locality_));
}

Node::~Node() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.Node)
  SharedDtor();
}

void Node::SharedDtor() {
  id_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cluster_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  build_version_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete metadata_;
  if (this != internal_default_instance()) delete locality_;
}

void Node::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Node& Node::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Node_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void Node::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.Node)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  id_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  cluster_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  build_version_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && metadata_ != nullptr) {
    delete metadata_;
  }
  metadata_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && locality_ != nullptr) {
    delete locality_;
  }
  locality_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Node::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Node*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string id = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.Node.id");
        object = msg->mutable_id();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string cluster = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.Node.cluster");
        object = msg->mutable_cluster();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Struct metadata = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Struct::_InternalParse;
        object = msg->mutable_metadata();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .envoy.api.v2.core.Locality locality = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 34) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::envoy::api::v2::core::Locality::_InternalParse;
        object = msg->mutable_locality();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // string build_version = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.Node.build_version");
        object = msg->mutable_build_version();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Node::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.Node)
  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 id = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_id()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->id().data(), static_cast<int>(this->id().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.Node.id"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string cluster = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_cluster()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->cluster().data(), static_cast<int>(this->cluster().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.Node.cluster"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Struct metadata = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_metadata()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .envoy.api.v2.core.Locality locality = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (34 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_locality()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string build_version = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_build_version()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->build_version().data(), static_cast<int>(this->build_version().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.Node.build_version"));
        } 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:envoy.api.v2.core.Node)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.Node)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Node::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.Node)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Node.id");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->id(), output);
  }

  // string cluster = 2;
  if (this->cluster().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cluster().data(), static_cast<int>(this->cluster().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Node.cluster");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->cluster(), output);
  }

  // .google.protobuf.Struct metadata = 3;
  if (this->has_metadata()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, HasBitSetters::metadata(this), output);
  }

  // .envoy.api.v2.core.Locality locality = 4;
  if (this->has_locality()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      4, HasBitSetters::locality(this), output);
  }

  // string build_version = 5;
  if (this->build_version().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->build_version().data(), static_cast<int>(this->build_version().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Node.build_version");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->build_version(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.Node)
}

::google::protobuf::uint8* Node::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.Node)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string id = 1;
  if (this->id().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->id().data(), static_cast<int>(this->id().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Node.id");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->id(), target);
  }

  // string cluster = 2;
  if (this->cluster().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->cluster().data(), static_cast<int>(this->cluster().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Node.cluster");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->cluster(), target);
  }

  // .google.protobuf.Struct metadata = 3;
  if (this->has_metadata()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        3, HasBitSetters::metadata(this), target);
  }

  // .envoy.api.v2.core.Locality locality = 4;
  if (this->has_locality()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        4, HasBitSetters::locality(this), target);
  }

  // string build_version = 5;
  if (this->build_version().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->build_version().data(), static_cast<int>(this->build_version().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.Node.build_version");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->build_version(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.Node)
  return target;
}

size_t Node::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.Node)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

  // .google.protobuf.Struct metadata = 3;
  if (this->has_metadata()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *metadata_);
  }

  // .envoy.api.v2.core.Locality locality = 4;
  if (this->has_locality()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *locality_);
  }

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

void Node::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.Node)
  GOOGLE_DCHECK_NE(&from, this);
  const Node* source =
      ::google::protobuf::DynamicCastToGenerated<Node>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.Node)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.Node)
    MergeFrom(*source);
  }
}

void Node::MergeFrom(const Node& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.Node)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

    id_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.id_);
  }
  if (from.cluster().size() > 0) {

    cluster_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.cluster_);
  }
  if (from.build_version().size() > 0) {

    build_version_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.build_version_);
  }
  if (from.has_metadata()) {
    mutable_metadata()->::google::protobuf::Struct::MergeFrom(from.metadata());
  }
  if (from.has_locality()) {
    mutable_locality()->::envoy::api::v2::core::Locality::MergeFrom(from.locality());
  }
}

void Node::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.Node)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Node::CopyFrom(const Node& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.Node)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void Node::Swap(Node* other) {
  if (other == this) return;
  InternalSwap(other);
}
void Node::InternalSwap(Node* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  id_.Swap(&other->id_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  cluster_.Swap(&other->cluster_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  build_version_.Swap(&other->build_version_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(metadata_, other->metadata_);
  swap(locality_, other->locality_);
}

::google::protobuf::Metadata Node::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

Metadata_FilterMetadataEntry_DoNotUse::Metadata_FilterMetadataEntry_DoNotUse() {}
Metadata_FilterMetadataEntry_DoNotUse::Metadata_FilterMetadataEntry_DoNotUse(::google::protobuf::Arena* arena)
    : SuperType(arena) {}
void Metadata_FilterMetadataEntry_DoNotUse::MergeFrom(const Metadata_FilterMetadataEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::google::protobuf::Metadata Metadata_FilterMetadataEntry_DoNotUse::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[2];
}
void Metadata_FilterMetadataEntry_DoNotUse::MergeFrom(
    const ::google::protobuf::Message& other) {
  ::google::protobuf::Message::MergeFrom(other);
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Metadata_FilterMetadataEntry_DoNotUse::_ParseMap(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx) {
  using MF = ::google::protobuf::internal::MapField<
      Metadata_FilterMetadataEntry_DoNotUse, EntryKeyType, EntryValueType,
      kEntryKeyFieldType, kEntryValueFieldType,
      kEntryDefaultEnumValue>;
  auto mf = static_cast<MF*>(object);
  Parser<MF, ::google::protobuf::Map<EntryKeyType, EntryValueType>> parser(mf);
#define DO_(x) if (!(x)) return false
  DO_(parser.ParseMap(begin, end));
  DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
    parser.key().data(), static_cast<int>(parser.key().length()),
    ::google::protobuf::internal::WireFormatLite::PARSE,
    "envoy.api.v2.core.Metadata.FilterMetadataEntry.key"));
#undef DO_
  return true;
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER


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

void Metadata::InitAsDefaultInstance() {
}
class Metadata::HasBitSetters {
 public:
};

void Metadata::clear_filter_metadata() {
  filter_metadata_.Clear();
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int Metadata::kFilterMetadataFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

Metadata::Metadata()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.Metadata)
}
Metadata::Metadata(const Metadata& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  filter_metadata_.MergeFrom(from.filter_metadata_);
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.Metadata)
}

void Metadata::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_Metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
}

Metadata::~Metadata() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.Metadata)
  SharedDtor();
}

void Metadata::SharedDtor() {
}

void Metadata::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Metadata& Metadata::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_Metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void Metadata::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.Metadata)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  filter_metadata_.Clear();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* Metadata::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<Metadata*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // map<string, .google.protobuf.Struct> filter_metadata = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        do {
          ptr = ::google::protobuf::io::ReadSize(ptr, &size);
          GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
          parser_till_end = ::google::protobuf::internal::SlowMapEntryParser;
          auto parse_map = ::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse::_ParseMap;
          ctx->extra_parse_data().payload.clear();
          ctx->extra_parse_data().parse_map = parse_map;
          object = &msg->filter_metadata_;
          if (size > end - ptr) goto len_delim_till_end;
          auto newend = ptr + size;
          GOOGLE_PROTOBUF_PARSER_ASSERT(parse_map(ptr, newend, object, ctx));
          ptr = newend;
          if (ptr >= end) break;
        } while ((::google::protobuf::io::UnalignedLoad<::google::protobuf::uint64>(ptr) & 255) == 10 && (ptr += 1));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool Metadata::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.Metadata)
  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.Struct> filter_metadata = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          Metadata_FilterMetadataEntry_DoNotUse::Parser< ::google::protobuf::internal::MapField<
              Metadata_FilterMetadataEntry_DoNotUse,
              ::std::string, ::google::protobuf::Struct,
              ::google::protobuf::internal::WireFormatLite::TYPE_STRING,
              ::google::protobuf::internal::WireFormatLite::TYPE_MESSAGE,
              0 >,
            ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct > > parser(&filter_metadata_);
          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,
            "envoy.api.v2.core.Metadata.FilterMetadataEntry.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:envoy.api.v2.core.Metadata)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.Metadata)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void Metadata::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.Metadata)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .google.protobuf.Struct> filter_metadata = 1;
  if (!this->filter_metadata().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::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,
          "envoy.api.v2.core.Metadata.FilterMetadataEntry.key");
      }
    };

    if (output->IsSerializationDeterministic() &&
        this->filter_metadata().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->filter_metadata().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::const_iterator
          it = this->filter_metadata().begin();
          it != this->filter_metadata().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<Metadata_FilterMetadataEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(filter_metadata_.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<Metadata_FilterMetadataEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::const_iterator
          it = this->filter_metadata().begin();
          it != this->filter_metadata().end(); ++it) {
        entry.reset(filter_metadata_.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::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.Metadata)
}

::google::protobuf::uint8* Metadata::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.Metadata)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // map<string, .google.protobuf.Struct> filter_metadata = 1;
  if (!this->filter_metadata().empty()) {
    typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::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,
          "envoy.api.v2.core.Metadata.FilterMetadataEntry.key");
      }
    };

    if (false &&
        this->filter_metadata().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->filter_metadata().size()]);
      typedef ::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::size_type size_type;
      size_type n = 0;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::const_iterator
          it = this->filter_metadata().begin();
          it != this->filter_metadata().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<Metadata_FilterMetadataEntry_DoNotUse> entry;
      for (size_type i = 0; i < n; i++) {
        entry.reset(filter_metadata_.NewEntryWrapper(items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(1, *entry, target);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      ::std::unique_ptr<Metadata_FilterMetadataEntry_DoNotUse> entry;
      for (::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::const_iterator
          it = this->filter_metadata().begin();
          it != this->filter_metadata().end(); ++it) {
        entry.reset(filter_metadata_.NewEntryWrapper(it->first, it->second));
        target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessageNoVirtualToArray(1, *entry, target);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.Metadata)
  return target;
}

size_t Metadata::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.Metadata)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, .google.protobuf.Struct> filter_metadata = 1;
  total_size += 1 *
      ::google::protobuf::internal::FromIntSize(this->filter_metadata_size());
  {
    ::std::unique_ptr<Metadata_FilterMetadataEntry_DoNotUse> entry;
    for (::google::protobuf::Map< ::std::string, ::google::protobuf::Struct >::const_iterator
        it = this->filter_metadata().begin();
        it != this->filter_metadata().end(); ++it) {
      entry.reset(filter_metadata_.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 Metadata::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.Metadata)
  GOOGLE_DCHECK_NE(&from, this);
  const Metadata* source =
      ::google::protobuf::DynamicCastToGenerated<Metadata>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.Metadata)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.Metadata)
    MergeFrom(*source);
  }
}

void Metadata::MergeFrom(const Metadata& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.Metadata)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  filter_metadata_.MergeFrom(from.filter_metadata_);
}

void Metadata::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.Metadata)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void Metadata::CopyFrom(const Metadata& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.Metadata)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::google::protobuf::Metadata Metadata::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void RuntimeUInt32::InitAsDefaultInstance() {
}
class RuntimeUInt32::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int RuntimeUInt32::kDefaultValueFieldNumber;
const int RuntimeUInt32::kRuntimeKeyFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

RuntimeUInt32::RuntimeUInt32()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.RuntimeUInt32)
}
RuntimeUInt32::RuntimeUInt32(const RuntimeUInt32& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  runtime_key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.runtime_key().size() > 0) {
    runtime_key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.runtime_key_);
  }
  default_value_ = from.default_value_;
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.RuntimeUInt32)
}

void RuntimeUInt32::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_RuntimeUInt32_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  runtime_key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  default_value_ = 0u;
}

RuntimeUInt32::~RuntimeUInt32() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.RuntimeUInt32)
  SharedDtor();
}

void RuntimeUInt32::SharedDtor() {
  runtime_key_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void RuntimeUInt32::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RuntimeUInt32& RuntimeUInt32::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_RuntimeUInt32_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void RuntimeUInt32::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.RuntimeUInt32)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  runtime_key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  default_value_ = 0u;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* RuntimeUInt32::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<RuntimeUInt32*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // uint32 default_value = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
        msg->set_default_value(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // string runtime_key = 3 [(.validate.rules) = {
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.RuntimeUInt32.runtime_key");
        object = msg->mutable_runtime_key();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool RuntimeUInt32::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.RuntimeUInt32)
  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)) {
      // uint32 default_value = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &default_value_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string runtime_key = 3 [(.validate.rules) = {
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_runtime_key()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->runtime_key().data(), static_cast<int>(this->runtime_key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.RuntimeUInt32.runtime_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:envoy.api.v2.core.RuntimeUInt32)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.RuntimeUInt32)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void RuntimeUInt32::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.RuntimeUInt32)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 default_value = 2;
  if (this->default_value() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->default_value(), output);
  }

  // string runtime_key = 3 [(.validate.rules) = {
  if (this->runtime_key().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->runtime_key().data(), static_cast<int>(this->runtime_key().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.RuntimeUInt32.runtime_key");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->runtime_key(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.RuntimeUInt32)
}

::google::protobuf::uint8* RuntimeUInt32::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.RuntimeUInt32)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // uint32 default_value = 2;
  if (this->default_value() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->default_value(), target);
  }

  // string runtime_key = 3 [(.validate.rules) = {
  if (this->runtime_key().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->runtime_key().data(), static_cast<int>(this->runtime_key().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.RuntimeUInt32.runtime_key");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->runtime_key(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.RuntimeUInt32)
  return target;
}

size_t RuntimeUInt32::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.RuntimeUInt32)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  // uint32 default_value = 2;
  if (this->default_value() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->default_value());
  }

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

void RuntimeUInt32::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.RuntimeUInt32)
  GOOGLE_DCHECK_NE(&from, this);
  const RuntimeUInt32* source =
      ::google::protobuf::DynamicCastToGenerated<RuntimeUInt32>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.RuntimeUInt32)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.RuntimeUInt32)
    MergeFrom(*source);
  }
}

void RuntimeUInt32::MergeFrom(const RuntimeUInt32& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.RuntimeUInt32)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

    runtime_key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.runtime_key_);
  }
  if (from.default_value() != 0) {
    set_default_value(from.default_value());
  }
}

void RuntimeUInt32::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.RuntimeUInt32)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void RuntimeUInt32::CopyFrom(const RuntimeUInt32& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.RuntimeUInt32)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::google::protobuf::Metadata RuntimeUInt32::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void HeaderValue::InitAsDefaultInstance() {
}
class HeaderValue::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int HeaderValue::kKeyFieldNumber;
const int HeaderValue::kValueFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

HeaderValue::HeaderValue()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.HeaderValue)
}
HeaderValue::HeaderValue(const HeaderValue& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.key().size() > 0) {
    key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_);
  }
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.value().size() > 0) {
    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.HeaderValue)
}

void HeaderValue::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_HeaderValue_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

HeaderValue::~HeaderValue() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.HeaderValue)
  SharedDtor();
}

void HeaderValue::SharedDtor() {
  key_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void HeaderValue::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const HeaderValue& HeaderValue::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_HeaderValue_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void HeaderValue::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.HeaderValue)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* HeaderValue::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<HeaderValue*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string key = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.HeaderValue.key");
        object = msg->mutable_key();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string value = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.HeaderValue.value");
        object = msg->mutable_value();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool HeaderValue::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.HeaderValue)
  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 key = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_key()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->key().data(), static_cast<int>(this->key().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.HeaderValue.key"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string value = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_value()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->value().data(), static_cast<int>(this->value().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.HeaderValue.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:envoy.api.v2.core.HeaderValue)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.HeaderValue)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void HeaderValue::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.HeaderValue)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (this->key().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->key().data(), static_cast<int>(this->key().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.HeaderValue.key");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->key(), output);
  }

  // string value = 2;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.HeaderValue.value");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      2, this->value(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.HeaderValue)
}

::google::protobuf::uint8* HeaderValue::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.HeaderValue)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string key = 1;
  if (this->key().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->key().data(), static_cast<int>(this->key().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.HeaderValue.key");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->key(), target);
  }

  // string value = 2;
  if (this->value().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->value().data(), static_cast<int>(this->value().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.HeaderValue.value");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->value(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.HeaderValue)
  return target;
}

size_t HeaderValue::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.HeaderValue)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

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

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

void HeaderValue::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.HeaderValue)
  GOOGLE_DCHECK_NE(&from, this);
  const HeaderValue* source =
      ::google::protobuf::DynamicCastToGenerated<HeaderValue>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.HeaderValue)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.HeaderValue)
    MergeFrom(*source);
  }
}

void HeaderValue::MergeFrom(const HeaderValue& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.HeaderValue)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

    key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_);
  }
  if (from.value().size() > 0) {

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

void HeaderValue::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.HeaderValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void HeaderValue::CopyFrom(const HeaderValue& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.HeaderValue)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::google::protobuf::Metadata HeaderValue::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void HeaderValueOption::InitAsDefaultInstance() {
  ::envoy::api::v2::core::_HeaderValueOption_default_instance_._instance.get_mutable()->header_ = const_cast< ::envoy::api::v2::core::HeaderValue*>(
      ::envoy::api::v2::core::HeaderValue::internal_default_instance());
  ::envoy::api::v2::core::_HeaderValueOption_default_instance_._instance.get_mutable()->append_ = const_cast< ::google::protobuf::BoolValue*>(
      ::google::protobuf::BoolValue::internal_default_instance());
}
class HeaderValueOption::HasBitSetters {
 public:
  static const ::envoy::api::v2::core::HeaderValue& header(const HeaderValueOption* msg);
  static const ::google::protobuf::BoolValue& append(const HeaderValueOption* msg);
};

const ::envoy::api::v2::core::HeaderValue&
HeaderValueOption::HasBitSetters::header(const HeaderValueOption* msg) {
  return *msg->header_;
}
const ::google::protobuf::BoolValue&
HeaderValueOption::HasBitSetters::append(const HeaderValueOption* msg) {
  return *msg->append_;
}
void HeaderValueOption::clear_append() {
  if (GetArenaNoVirtual() == nullptr && append_ != nullptr) {
    delete append_;
  }
  append_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int HeaderValueOption::kHeaderFieldNumber;
const int HeaderValueOption::kAppendFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

HeaderValueOption::HeaderValueOption()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.HeaderValueOption)
}
HeaderValueOption::HeaderValueOption(const HeaderValueOption& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_header()) {
    header_ = new ::envoy::api::v2::core::HeaderValue(*from.header_);
  } else {
    header_ = nullptr;
  }
  if (from.has_append()) {
    append_ = new ::google::protobuf::BoolValue(*from.append_);
  } else {
    append_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.HeaderValueOption)
}

void HeaderValueOption::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_HeaderValueOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  ::memset(&header_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&append_) -
      reinterpret_cast<char*>(&header_)) + sizeof(append_));
}

HeaderValueOption::~HeaderValueOption() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.HeaderValueOption)
  SharedDtor();
}

void HeaderValueOption::SharedDtor() {
  if (this != internal_default_instance()) delete header_;
  if (this != internal_default_instance()) delete append_;
}

void HeaderValueOption::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const HeaderValueOption& HeaderValueOption::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_HeaderValueOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void HeaderValueOption::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.HeaderValueOption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaNoVirtual() == nullptr && header_ != nullptr) {
    delete header_;
  }
  header_ = nullptr;
  if (GetArenaNoVirtual() == nullptr && append_ != nullptr) {
    delete append_;
  }
  append_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* HeaderValueOption::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<HeaderValueOption*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // .envoy.api.v2.core.HeaderValue header = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::envoy::api::v2::core::HeaderValue::_InternalParse;
        object = msg->mutable_header();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      // .google.protobuf.BoolValue append = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::BoolValue::_InternalParse;
        object = msg->mutable_append();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool HeaderValueOption::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.HeaderValueOption)
  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)) {
      // .envoy.api.v2.core.HeaderValue header = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_header()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.BoolValue append = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_append()));
        } 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:envoy.api.v2.core.HeaderValueOption)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.HeaderValueOption)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void HeaderValueOption::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.HeaderValueOption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .envoy.api.v2.core.HeaderValue header = 1;
  if (this->has_header()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, HasBitSetters::header(this), output);
  }

  // .google.protobuf.BoolValue append = 2;
  if (this->has_append()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::append(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.HeaderValueOption)
}

::google::protobuf::uint8* HeaderValueOption::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.HeaderValueOption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .envoy.api.v2.core.HeaderValue header = 1;
  if (this->has_header()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        1, HasBitSetters::header(this), target);
  }

  // .google.protobuf.BoolValue append = 2;
  if (this->has_append()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::append(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.HeaderValueOption)
  return target;
}

size_t HeaderValueOption::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.HeaderValueOption)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .envoy.api.v2.core.HeaderValue header = 1;
  if (this->has_header()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *header_);
  }

  // .google.protobuf.BoolValue append = 2;
  if (this->has_append()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *append_);
  }

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

void HeaderValueOption::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.HeaderValueOption)
  GOOGLE_DCHECK_NE(&from, this);
  const HeaderValueOption* source =
      ::google::protobuf::DynamicCastToGenerated<HeaderValueOption>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.HeaderValueOption)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.HeaderValueOption)
    MergeFrom(*source);
  }
}

void HeaderValueOption::MergeFrom(const HeaderValueOption& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.HeaderValueOption)
  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_header()) {
    mutable_header()->::envoy::api::v2::core::HeaderValue::MergeFrom(from.header());
  }
  if (from.has_append()) {
    mutable_append()->::google::protobuf::BoolValue::MergeFrom(from.append());
  }
}

void HeaderValueOption::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.HeaderValueOption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void HeaderValueOption::CopyFrom(const HeaderValueOption& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.HeaderValueOption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::google::protobuf::Metadata HeaderValueOption::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void DataSource::InitAsDefaultInstance() {
  ::envoy::api::v2::core::_DataSource_default_instance_.filename_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::envoy::api::v2::core::_DataSource_default_instance_.inline_bytes_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::envoy::api::v2::core::_DataSource_default_instance_.inline_string_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
class DataSource::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int DataSource::kFilenameFieldNumber;
const int DataSource::kInlineBytesFieldNumber;
const int DataSource::kInlineStringFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

DataSource::DataSource()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.DataSource)
}
DataSource::DataSource(const DataSource& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  clear_has_specifier();
  switch (from.specifier_case()) {
    case kFilename: {
      set_filename(from.filename());
      break;
    }
    case kInlineBytes: {
      set_inline_bytes(from.inline_bytes());
      break;
    }
    case kInlineString: {
      set_inline_string(from.inline_string());
      break;
    }
    case SPECIFIER_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.DataSource)
}

void DataSource::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_DataSource_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  clear_has_specifier();
}

DataSource::~DataSource() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.DataSource)
  SharedDtor();
}

void DataSource::SharedDtor() {
  if (has_specifier()) {
    clear_specifier();
  }
}

void DataSource::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const DataSource& DataSource::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_DataSource_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void DataSource::clear_specifier() {
// @@protoc_insertion_point(one_of_clear_start:envoy.api.v2.core.DataSource)
  switch (specifier_case()) {
    case kFilename: {
      specifier_.filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case kInlineBytes: {
      specifier_.inline_bytes_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case kInlineString: {
      specifier_.inline_string_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case SPECIFIER_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = SPECIFIER_NOT_SET;
}


void DataSource::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.DataSource)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  clear_specifier();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* DataSource::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<DataSource*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string filename = 1 [(.validate.rules) = {
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.DataSource.filename");
        object = msg->mutable_filename();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // bytes inline_bytes = 2 [(.validate.rules) = {
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        object = msg->mutable_inline_bytes();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParser;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheck(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // string inline_string = 3 [(.validate.rules) = {
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 26) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.DataSource.inline_string");
        object = msg->mutable_inline_string();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool DataSource::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.DataSource)
  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 filename = 1 [(.validate.rules) = {
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_filename()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->filename().data(), static_cast<int>(this->filename().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.DataSource.filename"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bytes inline_bytes = 2 [(.validate.rules) = {
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_inline_bytes()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string inline_string = 3 [(.validate.rules) = {
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (26 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_inline_string()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->inline_string().data(), static_cast<int>(this->inline_string().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.DataSource.inline_string"));
        } 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:envoy.api.v2.core.DataSource)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.DataSource)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void DataSource::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.DataSource)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string filename = 1 [(.validate.rules) = {
  if (has_filename()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->filename().data(), static_cast<int>(this->filename().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.DataSource.filename");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->filename(), output);
  }

  // bytes inline_bytes = 2 [(.validate.rules) = {
  if (has_inline_bytes()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      2, this->inline_bytes(), output);
  }

  // string inline_string = 3 [(.validate.rules) = {
  if (has_inline_string()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->inline_string().data(), static_cast<int>(this->inline_string().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.DataSource.inline_string");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->inline_string(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.DataSource)
}

::google::protobuf::uint8* DataSource::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.DataSource)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string filename = 1 [(.validate.rules) = {
  if (has_filename()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->filename().data(), static_cast<int>(this->filename().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.DataSource.filename");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->filename(), target);
  }

  // bytes inline_bytes = 2 [(.validate.rules) = {
  if (has_inline_bytes()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        2, this->inline_bytes(), target);
  }

  // string inline_string = 3 [(.validate.rules) = {
  if (has_inline_string()) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->inline_string().data(), static_cast<int>(this->inline_string().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.DataSource.inline_string");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->inline_string(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.DataSource)
  return target;
}

size_t DataSource::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.DataSource)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  switch (specifier_case()) {
    // string filename = 1 [(.validate.rules) = {
    case kFilename: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->filename());
      break;
    }
    // bytes inline_bytes = 2 [(.validate.rules) = {
    case kInlineBytes: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->inline_bytes());
      break;
    }
    // string inline_string = 3 [(.validate.rules) = {
    case kInlineString: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->inline_string());
      break;
    }
    case SPECIFIER_NOT_SET: {
      break;
    }
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void DataSource::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.DataSource)
  GOOGLE_DCHECK_NE(&from, this);
  const DataSource* source =
      ::google::protobuf::DynamicCastToGenerated<DataSource>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.DataSource)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.DataSource)
    MergeFrom(*source);
  }
}

void DataSource::MergeFrom(const DataSource& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.DataSource)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  switch (from.specifier_case()) {
    case kFilename: {
      set_filename(from.filename());
      break;
    }
    case kInlineBytes: {
      set_inline_bytes(from.inline_bytes());
      break;
    }
    case kInlineString: {
      set_inline_string(from.inline_string());
      break;
    }
    case SPECIFIER_NOT_SET: {
      break;
    }
  }
}

void DataSource::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.DataSource)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void DataSource::CopyFrom(const DataSource& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.DataSource)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void DataSource::Swap(DataSource* other) {
  if (other == this) return;
  InternalSwap(other);
}
void DataSource::InternalSwap(DataSource* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(specifier_, other->specifier_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::google::protobuf::Metadata DataSource::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void TransportSocket::InitAsDefaultInstance() {
  ::envoy::api::v2::core::_TransportSocket_default_instance_._instance.get_mutable()->config_ = const_cast< ::google::protobuf::Struct*>(
      ::google::protobuf::Struct::internal_default_instance());
}
class TransportSocket::HasBitSetters {
 public:
  static const ::google::protobuf::Struct& config(const TransportSocket* msg);
};

const ::google::protobuf::Struct&
TransportSocket::HasBitSetters::config(const TransportSocket* msg) {
  return *msg->config_;
}
void TransportSocket::clear_config() {
  if (GetArenaNoVirtual() == nullptr && config_ != nullptr) {
    delete config_;
  }
  config_ = nullptr;
}
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int TransportSocket::kNameFieldNumber;
const int TransportSocket::kConfigFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

TransportSocket::TransportSocket()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.TransportSocket)
}
TransportSocket::TransportSocket(const TransportSocket& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.name().size() > 0) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  if (from.has_config()) {
    config_ = new ::google::protobuf::Struct(*from.config_);
  } else {
    config_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.TransportSocket)
}

void TransportSocket::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_TransportSocket_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  config_ = nullptr;
}

TransportSocket::~TransportSocket() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.TransportSocket)
  SharedDtor();
}

void TransportSocket::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete config_;
}

void TransportSocket::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const TransportSocket& TransportSocket::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_TransportSocket_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void TransportSocket::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.TransportSocket)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && config_ != nullptr) {
    delete config_;
  }
  config_ = nullptr;
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* TransportSocket::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<TransportSocket*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string name = 1 [(.validate.rules) = {
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.TransportSocket.name");
        object = msg->mutable_name();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .google.protobuf.Struct config = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 18) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        parser_till_end = ::google::protobuf::Struct::_InternalParse;
        object = msg->mutable_config();
        if (size > end - ptr) goto len_delim_till_end;
        ptr += size;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
            {parser_till_end, object}, ptr - size, ptr));
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool TransportSocket::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.TransportSocket)
  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 name = 1 [(.validate.rules) = {
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->name().data(), static_cast<int>(this->name().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.TransportSocket.name"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .google.protobuf.Struct config = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (18 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
               input, mutable_config()));
        } 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:envoy.api.v2.core.TransportSocket)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.TransportSocket)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void TransportSocket::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.TransportSocket)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1 [(.validate.rules) = {
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.TransportSocket.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  // .google.protobuf.Struct config = 2;
  if (this->has_config()) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, HasBitSetters::config(this), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.TransportSocket)
}

::google::protobuf::uint8* TransportSocket::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.TransportSocket)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string name = 1 [(.validate.rules) = {
  if (this->name().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->name().data(), static_cast<int>(this->name().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.TransportSocket.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  // .google.protobuf.Struct config = 2;
  if (this->has_config()) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageToArray(
        2, HasBitSetters::config(this), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.TransportSocket)
  return target;
}

size_t TransportSocket::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.TransportSocket)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  // .google.protobuf.Struct config = 2;
  if (this->has_config()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSize(
        *config_);
  }

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

void TransportSocket::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.TransportSocket)
  GOOGLE_DCHECK_NE(&from, this);
  const TransportSocket* source =
      ::google::protobuf::DynamicCastToGenerated<TransportSocket>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.TransportSocket)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.TransportSocket)
    MergeFrom(*source);
  }
}

void TransportSocket::MergeFrom(const TransportSocket& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.TransportSocket)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  if (from.has_config()) {
    mutable_config()->::google::protobuf::Struct::MergeFrom(from.config());
  }
}

void TransportSocket::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.TransportSocket)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void TransportSocket::CopyFrom(const TransportSocket& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.TransportSocket)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

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

::google::protobuf::Metadata TransportSocket::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


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

void SocketOption::InitAsDefaultInstance() {
  ::envoy::api::v2::core::_SocketOption_default_instance_.int_value_ = PROTOBUF_LONGLONG(0);
  ::envoy::api::v2::core::_SocketOption_default_instance_.buf_value_.UnsafeSetDefault(
      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
class SocketOption::HasBitSetters {
 public:
};

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SocketOption::kDescriptionFieldNumber;
const int SocketOption::kLevelFieldNumber;
const int SocketOption::kNameFieldNumber;
const int SocketOption::kIntValueFieldNumber;
const int SocketOption::kBufValueFieldNumber;
const int SocketOption::kStateFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SocketOption::SocketOption()
  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:envoy.api.v2.core.SocketOption)
}
SocketOption::SocketOption(const SocketOption& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.description().size() > 0) {
    description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  ::memcpy(&level_, &from.level_,
    static_cast<size_t>(reinterpret_cast<char*>(&state_) -
    reinterpret_cast<char*>(&level_)) + sizeof(state_));
  clear_has_value();
  switch (from.value_case()) {
    case kIntValue: {
      set_int_value(from.int_value());
      break;
    }
    case kBufValue: {
      set_buf_value(from.buf_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  // @@protoc_insertion_point(copy_constructor:envoy.api.v2.core.SocketOption)
}

void SocketOption::SharedCtor() {
  ::google::protobuf::internal::InitSCC(
      &scc_info_SocketOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  description_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&level_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&state_) -
      reinterpret_cast<char*>(&level_)) + sizeof(state_));
  clear_has_value();
}

SocketOption::~SocketOption() {
  // @@protoc_insertion_point(destructor:envoy.api.v2.core.SocketOption)
  SharedDtor();
}

void SocketOption::SharedDtor() {
  description_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (has_value()) {
    clear_value();
  }
}

void SocketOption::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SocketOption& SocketOption::default_instance() {
  ::google::protobuf::internal::InitSCC(&::scc_info_SocketOption_envoy_2fapi_2fv2_2fcore_2fbase_2eproto.base);
  return *internal_default_instance();
}


void SocketOption::clear_value() {
// @@protoc_insertion_point(one_of_clear_start:envoy.api.v2.core.SocketOption)
  switch (value_case()) {
    case kIntValue: {
      // No need to clear
      break;
    }
    case kBufValue: {
      value_.buf_value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  _oneof_case_[0] = VALUE_NOT_SET;
}


void SocketOption::Clear() {
// @@protoc_insertion_point(message_clear_start:envoy.api.v2.core.SocketOption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  description_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&level_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&state_) -
      reinterpret_cast<char*>(&level_)) + sizeof(state_));
  clear_value();
  _internal_metadata_.Clear();
}

#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
const char* SocketOption::_InternalParse(const char* begin, const char* end, void* object,
                  ::google::protobuf::internal::ParseContext* ctx) {
  auto msg = static_cast<SocketOption*>(object);
  ::google::protobuf::int32 size; (void)size;
  int depth; (void)depth;
  ::google::protobuf::uint32 tag;
  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
  auto ptr = begin;
  while (ptr < end) {
    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
    switch (tag >> 3) {
      // string description = 1;
      case 1: {
        if (static_cast<::google::protobuf::uint8>(tag) != 10) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        ctx->extra_parse_data().SetFieldName("envoy.api.v2.core.SocketOption.description");
        object = msg->mutable_description();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParserUTF8;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheckUTF8(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // int64 level = 2;
      case 2: {
        if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
        msg->set_level(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // int64 name = 3;
      case 3: {
        if (static_cast<::google::protobuf::uint8>(tag) != 24) goto handle_unusual;
        msg->set_name(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // int64 int_value = 4;
      case 4: {
        if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual;
        msg->set_int_value(::google::protobuf::internal::ReadVarint(&ptr));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      // bytes buf_value = 5;
      case 5: {
        if (static_cast<::google::protobuf::uint8>(tag) != 42) goto handle_unusual;
        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        object = msg->mutable_buf_value();
        if (size > end - ptr + ::google::protobuf::internal::ParseContext::kSlopBytes) {
          parser_till_end = ::google::protobuf::internal::GreedyStringParser;
          goto string_till_end;
        }
        GOOGLE_PROTOBUF_PARSER_ASSERT(::google::protobuf::internal::StringCheck(ptr, size, ctx));
        ::google::protobuf::internal::InlineGreedyStringParser(object, ptr, size, ctx);
        ptr += size;
        break;
      }
      // .envoy.api.v2.core.SocketOption.SocketState state = 6 [(.validate.rules) = {
      case 6: {
        if (static_cast<::google::protobuf::uint8>(tag) != 48) goto handle_unusual;
        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
        msg->set_state(static_cast<::envoy::api::v2::core::SocketOption_SocketState>(val));
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
        break;
      }
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
          ctx->EndGroup(tag);
          return ptr;
        }
        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
        ptr = res.first;
        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
        if (res.second) return ptr;
      }
    }  // switch
  }  // while
  return ptr;
string_till_end:
  static_cast<::std::string*>(object)->clear();
  static_cast<::std::string*>(object)->reserve(size);
  goto len_delim_till_end;
len_delim_till_end:
  return ctx->StoreAndTailCall(ptr, end, {_InternalParse, msg},
                               {parser_till_end, object}, size);
}
#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
bool SocketOption::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:envoy.api.v2.core.SocketOption)
  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 description = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (10 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_description()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->description().data(), static_cast<int>(this->description().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "envoy.api.v2.core.SocketOption.description"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 level = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &level_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 name = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (24 & 0xFF)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &name_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int64 int_value = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) {
          clear_value();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
                 input, &value_.int_value_)));
          set_has_int_value();
        } else {
          goto handle_unusual;
        }
        break;
      }

      // bytes buf_value = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (42 & 0xFF)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
                input, this->mutable_buf_value()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // .envoy.api.v2.core.SocketOption.SocketState state = 6 [(.validate.rules) = {
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) == (48 & 0xFF)) {
          int value = 0;
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                 input, &value)));
          set_state(static_cast< ::envoy::api::v2::core::SocketOption_SocketState >(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:envoy.api.v2.core.SocketOption)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:envoy.api.v2.core.SocketOption)
  return false;
#undef DO_
}
#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER

void SocketOption::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:envoy.api.v2.core.SocketOption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string description = 1;
  if (this->description().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast<int>(this->description().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.SocketOption.description");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->description(), output);
  }

  // int64 level = 2;
  if (this->level() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->level(), output);
  }

  // int64 name = 3;
  if (this->name() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(3, this->name(), output);
  }

  // int64 int_value = 4;
  if (has_int_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteInt64(4, this->int_value(), output);
  }

  // bytes buf_value = 5;
  if (has_buf_value()) {
    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
      5, this->buf_value(), output);
  }

  // .envoy.api.v2.core.SocketOption.SocketState state = 6 [(.validate.rules) = {
  if (this->state() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteEnum(
      6, this->state(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        _internal_metadata_.unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:envoy.api.v2.core.SocketOption)
}

::google::protobuf::uint8* SocketOption::InternalSerializeWithCachedSizesToArray(
    ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:envoy.api.v2.core.SocketOption)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string description = 1;
  if (this->description().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->description().data(), static_cast<int>(this->description().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "envoy.api.v2.core.SocketOption.description");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->description(), target);
  }

  // int64 level = 2;
  if (this->level() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(2, this->level(), target);
  }

  // int64 name = 3;
  if (this->name() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(3, this->name(), target);
  }

  // int64 int_value = 4;
  if (has_int_value()) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt64ToArray(4, this->int_value(), target);
  }

  // bytes buf_value = 5;
  if (has_buf_value()) {
    target =
      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
        5, this->buf_value(), target);
  }

  // .envoy.api.v2.core.SocketOption.SocketState state = 6 [(.validate.rules) = {
  if (this->state() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
      6, this->state(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:envoy.api.v2.core.SocketOption)
  return target;
}

size_t SocketOption::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:envoy.api.v2.core.SocketOption)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        _internal_metadata_.unknown_fields());
  }
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

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

  // int64 level = 2;
  if (this->level() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->level());
  }

  // int64 name = 3;
  if (this->name() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int64Size(
        this->name());
  }

  // .envoy.api.v2.core.SocketOption.SocketState state = 6 [(.validate.rules) = {
  if (this->state() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::EnumSize(this->state());
  }

  switch (value_case()) {
    // int64 int_value = 4;
    case kIntValue: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int64Size(
          this->int_value());
      break;
    }
    // bytes buf_value = 5;
    case kBufValue: {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::BytesSize(
          this->buf_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  SetCachedSize(cached_size);
  return total_size;
}

void SocketOption::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:envoy.api.v2.core.SocketOption)
  GOOGLE_DCHECK_NE(&from, this);
  const SocketOption* source =
      ::google::protobuf::DynamicCastToGenerated<SocketOption>(
          &from);
  if (source == nullptr) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:envoy.api.v2.core.SocketOption)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:envoy.api.v2.core.SocketOption)
    MergeFrom(*source);
  }
}

void SocketOption::MergeFrom(const SocketOption& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:envoy.api.v2.core.SocketOption)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

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

    description_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.description_);
  }
  if (from.level() != 0) {
    set_level(from.level());
  }
  if (from.name() != 0) {
    set_name(from.name());
  }
  if (from.state() != 0) {
    set_state(from.state());
  }
  switch (from.value_case()) {
    case kIntValue: {
      set_int_value(from.int_value());
      break;
    }
    case kBufValue: {
      set_buf_value(from.buf_value());
      break;
    }
    case VALUE_NOT_SET: {
      break;
    }
  }
}

void SocketOption::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:envoy.api.v2.core.SocketOption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SocketOption::CopyFrom(const SocketOption& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:envoy.api.v2.core.SocketOption)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SocketOption::Swap(SocketOption* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SocketOption::InternalSwap(SocketOption* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  description_.Swap(&other->description_, &::google::protobuf::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(level_, other->level_);
  swap(name_, other->name_);
  swap(state_, other->state_);
  swap(value_, other->value_);
  swap(_oneof_case_[0], other->_oneof_case_[0]);
}

::google::protobuf::Metadata SocketOption::GetMetadata() const {
  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_envoy_2fapi_2fv2_2fcore_2fbase_2eproto);
  return ::file_level_metadata_envoy_2fapi_2fv2_2fcore_2fbase_2eproto[kIndexInFileMessages];
}


// @@protoc_insertion_point(namespace_scope)
}  // namespace core
}  // namespace v2
}  // namespace api
}  // namespace envoy
namespace google {
namespace protobuf {
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::Locality* Arena::CreateMaybeMessage< ::envoy::api::v2::core::Locality >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::Locality >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::Node* Arena::CreateMaybeMessage< ::envoy::api::v2::core::Node >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::Node >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse* Arena::CreateMaybeMessage< ::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::Metadata_FilterMetadataEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::Metadata* Arena::CreateMaybeMessage< ::envoy::api::v2::core::Metadata >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::Metadata >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::RuntimeUInt32* Arena::CreateMaybeMessage< ::envoy::api::v2::core::RuntimeUInt32 >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::RuntimeUInt32 >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::HeaderValue* Arena::CreateMaybeMessage< ::envoy::api::v2::core::HeaderValue >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::HeaderValue >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::HeaderValueOption* Arena::CreateMaybeMessage< ::envoy::api::v2::core::HeaderValueOption >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::HeaderValueOption >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::DataSource* Arena::CreateMaybeMessage< ::envoy::api::v2::core::DataSource >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::DataSource >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::TransportSocket* Arena::CreateMaybeMessage< ::envoy::api::v2::core::TransportSocket >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::TransportSocket >(arena);
}
template<> PROTOBUF_NOINLINE ::envoy::api::v2::core::SocketOption* Arena::CreateMaybeMessage< ::envoy::api::v2::core::SocketOption >(Arena* arena) {
  return Arena::CreateInternal< ::envoy::api::v2::core::SocketOption >(arena);
}
}  // namespace protobuf
}  // namespace google

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