// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: searchcontact.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "searchcontact.pb.h"

#include <algorithm>

#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/once.h>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/wire_format_lite_inl.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)

namespace com {
namespace tencent {
namespace mars {
namespace microchat {
namespace proto {
class SearchContactRequest_LoginInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactRequest_LoginInfo> {
} _SearchContactRequest_LoginInfo_default_instance_;
class SearchContactRequest__SearchNameDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactRequest__SearchName> {
} _SearchContactRequest__SearchName_default_instance_;
class SearchContactRequestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactRequest> {
} _SearchContactRequest_default_instance_;
class SearchContactResponse__Result__ResultDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactResponse__Result__Result> {
} _SearchContactResponse__Result__Result_default_instance_;
class SearchContactResponse__ResultDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactResponse__Result> {
} _SearchContactResponse__Result_default_instance_;
class SearchContactResponse__V1DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactResponse__V1> {
} _SearchContactResponse__V1_default_instance_;
class SearchContactResponse__NickNameDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactResponse__NickName> {
} _SearchContactResponse__NickName_default_instance_;
class SearchContactResponseDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<SearchContactResponse> {
} _SearchContactResponse_default_instance_;
class GetContactRequest_LoginInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactRequest_LoginInfo> {
} _GetContactRequest_LoginInfo_default_instance_;
class GetContactRequest__SearchNameDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactRequest__SearchName> {
} _GetContactRequest__SearchName_default_instance_;
class GetContactRequest__tag7DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactRequest__tag7> {
} _GetContactRequest__tag7_default_instance_;
class GetContactRequestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactRequest> {
} _GetContactRequest_default_instance_;
class GetContactResponse__Result__ResultDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactResponse__Result__Result> {
} _GetContactResponse__Result__Result_default_instance_;
class GetContactResponse__ResultDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactResponse__Result> {
} _GetContactResponse__Result_default_instance_;
class GetContactResponse__tag3__V1DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactResponse__tag3__V1> {
} _GetContactResponse__tag3__V1_default_instance_;
class GetContactResponse__tag3__NickNameDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactResponse__tag3__NickName> {
} _GetContactResponse__tag3__NickName_default_instance_;
class GetContactResponse__tag3DefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactResponse__tag3> {
} _GetContactResponse__tag3_default_instance_;
class GetContactResponseDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<GetContactResponse> {
} _GetContactResponse_default_instance_;

namespace protobuf_searchcontact_2eproto {


namespace {

::google::protobuf::Metadata file_level_metadata[18];

}  // namespace

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
    const TableStruct::entries[] = {
  {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
};

PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
    const TableStruct::aux[] = {
  ::google::protobuf::internal::AuxillaryParseTableField(),
};
PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
    TableStruct::schema[] = {
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
  { NULL, NULL, 0, -1, -1, false },
};

const ::google::protobuf::uint32 TableStruct::offsets[] = {
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, aeskey_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, uin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, guid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, clientver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, androidver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest_LoginInfo, unknown3_),
  0,
  3,
  1,
  4,
  2,
  5,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest__SearchName, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest__SearchName, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest__SearchName, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, login_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, tag3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, tag5_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactRequest, tag6_),
  0,
  1,
  2,
  3,
  4,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result__Result, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result__Result, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result__Result, strresult_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result, code_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__Result, result_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__V1, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__V1, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__V1, v1_name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__NickName, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__NickName, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse__NickName, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, tag1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, v1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, nickname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, headicon_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SearchContactResponse, v2_name_),
  2,
  3,
  4,
  0,
  1,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, aeskey_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, uin_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, guid_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, clientver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, androidver_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest_LoginInfo, unknown3_),
  0,
  3,
  1,
  4,
  2,
  5,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest__SearchName, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest__SearchName, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest__SearchName, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest__tag7, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest__tag7, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest__tag7, tag1_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, login_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, tag2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, name_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, tag4_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, tag6_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, tag7_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactRequest, tag8_),
  0,
  3,
  1,
  4,
  5,
  2,
  6,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result__Result, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result__Result, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result__Result, strresult_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result, code_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__Result, result_),
  1,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3__V1, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3__V1, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3__V1, v1_name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3__NickName, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3__NickName, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3__NickName, name_),
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3, v1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3, nickname_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse__tag3, tag44_),
  1,
  2,
  0,
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse, _has_bits_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse, tag1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GetContactResponse, tag3_),
  0,
  1,
};

static const ::google::protobuf::internal::MigrationSchema schemas[] = {
  { 0, 11, sizeof(SearchContactRequest_LoginInfo)},
  { 17, 23, sizeof(SearchContactRequest__SearchName)},
  { 24, 34, sizeof(SearchContactRequest)},
  { 39, 45, sizeof(SearchContactResponse__Result__Result)},
  { 46, 53, sizeof(SearchContactResponse__Result)},
  { 55, 61, sizeof(SearchContactResponse__V1)},
  { 62, 68, sizeof(SearchContactResponse__NickName)},
  { 69, 79, sizeof(SearchContactResponse)},
  { 84, 95, sizeof(GetContactRequest_LoginInfo)},
  { 101, 107, sizeof(GetContactRequest__SearchName)},
  { 108, 114, sizeof(GetContactRequest__tag7)},
  { 115, 127, sizeof(GetContactRequest)},
  { 134, 140, sizeof(GetContactResponse__Result__Result)},
  { 141, 148, sizeof(GetContactResponse__Result)},
  { 150, 156, sizeof(GetContactResponse__tag3__V1)},
  { 157, 163, sizeof(GetContactResponse__tag3__NickName)},
  { 164, 172, sizeof(GetContactResponse__tag3)},
  { 175, 182, sizeof(GetContactResponse)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactRequest_LoginInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactRequest__SearchName_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactRequest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactResponse__Result__Result_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactResponse__Result_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactResponse__V1_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactResponse__NickName_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_SearchContactResponse_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactRequest_LoginInfo_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactRequest__SearchName_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactRequest__tag7_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactRequest_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactResponse__Result__Result_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactResponse__Result_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactResponse__tag3__V1_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactResponse__tag3__NickName_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactResponse__tag3_default_instance_),
  reinterpret_cast<const ::google::protobuf::Message*>(&_GetContactResponse_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "searchcontact.proto", schemas, file_default_instances, TableStruct::offsets, factory,
      file_level_metadata, NULL, NULL);
}

void protobuf_AssignDescriptorsOnce() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
}

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

}  // namespace

void TableStruct::Shutdown() {
  _SearchContactRequest_LoginInfo_default_instance_.Shutdown();
  delete file_level_metadata[0].reflection;
  _SearchContactRequest__SearchName_default_instance_.Shutdown();
  delete file_level_metadata[1].reflection;
  _SearchContactRequest_default_instance_.Shutdown();
  delete file_level_metadata[2].reflection;
  _SearchContactResponse__Result__Result_default_instance_.Shutdown();
  delete file_level_metadata[3].reflection;
  _SearchContactResponse__Result_default_instance_.Shutdown();
  delete file_level_metadata[4].reflection;
  _SearchContactResponse__V1_default_instance_.Shutdown();
  delete file_level_metadata[5].reflection;
  _SearchContactResponse__NickName_default_instance_.Shutdown();
  delete file_level_metadata[6].reflection;
  _SearchContactResponse_default_instance_.Shutdown();
  delete file_level_metadata[7].reflection;
  _GetContactRequest_LoginInfo_default_instance_.Shutdown();
  delete file_level_metadata[8].reflection;
  _GetContactRequest__SearchName_default_instance_.Shutdown();
  delete file_level_metadata[9].reflection;
  _GetContactRequest__tag7_default_instance_.Shutdown();
  delete file_level_metadata[10].reflection;
  _GetContactRequest_default_instance_.Shutdown();
  delete file_level_metadata[11].reflection;
  _GetContactResponse__Result__Result_default_instance_.Shutdown();
  delete file_level_metadata[12].reflection;
  _GetContactResponse__Result_default_instance_.Shutdown();
  delete file_level_metadata[13].reflection;
  _GetContactResponse__tag3__V1_default_instance_.Shutdown();
  delete file_level_metadata[14].reflection;
  _GetContactResponse__tag3__NickName_default_instance_.Shutdown();
  delete file_level_metadata[15].reflection;
  _GetContactResponse__tag3_default_instance_.Shutdown();
  delete file_level_metadata[16].reflection;
  _GetContactResponse_default_instance_.Shutdown();
  delete file_level_metadata[17].reflection;
}

void TableStruct::InitDefaultsImpl() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::internal::InitProtobufDefaults();
  _SearchContactRequest_LoginInfo_default_instance_.DefaultConstruct();
  _SearchContactRequest__SearchName_default_instance_.DefaultConstruct();
  _SearchContactRequest_default_instance_.DefaultConstruct();
  _SearchContactResponse__Result__Result_default_instance_.DefaultConstruct();
  _SearchContactResponse__Result_default_instance_.DefaultConstruct();
  _SearchContactResponse__V1_default_instance_.DefaultConstruct();
  _SearchContactResponse__NickName_default_instance_.DefaultConstruct();
  _SearchContactResponse_default_instance_.DefaultConstruct();
  _GetContactRequest_LoginInfo_default_instance_.DefaultConstruct();
  _GetContactRequest__SearchName_default_instance_.DefaultConstruct();
  _GetContactRequest__tag7_default_instance_.DefaultConstruct();
  _GetContactRequest_default_instance_.DefaultConstruct();
  _GetContactResponse__Result__Result_default_instance_.DefaultConstruct();
  _GetContactResponse__Result_default_instance_.DefaultConstruct();
  _GetContactResponse__tag3__V1_default_instance_.DefaultConstruct();
  _GetContactResponse__tag3__NickName_default_instance_.DefaultConstruct();
  _GetContactResponse__tag3_default_instance_.DefaultConstruct();
  _GetContactResponse_default_instance_.DefaultConstruct();
  _SearchContactRequest_default_instance_.get_mutable()->login_ = const_cast< ::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo*>(
      ::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo::internal_default_instance());
  _SearchContactRequest_default_instance_.get_mutable()->name_ = const_cast< ::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName*>(
      ::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName::internal_default_instance());
  _SearchContactResponse__Result_default_instance_.get_mutable()->result_ = const_cast< ::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result*>(
      ::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result::internal_default_instance());
  _SearchContactResponse_default_instance_.get_mutable()->tag1_ = const_cast< ::com::tencent::mars::microchat::proto::SearchContactResponse__Result*>(
      ::com::tencent::mars::microchat::proto::SearchContactResponse__Result::internal_default_instance());
  _SearchContactResponse_default_instance_.get_mutable()->v1_ = const_cast< ::com::tencent::mars::microchat::proto::SearchContactResponse__V1*>(
      ::com::tencent::mars::microchat::proto::SearchContactResponse__V1::internal_default_instance());
  _SearchContactResponse_default_instance_.get_mutable()->nickname_ = const_cast< ::com::tencent::mars::microchat::proto::SearchContactResponse__NickName*>(
      ::com::tencent::mars::microchat::proto::SearchContactResponse__NickName::internal_default_instance());
  _GetContactRequest_default_instance_.get_mutable()->login_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo*>(
      ::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo::internal_default_instance());
  _GetContactRequest_default_instance_.get_mutable()->name_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactRequest__SearchName*>(
      ::com::tencent::mars::microchat::proto::GetContactRequest__SearchName::internal_default_instance());
  _GetContactRequest_default_instance_.get_mutable()->tag7_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactRequest__tag7*>(
      ::com::tencent::mars::microchat::proto::GetContactRequest__tag7::internal_default_instance());
  _GetContactResponse__Result_default_instance_.get_mutable()->result_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result*>(
      ::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result::internal_default_instance());
  _GetContactResponse__tag3_default_instance_.get_mutable()->v1_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1*>(
      ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1::internal_default_instance());
  _GetContactResponse__tag3_default_instance_.get_mutable()->nickname_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName*>(
      ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName::internal_default_instance());
  _GetContactResponse_default_instance_.get_mutable()->tag1_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactResponse__Result*>(
      ::com::tencent::mars::microchat::proto::GetContactResponse__Result::internal_default_instance());
  _GetContactResponse_default_instance_.get_mutable()->tag3_ = const_cast< ::com::tencent::mars::microchat::proto::GetContactResponse__tag3*>(
      ::com::tencent::mars::microchat::proto::GetContactResponse__tag3::internal_default_instance());
}

void InitDefaults() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
}
void AddDescriptorsImpl() {
  InitDefaults();
  static const char descriptor[] = {
      "\n\023searchcontact.proto\022 com.tencent.mars."
      "microchat.proto\"\361\002\n\024SearchContactRequest"
      "\022O\n\005login\030\001 \002(\0132@.com.tencent.mars.micro"
      "chat.proto.SearchContactRequest.LoginInf"
      "o\022P\n\004name\030\002 \002(\0132B.com.tencent.mars.micro"
      "chat.proto.SearchContactRequest._SearchN"
      "ame\022\014\n\004tag3\030\003 \001(\005\022\014\n\004tag5\030\005 \001(\005\022\014\n\004tag6\030"
      "\006 \001(\005\032o\n\tLoginInfo\022\016\n\006aesKey\030\001 \002(\t\022\013\n\003ui"
      "n\030\002 \002(\005\022\014\n\004guid\030\003 \002(\t\022\021\n\tclientVer\030\004 \002(\005"
      "\022\022\n\nandroidVer\030\005 \002(\t\022\020\n\010unknown3\030\006 \002(\005\032\033"
      "\n\013_SearchName\022\014\n\004name\030\001 \002(\t\"\353\003\n\025SearchCo"
      "ntactResponse\022M\n\004tag1\030\001 \001(\0132\?.com.tencen"
      "t.mars.microchat.proto.SearchContactResp"
      "onse._Result\022G\n\002v1\030\002 \001(\0132;.com.tencent.m"
      "ars.microchat.proto.SearchContactRespons"
      "e._V1\022S\n\010nickname\030\003 \001(\0132A.com.tencent.ma"
      "rs.microchat.proto.SearchContactResponse"
      "._NickName\022\020\n\010headicon\030\034 \001(\t\022\017\n\007v2_name\030"
      "\036 \001(\t\032\216\001\n\007_Result\022\014\n\004code\030\001 \001(\005\022W\n\006resul"
      "t\030\002 \001(\0132G.com.tencent.mars.microchat.pro"
      "to.SearchContactResponse._Result._Result"
      "\032\034\n\007_Result\022\021\n\tstrResult\030\001 \001(\t\032\026\n\003_V1\022\017\n"
      "\007v1_Name\030\001 \001(\t\032\031\n\t_NickName\022\014\n\004name\030\001 \001("
      "\t\"\326\003\n\021GetContactRequest\022L\n\005login\030\001 \002(\0132="
      ".com.tencent.mars.microchat.proto.GetCon"
      "tactRequest.LoginInfo\022\014\n\004tag2\030\002 \001(\005\022M\n\004n"
      "ame\030\003 \002(\0132\?.com.tencent.mars.microchat.p"
      "roto.GetContactRequest._SearchName\022\014\n\004ta"
      "g4\030\004 \001(\005\022\014\n\004tag6\030\006 \001(\005\022G\n\004tag7\030\007 \001(\01329.c"
      "om.tencent.mars.microchat.proto.GetConta"
      "ctRequest._tag7\022\014\n\004tag8\030\010 \001(\005\032o\n\tLoginIn"
      "fo\022\016\n\006aesKey\030\001 \002(\t\022\013\n\003uin\030\002 \002(\005\022\014\n\004guid\030"
      "\003 \002(\t\022\021\n\tclientVer\030\004 \002(\005\022\022\n\nandroidVer\030\005"
      " \002(\t\022\020\n\010unknown3\030\006 \002(\005\032\033\n\013_SearchName\022\014\n"
      "\004name\030\001 \002(\t\032\025\n\005_tag7\022\014\n\004tag1\030\001 \002(\t\"\250\004\n\022G"
      "etContactResponse\022J\n\004tag1\030\001 \001(\0132<.com.te"
      "ncent.mars.microchat.proto.GetContactRes"
      "ponse._Result\022H\n\004tag3\030\003 \001(\0132:.com.tencen"
      "t.mars.microchat.proto.GetContactRespons"
      "e._tag3\032\213\001\n\007_Result\022\014\n\004code\030\001 \001(\005\022T\n\006res"
      "ult\030\002 \001(\0132D.com.tencent.mars.microchat.p"
      "roto.GetContactResponse._Result._Result\032"
      "\034\n\007_Result\022\021\n\tstrResult\030\001 \001(\t\032\355\001\n\005_tag3\022"
      "J\n\002v1\030\001 \001(\0132>.com.tencent.mars.microchat"
      ".proto.GetContactResponse._tag3._V1\022V\n\010n"
      "ickname\030\002 \001(\0132D.com.tencent.mars.microch"
      "at.proto.GetContactResponse._tag3._NickN"
      "ame\022\r\n\005tag44\030, \001(\t\032\026\n\003_V1\022\017\n\007v1_Name\030\001 \001"
      "(\t\032\031\n\t_NickName\022\014\n\004name\030\001 \001(\t"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 1949);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "searchcontact.proto", &protobuf_RegisterTypes);
  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
}

void AddDescriptors() {
  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
}
// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer {
  StaticDescriptorInitializer() {
    AddDescriptors();
  }
} static_descriptor_initializer;

}  // namespace protobuf_searchcontact_2eproto


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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactRequest_LoginInfo::kAesKeyFieldNumber;
const int SearchContactRequest_LoginInfo::kUinFieldNumber;
const int SearchContactRequest_LoginInfo::kGuidFieldNumber;
const int SearchContactRequest_LoginInfo::kClientVerFieldNumber;
const int SearchContactRequest_LoginInfo::kAndroidVerFieldNumber;
const int SearchContactRequest_LoginInfo::kUnknown3FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactRequest_LoginInfo::SearchContactRequest_LoginInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
}
SearchContactRequest_LoginInfo::SearchContactRequest_LoginInfo(const SearchContactRequest_LoginInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  aeskey_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_aeskey()) {
    aeskey_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.aeskey_);
  }
  guid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_guid()) {
    guid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.guid_);
  }
  androidver_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_androidver()) {
    androidver_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.androidver_);
  }
  ::memcpy(&uin_, &from.uin_,
    reinterpret_cast<char*>(&unknown3_) -
    reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
}

void SearchContactRequest_LoginInfo::SharedCtor() {
  _cached_size_ = 0;
  aeskey_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  guid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  androidver_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&uin_, 0, reinterpret_cast<char*>(&unknown3_) -
    reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
}

SearchContactRequest_LoginInfo::~SearchContactRequest_LoginInfo() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  SharedDtor();
}

void SearchContactRequest_LoginInfo::SharedDtor() {
  aeskey_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  guid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  androidver_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void SearchContactRequest_LoginInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactRequest_LoginInfo::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactRequest_LoginInfo& SearchContactRequest_LoginInfo::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactRequest_LoginInfo* SearchContactRequest_LoginInfo::New(::google::protobuf::Arena* arena) const {
  SearchContactRequest_LoginInfo* n = new SearchContactRequest_LoginInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactRequest_LoginInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  if (_has_bits_[0 / 32] & 7u) {
    if (has_aeskey()) {
      GOOGLE_DCHECK(!aeskey_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*aeskey_.UnsafeRawStringPointer())->clear();
    }
    if (has_guid()) {
      GOOGLE_DCHECK(!guid_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*guid_.UnsafeRawStringPointer())->clear();
    }
    if (has_androidver()) {
      GOOGLE_DCHECK(!androidver_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*androidver_.UnsafeRawStringPointer())->clear();
    }
  }
  if (_has_bits_[0 / 32] & 56u) {
    ::memset(&uin_, 0, reinterpret_cast<char*>(&unknown3_) -
      reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactRequest_LoginInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  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)) {
      // required string aesKey = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_aeskey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->aeskey().data(), this->aeskey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 uin = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          set_has_uin();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &uin_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string guid = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_guid()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->guid().data(), this->guid().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 clientVer = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          set_has_clientver();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &clientver_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string androidVer = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_androidver()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->androidver().data(), this->androidver().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 unknown3 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_unknown3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &unknown3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  return false;
#undef DO_
}

void SearchContactRequest_LoginInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string aesKey = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->aeskey().data(), this->aeskey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->aeskey(), output);
  }

  // required int32 uin = 2;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->uin(), output);
  }

  // required string guid = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->guid().data(), this->guid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->guid(), output);
  }

  // required int32 clientVer = 4;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->clientver(), output);
  }

  // required string androidVer = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->androidver().data(), this->androidver().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->androidver(), output);
  }

  // required int32 unknown3 = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->unknown3(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
}

::google::protobuf::uint8* SearchContactRequest_LoginInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string aesKey = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->aeskey().data(), this->aeskey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->aeskey(), target);
  }

  // required int32 uin = 2;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->uin(), target);
  }

  // required string guid = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->guid().data(), this->guid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->guid(), target);
  }

  // required int32 clientVer = 4;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->clientver(), target);
  }

  // required string androidVer = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->androidver().data(), this->androidver().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->androidver(), target);
  }

  // required int32 unknown3 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->unknown3(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  return target;
}

size_t SearchContactRequest_LoginInfo::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  size_t total_size = 0;

  if (has_aeskey()) {
    // required string aesKey = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->aeskey());
  }

  if (has_guid()) {
    // required string guid = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->guid());
  }

  if (has_androidver()) {
    // required string androidVer = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->androidver());
  }

  if (has_uin()) {
    // required int32 uin = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->uin());
  }

  if (has_clientver()) {
    // required int32 clientVer = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->clientver());
  }

  if (has_unknown3()) {
    // required int32 unknown3 = 6;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->unknown3());
  }

  return total_size;
}
size_t SearchContactRequest_LoginInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (((_has_bits_[0] & 0x0000003f) ^ 0x0000003f) == 0) {  // All required fields are present.
    // required string aesKey = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->aeskey());

    // required string guid = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->guid());

    // required string androidVer = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->androidver());

    // required int32 uin = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->uin());

    // required int32 clientVer = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->clientver());

    // required int32 unknown3 = 6;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->unknown3());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SearchContactRequest_LoginInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const SearchContactRequest_LoginInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SearchContactRequest_LoginInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
    MergeFrom(*source);
  }
}

void SearchContactRequest_LoginInfo::MergeFrom(const SearchContactRequest_LoginInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_aeskey();
      aeskey_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.aeskey_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_guid();
      guid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.guid_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_androidver();
      androidver_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.androidver_);
    }
    if (cached_has_bits & 0x00000008u) {
      uin_ = from.uin_;
    }
    if (cached_has_bits & 0x00000010u) {
      clientver_ = from.clientver_;
    }
    if (cached_has_bits & 0x00000020u) {
      unknown3_ = from.unknown3_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void SearchContactRequest_LoginInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactRequest_LoginInfo::CopyFrom(const SearchContactRequest_LoginInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SearchContactRequest_LoginInfo::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000003f) != 0x0000003f) return false;
  return true;
}

void SearchContactRequest_LoginInfo::Swap(SearchContactRequest_LoginInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactRequest_LoginInfo::InternalSwap(SearchContactRequest_LoginInfo* other) {
  aeskey_.Swap(&other->aeskey_);
  guid_.Swap(&other->guid_);
  androidver_.Swap(&other->androidver_);
  std::swap(uin_, other->uin_);
  std::swap(clientver_, other->clientver_);
  std::swap(unknown3_, other->unknown3_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactRequest_LoginInfo

// required string aesKey = 1;
bool SearchContactRequest_LoginInfo::has_aeskey() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactRequest_LoginInfo::set_has_aeskey() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactRequest_LoginInfo::clear_has_aeskey() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactRequest_LoginInfo::clear_aeskey() {
  aeskey_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_aeskey();
}
const ::std::string& SearchContactRequest_LoginInfo::aeskey() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
  return aeskey_.GetNoArena();
}
void SearchContactRequest_LoginInfo::set_aeskey(const ::std::string& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
}
#if LANG_CXX11
void SearchContactRequest_LoginInfo::set_aeskey(::std::string&& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
}
#endif
void SearchContactRequest_LoginInfo::set_aeskey(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
}
void SearchContactRequest_LoginInfo::set_aeskey(const char* value, size_t size) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
}
::std::string* SearchContactRequest_LoginInfo::mutable_aeskey() {
  set_has_aeskey();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
  return aeskey_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactRequest_LoginInfo::release_aeskey() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
  clear_has_aeskey();
  return aeskey_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactRequest_LoginInfo::set_allocated_aeskey(::std::string* aeskey) {
  if (aeskey != NULL) {
    set_has_aeskey();
  } else {
    clear_has_aeskey();
  }
  aeskey_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), aeskey);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.aesKey)
}

// required int32 uin = 2;
bool SearchContactRequest_LoginInfo::has_uin() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void SearchContactRequest_LoginInfo::set_has_uin() {
  _has_bits_[0] |= 0x00000008u;
}
void SearchContactRequest_LoginInfo::clear_has_uin() {
  _has_bits_[0] &= ~0x00000008u;
}
void SearchContactRequest_LoginInfo::clear_uin() {
  uin_ = 0;
  clear_has_uin();
}
::google::protobuf::int32 SearchContactRequest_LoginInfo::uin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.uin)
  return uin_;
}
void SearchContactRequest_LoginInfo::set_uin(::google::protobuf::int32 value) {
  set_has_uin();
  uin_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.uin)
}

// required string guid = 3;
bool SearchContactRequest_LoginInfo::has_guid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void SearchContactRequest_LoginInfo::set_has_guid() {
  _has_bits_[0] |= 0x00000002u;
}
void SearchContactRequest_LoginInfo::clear_has_guid() {
  _has_bits_[0] &= ~0x00000002u;
}
void SearchContactRequest_LoginInfo::clear_guid() {
  guid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_guid();
}
const ::std::string& SearchContactRequest_LoginInfo::guid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
  return guid_.GetNoArena();
}
void SearchContactRequest_LoginInfo::set_guid(const ::std::string& value) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
}
#if LANG_CXX11
void SearchContactRequest_LoginInfo::set_guid(::std::string&& value) {
  set_has_guid();
  guid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
}
#endif
void SearchContactRequest_LoginInfo::set_guid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
}
void SearchContactRequest_LoginInfo::set_guid(const char* value, size_t size) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
}
::std::string* SearchContactRequest_LoginInfo::mutable_guid() {
  set_has_guid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
  return guid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactRequest_LoginInfo::release_guid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
  clear_has_guid();
  return guid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactRequest_LoginInfo::set_allocated_guid(::std::string* guid) {
  if (guid != NULL) {
    set_has_guid();
  } else {
    clear_has_guid();
  }
  guid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), guid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.guid)
}

// required int32 clientVer = 4;
bool SearchContactRequest_LoginInfo::has_clientver() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void SearchContactRequest_LoginInfo::set_has_clientver() {
  _has_bits_[0] |= 0x00000010u;
}
void SearchContactRequest_LoginInfo::clear_has_clientver() {
  _has_bits_[0] &= ~0x00000010u;
}
void SearchContactRequest_LoginInfo::clear_clientver() {
  clientver_ = 0;
  clear_has_clientver();
}
::google::protobuf::int32 SearchContactRequest_LoginInfo::clientver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.clientVer)
  return clientver_;
}
void SearchContactRequest_LoginInfo::set_clientver(::google::protobuf::int32 value) {
  set_has_clientver();
  clientver_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.clientVer)
}

// required string androidVer = 5;
bool SearchContactRequest_LoginInfo::has_androidver() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void SearchContactRequest_LoginInfo::set_has_androidver() {
  _has_bits_[0] |= 0x00000004u;
}
void SearchContactRequest_LoginInfo::clear_has_androidver() {
  _has_bits_[0] &= ~0x00000004u;
}
void SearchContactRequest_LoginInfo::clear_androidver() {
  androidver_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_androidver();
}
const ::std::string& SearchContactRequest_LoginInfo::androidver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
  return androidver_.GetNoArena();
}
void SearchContactRequest_LoginInfo::set_androidver(const ::std::string& value) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
}
#if LANG_CXX11
void SearchContactRequest_LoginInfo::set_androidver(::std::string&& value) {
  set_has_androidver();
  androidver_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
}
#endif
void SearchContactRequest_LoginInfo::set_androidver(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
}
void SearchContactRequest_LoginInfo::set_androidver(const char* value, size_t size) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
}
::std::string* SearchContactRequest_LoginInfo::mutable_androidver() {
  set_has_androidver();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
  return androidver_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactRequest_LoginInfo::release_androidver() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
  clear_has_androidver();
  return androidver_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactRequest_LoginInfo::set_allocated_androidver(::std::string* androidver) {
  if (androidver != NULL) {
    set_has_androidver();
  } else {
    clear_has_androidver();
  }
  androidver_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), androidver);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.androidVer)
}

// required int32 unknown3 = 6;
bool SearchContactRequest_LoginInfo::has_unknown3() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void SearchContactRequest_LoginInfo::set_has_unknown3() {
  _has_bits_[0] |= 0x00000020u;
}
void SearchContactRequest_LoginInfo::clear_has_unknown3() {
  _has_bits_[0] &= ~0x00000020u;
}
void SearchContactRequest_LoginInfo::clear_unknown3() {
  unknown3_ = 0;
  clear_has_unknown3();
}
::google::protobuf::int32 SearchContactRequest_LoginInfo::unknown3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.unknown3)
  return unknown3_;
}
void SearchContactRequest_LoginInfo::set_unknown3(::google::protobuf::int32 value) {
  set_has_unknown3();
  unknown3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo.unknown3)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactRequest__SearchName::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactRequest__SearchName::SearchContactRequest__SearchName()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
}
SearchContactRequest__SearchName::SearchContactRequest__SearchName(const SearchContactRequest__SearchName& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
}

void SearchContactRequest__SearchName::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

SearchContactRequest__SearchName::~SearchContactRequest__SearchName() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  SharedDtor();
}

void SearchContactRequest__SearchName::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void SearchContactRequest__SearchName::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactRequest__SearchName::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactRequest__SearchName& SearchContactRequest__SearchName::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactRequest__SearchName* SearchContactRequest__SearchName::New(::google::protobuf::Arena* arena) const {
  SearchContactRequest__SearchName* n = new SearchContactRequest__SearchName;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactRequest__SearchName::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactRequest__SearchName::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  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)) {
      // required string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  return false;
#undef DO_
}

void SearchContactRequest__SearchName::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
}

::google::protobuf::uint8* SearchContactRequest__SearchName::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  return target;
}

size_t SearchContactRequest__SearchName::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // required string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SearchContactRequest__SearchName::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  GOOGLE_DCHECK_NE(&from, this);
  const SearchContactRequest__SearchName* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SearchContactRequest__SearchName>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
    MergeFrom(*source);
  }
}

void SearchContactRequest__SearchName::MergeFrom(const SearchContactRequest__SearchName& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  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_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void SearchContactRequest__SearchName::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactRequest__SearchName::CopyFrom(const SearchContactRequest__SearchName& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SearchContactRequest__SearchName::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  return true;
}

void SearchContactRequest__SearchName::Swap(SearchContactRequest__SearchName* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactRequest__SearchName::InternalSwap(SearchContactRequest__SearchName* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactRequest__SearchName

// required string name = 1;
bool SearchContactRequest__SearchName::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactRequest__SearchName::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactRequest__SearchName::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactRequest__SearchName::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& SearchContactRequest__SearchName::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
  return name_.GetNoArena();
}
void SearchContactRequest__SearchName::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
}
#if LANG_CXX11
void SearchContactRequest__SearchName::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
}
#endif
void SearchContactRequest__SearchName::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
}
void SearchContactRequest__SearchName::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
}
::std::string* SearchContactRequest__SearchName::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactRequest__SearchName::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactRequest__SearchName::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactRequest._SearchName.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactRequest::kLoginFieldNumber;
const int SearchContactRequest::kNameFieldNumber;
const int SearchContactRequest::kTag3FieldNumber;
const int SearchContactRequest::kTag5FieldNumber;
const int SearchContactRequest::kTag6FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactRequest::SearchContactRequest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactRequest)
}
SearchContactRequest::SearchContactRequest(const SearchContactRequest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_login()) {
    login_ = new ::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo(*from.login_);
  } else {
    login_ = NULL;
  }
  if (from.has_name()) {
    name_ = new ::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName(*from.name_);
  } else {
    name_ = NULL;
  }
  ::memcpy(&tag3_, &from.tag3_,
    reinterpret_cast<char*>(&tag6_) -
    reinterpret_cast<char*>(&tag3_) + sizeof(tag6_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactRequest)
}

void SearchContactRequest::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&login_, 0, reinterpret_cast<char*>(&tag6_) -
    reinterpret_cast<char*>(&login_) + sizeof(tag6_));
}

SearchContactRequest::~SearchContactRequest() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactRequest)
  SharedDtor();
}

void SearchContactRequest::SharedDtor() {
  if (this != internal_default_instance()) {
    delete login_;
  }
  if (this != internal_default_instance()) {
    delete name_;
  }
}

void SearchContactRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactRequest::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactRequest& SearchContactRequest::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactRequest* SearchContactRequest::New(::google::protobuf::Arena* arena) const {
  SearchContactRequest* n = new SearchContactRequest;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  if (_has_bits_[0 / 32] & 3u) {
    if (has_login()) {
      GOOGLE_DCHECK(login_ != NULL);
      login_->::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo::Clear();
    }
    if (has_name()) {
      GOOGLE_DCHECK(name_ != NULL);
      name_->::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName::Clear();
    }
  }
  if (_has_bits_[0 / 32] & 28u) {
    ::memset(&tag3_, 0, reinterpret_cast<char*>(&tag6_) -
      reinterpret_cast<char*>(&tag3_) + sizeof(tag6_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  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)) {
      // required .com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo login = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_login()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required .com.tencent.mars.microchat.proto.SearchContactRequest._SearchName name = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_name()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag3 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(24u)) {
          set_has_tag3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag5 = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(40u)) {
          set_has_tag5();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag5_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag6 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_tag6();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag6_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactRequest)
  return false;
#undef DO_
}

void SearchContactRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo login = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->login_, output);
  }

  // required .com.tencent.mars.microchat.proto.SearchContactRequest._SearchName name = 2;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->name_, output);
  }

  // optional int32 tag3 = 3;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->tag3(), output);
  }

  // optional int32 tag5 = 5;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->tag5(), output);
  }

  // optional int32 tag6 = 6;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->tag6(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactRequest)
}

::google::protobuf::uint8* SearchContactRequest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo login = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->login_, deterministic, target);
  }

  // required .com.tencent.mars.microchat.proto.SearchContactRequest._SearchName name = 2;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->name_, deterministic, target);
  }

  // optional int32 tag3 = 3;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->tag3(), target);
  }

  // optional int32 tag5 = 5;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->tag5(), target);
  }

  // optional int32 tag6 = 6;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->tag6(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactRequest)
  return target;
}

size_t SearchContactRequest::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  size_t total_size = 0;

  if (has_login()) {
    // required .com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo login = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->login_);
  }

  if (has_name()) {
    // required .com.tencent.mars.microchat.proto.SearchContactRequest._SearchName name = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->name_);
  }

  return total_size;
}
size_t SearchContactRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
    // required .com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo login = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->login_);

    // required .com.tencent.mars.microchat.proto.SearchContactRequest._SearchName name = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->name_);

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  if (_has_bits_[0 / 32] & 28u) {
    // optional int32 tag3 = 3;
    if (has_tag3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag3());
    }

    // optional int32 tag5 = 5;
    if (has_tag5()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag5());
    }

    // optional int32 tag6 = 6;
    if (has_tag6()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag6());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void SearchContactRequest::MergeFrom(const SearchContactRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 31u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_login()->::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo::MergeFrom(from.login());
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_name()->::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName::MergeFrom(from.name());
    }
    if (cached_has_bits & 0x00000004u) {
      tag3_ = from.tag3_;
    }
    if (cached_has_bits & 0x00000008u) {
      tag5_ = from.tag5_;
    }
    if (cached_has_bits & 0x00000010u) {
      tag6_ = from.tag6_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void SearchContactRequest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactRequest::CopyFrom(const SearchContactRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool SearchContactRequest::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
  if (has_login()) {
    if (!this->login_->IsInitialized()) return false;
  }
  if (has_name()) {
    if (!this->name_->IsInitialized()) return false;
  }
  return true;
}

void SearchContactRequest::Swap(SearchContactRequest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactRequest::InternalSwap(SearchContactRequest* other) {
  std::swap(login_, other->login_);
  std::swap(name_, other->name_);
  std::swap(tag3_, other->tag3_);
  std::swap(tag5_, other->tag5_);
  std::swap(tag6_, other->tag6_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactRequest

// required .com.tencent.mars.microchat.proto.SearchContactRequest.LoginInfo login = 1;
bool SearchContactRequest::has_login() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactRequest::set_has_login() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactRequest::clear_has_login() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactRequest::clear_login() {
  if (login_ != NULL) login_->::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo::Clear();
  clear_has_login();
}
const ::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo& SearchContactRequest::login() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.login)
  return login_ != NULL ? *login_
                         : *::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo::internal_default_instance();
}
::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo* SearchContactRequest::mutable_login() {
  set_has_login();
  if (login_ == NULL) {
    login_ = new ::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactRequest.login)
  return login_;
}
::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo* SearchContactRequest::release_login() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactRequest.login)
  clear_has_login();
  ::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo* temp = login_;
  login_ = NULL;
  return temp;
}
void SearchContactRequest::set_allocated_login(::com::tencent::mars::microchat::proto::SearchContactRequest_LoginInfo* login) {
  delete login_;
  login_ = login;
  if (login) {
    set_has_login();
  } else {
    clear_has_login();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactRequest.login)
}

// required .com.tencent.mars.microchat.proto.SearchContactRequest._SearchName name = 2;
bool SearchContactRequest::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void SearchContactRequest::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
void SearchContactRequest::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
void SearchContactRequest::clear_name() {
  if (name_ != NULL) name_->::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName::Clear();
  clear_has_name();
}
const ::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName& SearchContactRequest::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.name)
  return name_ != NULL ? *name_
                         : *::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName::internal_default_instance();
}
::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName* SearchContactRequest::mutable_name() {
  set_has_name();
  if (name_ == NULL) {
    name_ = new ::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactRequest.name)
  return name_;
}
::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName* SearchContactRequest::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactRequest.name)
  clear_has_name();
  ::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName* temp = name_;
  name_ = NULL;
  return temp;
}
void SearchContactRequest::set_allocated_name(::com::tencent::mars::microchat::proto::SearchContactRequest__SearchName* name) {
  delete name_;
  name_ = name;
  if (name) {
    set_has_name();
  } else {
    clear_has_name();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactRequest.name)
}

// optional int32 tag3 = 3;
bool SearchContactRequest::has_tag3() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void SearchContactRequest::set_has_tag3() {
  _has_bits_[0] |= 0x00000004u;
}
void SearchContactRequest::clear_has_tag3() {
  _has_bits_[0] &= ~0x00000004u;
}
void SearchContactRequest::clear_tag3() {
  tag3_ = 0;
  clear_has_tag3();
}
::google::protobuf::int32 SearchContactRequest::tag3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.tag3)
  return tag3_;
}
void SearchContactRequest::set_tag3(::google::protobuf::int32 value) {
  set_has_tag3();
  tag3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.tag3)
}

// optional int32 tag5 = 5;
bool SearchContactRequest::has_tag5() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void SearchContactRequest::set_has_tag5() {
  _has_bits_[0] |= 0x00000008u;
}
void SearchContactRequest::clear_has_tag5() {
  _has_bits_[0] &= ~0x00000008u;
}
void SearchContactRequest::clear_tag5() {
  tag5_ = 0;
  clear_has_tag5();
}
::google::protobuf::int32 SearchContactRequest::tag5() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.tag5)
  return tag5_;
}
void SearchContactRequest::set_tag5(::google::protobuf::int32 value) {
  set_has_tag5();
  tag5_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.tag5)
}

// optional int32 tag6 = 6;
bool SearchContactRequest::has_tag6() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void SearchContactRequest::set_has_tag6() {
  _has_bits_[0] |= 0x00000010u;
}
void SearchContactRequest::clear_has_tag6() {
  _has_bits_[0] &= ~0x00000010u;
}
void SearchContactRequest::clear_tag6() {
  tag6_ = 0;
  clear_has_tag6();
}
::google::protobuf::int32 SearchContactRequest::tag6() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactRequest.tag6)
  return tag6_;
}
void SearchContactRequest::set_tag6(::google::protobuf::int32 value) {
  set_has_tag6();
  tag6_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactRequest.tag6)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactResponse__Result__Result::kStrResultFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactResponse__Result__Result::SearchContactResponse__Result__Result()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
}
SearchContactResponse__Result__Result::SearchContactResponse__Result__Result(const SearchContactResponse__Result__Result& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  strresult_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_strresult()) {
    strresult_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.strresult_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
}

void SearchContactResponse__Result__Result::SharedCtor() {
  _cached_size_ = 0;
  strresult_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

SearchContactResponse__Result__Result::~SearchContactResponse__Result__Result() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  SharedDtor();
}

void SearchContactResponse__Result__Result::SharedDtor() {
  strresult_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void SearchContactResponse__Result__Result::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactResponse__Result__Result::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactResponse__Result__Result& SearchContactResponse__Result__Result::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactResponse__Result__Result* SearchContactResponse__Result__Result::New(::google::protobuf::Arena* arena) const {
  SearchContactResponse__Result__Result* n = new SearchContactResponse__Result__Result;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactResponse__Result__Result::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  if (has_strresult()) {
    GOOGLE_DCHECK(!strresult_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*strresult_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactResponse__Result__Result::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  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)) {
      // optional string strResult = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_strresult()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->strresult().data(), this->strresult().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  return false;
#undef DO_
}

void SearchContactResponse__Result__Result::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string strResult = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->strresult().data(), this->strresult().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->strresult(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
}

::google::protobuf::uint8* SearchContactResponse__Result__Result::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string strResult = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->strresult().data(), this->strresult().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->strresult(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  return target;
}

size_t SearchContactResponse__Result__Result::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string strResult = 1;
  if (has_strresult()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->strresult());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SearchContactResponse__Result__Result::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  GOOGLE_DCHECK_NE(&from, this);
  const SearchContactResponse__Result__Result* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SearchContactResponse__Result__Result>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
    MergeFrom(*source);
  }
}

void SearchContactResponse__Result__Result::MergeFrom(const SearchContactResponse__Result__Result& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  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_strresult()) {
    set_has_strresult();
    strresult_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.strresult_);
  }
}

void SearchContactResponse__Result__Result::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactResponse__Result__Result::CopyFrom(const SearchContactResponse__Result__Result& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SearchContactResponse__Result__Result::Swap(SearchContactResponse__Result__Result* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactResponse__Result__Result::InternalSwap(SearchContactResponse__Result__Result* other) {
  strresult_.Swap(&other->strresult_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactResponse__Result__Result

// optional string strResult = 1;
bool SearchContactResponse__Result__Result::has_strresult() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactResponse__Result__Result::set_has_strresult() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactResponse__Result__Result::clear_has_strresult() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactResponse__Result__Result::clear_strresult() {
  strresult_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_strresult();
}
const ::std::string& SearchContactResponse__Result__Result::strresult() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
  return strresult_.GetNoArena();
}
void SearchContactResponse__Result__Result::set_strresult(const ::std::string& value) {
  set_has_strresult();
  strresult_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
}
#if LANG_CXX11
void SearchContactResponse__Result__Result::set_strresult(::std::string&& value) {
  set_has_strresult();
  strresult_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
}
#endif
void SearchContactResponse__Result__Result::set_strresult(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_strresult();
  strresult_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
}
void SearchContactResponse__Result__Result::set_strresult(const char* value, size_t size) {
  set_has_strresult();
  strresult_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
}
::std::string* SearchContactResponse__Result__Result::mutable_strresult() {
  set_has_strresult();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
  return strresult_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactResponse__Result__Result::release_strresult() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
  clear_has_strresult();
  return strresult_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactResponse__Result__Result::set_allocated_strresult(::std::string* strresult) {
  if (strresult != NULL) {
    set_has_strresult();
  } else {
    clear_has_strresult();
  }
  strresult_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), strresult);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result.strResult)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactResponse__Result::kCodeFieldNumber;
const int SearchContactResponse__Result::kResultFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactResponse__Result::SearchContactResponse__Result()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
}
SearchContactResponse__Result::SearchContactResponse__Result(const SearchContactResponse__Result& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_result()) {
    result_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result(*from.result_);
  } else {
    result_ = NULL;
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
}

void SearchContactResponse__Result::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&result_, 0, reinterpret_cast<char*>(&code_) -
    reinterpret_cast<char*>(&result_) + sizeof(code_));
}

SearchContactResponse__Result::~SearchContactResponse__Result() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  SharedDtor();
}

void SearchContactResponse__Result::SharedDtor() {
  if (this != internal_default_instance()) {
    delete result_;
  }
}

void SearchContactResponse__Result::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactResponse__Result::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactResponse__Result& SearchContactResponse__Result::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactResponse__Result* SearchContactResponse__Result::New(::google::protobuf::Arena* arena) const {
  SearchContactResponse__Result* n = new SearchContactResponse__Result;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactResponse__Result::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  if (has_result()) {
    GOOGLE_DCHECK(result_ != NULL);
    result_->::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result::Clear();
  }
  code_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactResponse__Result::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  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)) {
      // optional int32 code = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_code();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result result = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_result()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  return false;
#undef DO_
}

void SearchContactResponse__Result::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 code = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->code(), output);
  }

  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result result = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->result_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
}

::google::protobuf::uint8* SearchContactResponse__Result::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 code = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->code(), target);
  }

  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result result = 2;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->result_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  return target;
}

size_t SearchContactResponse__Result::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result result = 2;
    if (has_result()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->result_);
    }

    // optional int32 code = 1;
    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SearchContactResponse__Result::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  GOOGLE_DCHECK_NE(&from, this);
  const SearchContactResponse__Result* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SearchContactResponse__Result>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
    MergeFrom(*source);
  }
}

void SearchContactResponse__Result::MergeFrom(const SearchContactResponse__Result& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_result()->::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result::MergeFrom(from.result());
    }
    if (cached_has_bits & 0x00000002u) {
      code_ = from.code_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void SearchContactResponse__Result::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactResponse__Result::CopyFrom(const SearchContactResponse__Result& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SearchContactResponse__Result::Swap(SearchContactResponse__Result* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactResponse__Result::InternalSwap(SearchContactResponse__Result* other) {
  std::swap(result_, other->result_);
  std::swap(code_, other->code_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactResponse__Result

// optional int32 code = 1;
bool SearchContactResponse__Result::has_code() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void SearchContactResponse__Result::set_has_code() {
  _has_bits_[0] |= 0x00000002u;
}
void SearchContactResponse__Result::clear_has_code() {
  _has_bits_[0] &= ~0x00000002u;
}
void SearchContactResponse__Result::clear_code() {
  code_ = 0;
  clear_has_code();
}
::google::protobuf::int32 SearchContactResponse__Result::code() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse._Result.code)
  return code_;
}
void SearchContactResponse__Result::set_code(::google::protobuf::int32 value) {
  set_has_code();
  code_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactResponse._Result.code)
}

// optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result._Result result = 2;
bool SearchContactResponse__Result::has_result() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactResponse__Result::set_has_result() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactResponse__Result::clear_has_result() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactResponse__Result::clear_result() {
  if (result_ != NULL) result_->::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result::Clear();
  clear_has_result();
}
const ::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result& SearchContactResponse__Result::result() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse._Result.result)
  return result_ != NULL ? *result_
                         : *::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result::internal_default_instance();
}
::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result* SearchContactResponse__Result::mutable_result() {
  set_has_result();
  if (result_ == NULL) {
    result_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse._Result.result)
  return result_;
}
::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result* SearchContactResponse__Result::release_result() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse._Result.result)
  clear_has_result();
  ::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result* temp = result_;
  result_ = NULL;
  return temp;
}
void SearchContactResponse__Result::set_allocated_result(::com::tencent::mars::microchat::proto::SearchContactResponse__Result__Result* result) {
  delete result_;
  result_ = result;
  if (result) {
    set_has_result();
  } else {
    clear_has_result();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse._Result.result)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactResponse__V1::kV1NameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactResponse__V1::SearchContactResponse__V1()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
}
SearchContactResponse__V1::SearchContactResponse__V1(const SearchContactResponse__V1& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  v1_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_v1_name()) {
    v1_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.v1_name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
}

void SearchContactResponse__V1::SharedCtor() {
  _cached_size_ = 0;
  v1_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

SearchContactResponse__V1::~SearchContactResponse__V1() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  SharedDtor();
}

void SearchContactResponse__V1::SharedDtor() {
  v1_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void SearchContactResponse__V1::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactResponse__V1::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactResponse__V1& SearchContactResponse__V1::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactResponse__V1* SearchContactResponse__V1::New(::google::protobuf::Arena* arena) const {
  SearchContactResponse__V1* n = new SearchContactResponse__V1;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactResponse__V1::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  if (has_v1_name()) {
    GOOGLE_DCHECK(!v1_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*v1_name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactResponse__V1::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  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)) {
      // optional string v1_Name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_v1_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->v1_name().data(), this->v1_name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  return false;
#undef DO_
}

void SearchContactResponse__V1::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string v1_Name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->v1_name().data(), this->v1_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->v1_name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
}

::google::protobuf::uint8* SearchContactResponse__V1::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string v1_Name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->v1_name().data(), this->v1_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->v1_name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  return target;
}

size_t SearchContactResponse__V1::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string v1_Name = 1;
  if (has_v1_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->v1_name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SearchContactResponse__V1::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  GOOGLE_DCHECK_NE(&from, this);
  const SearchContactResponse__V1* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SearchContactResponse__V1>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
    MergeFrom(*source);
  }
}

void SearchContactResponse__V1::MergeFrom(const SearchContactResponse__V1& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  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_v1_name()) {
    set_has_v1_name();
    v1_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.v1_name_);
  }
}

void SearchContactResponse__V1::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactResponse__V1::CopyFrom(const SearchContactResponse__V1& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._V1)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SearchContactResponse__V1::Swap(SearchContactResponse__V1* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactResponse__V1::InternalSwap(SearchContactResponse__V1* other) {
  v1_name_.Swap(&other->v1_name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactResponse__V1

// optional string v1_Name = 1;
bool SearchContactResponse__V1::has_v1_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactResponse__V1::set_has_v1_name() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactResponse__V1::clear_has_v1_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactResponse__V1::clear_v1_name() {
  v1_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_v1_name();
}
const ::std::string& SearchContactResponse__V1::v1_name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
  return v1_name_.GetNoArena();
}
void SearchContactResponse__V1::set_v1_name(const ::std::string& value) {
  set_has_v1_name();
  v1_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
}
#if LANG_CXX11
void SearchContactResponse__V1::set_v1_name(::std::string&& value) {
  set_has_v1_name();
  v1_name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
}
#endif
void SearchContactResponse__V1::set_v1_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_v1_name();
  v1_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
}
void SearchContactResponse__V1::set_v1_name(const char* value, size_t size) {
  set_has_v1_name();
  v1_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
}
::std::string* SearchContactResponse__V1::mutable_v1_name() {
  set_has_v1_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
  return v1_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactResponse__V1::release_v1_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
  clear_has_v1_name();
  return v1_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactResponse__V1::set_allocated_v1_name(::std::string* v1_name) {
  if (v1_name != NULL) {
    set_has_v1_name();
  } else {
    clear_has_v1_name();
  }
  v1_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), v1_name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse._V1.v1_Name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactResponse__NickName::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactResponse__NickName::SearchContactResponse__NickName()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
}
SearchContactResponse__NickName::SearchContactResponse__NickName(const SearchContactResponse__NickName& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
}

void SearchContactResponse__NickName::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

SearchContactResponse__NickName::~SearchContactResponse__NickName() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  SharedDtor();
}

void SearchContactResponse__NickName::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void SearchContactResponse__NickName::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactResponse__NickName::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactResponse__NickName& SearchContactResponse__NickName::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactResponse__NickName* SearchContactResponse__NickName::New(::google::protobuf::Arena* arena) const {
  SearchContactResponse__NickName* n = new SearchContactResponse__NickName;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactResponse__NickName::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactResponse__NickName::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  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)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  return false;
#undef DO_
}

void SearchContactResponse__NickName::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
}

::google::protobuf::uint8* SearchContactResponse__NickName::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  return target;
}

size_t SearchContactResponse__NickName::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void SearchContactResponse__NickName::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  GOOGLE_DCHECK_NE(&from, this);
  const SearchContactResponse__NickName* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const SearchContactResponse__NickName>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
    MergeFrom(*source);
  }
}

void SearchContactResponse__NickName::MergeFrom(const SearchContactResponse__NickName& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  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_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void SearchContactResponse__NickName::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactResponse__NickName::CopyFrom(const SearchContactResponse__NickName& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse._NickName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SearchContactResponse__NickName::Swap(SearchContactResponse__NickName* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactResponse__NickName::InternalSwap(SearchContactResponse__NickName* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactResponse__NickName

// optional string name = 1;
bool SearchContactResponse__NickName::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactResponse__NickName::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactResponse__NickName::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactResponse__NickName::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& SearchContactResponse__NickName::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
  return name_.GetNoArena();
}
void SearchContactResponse__NickName::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
}
#if LANG_CXX11
void SearchContactResponse__NickName::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
}
#endif
void SearchContactResponse__NickName::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
}
void SearchContactResponse__NickName::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
}
::std::string* SearchContactResponse__NickName::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactResponse__NickName::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactResponse__NickName::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse._NickName.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int SearchContactResponse::kTag1FieldNumber;
const int SearchContactResponse::kV1FieldNumber;
const int SearchContactResponse::kNicknameFieldNumber;
const int SearchContactResponse::kHeadiconFieldNumber;
const int SearchContactResponse::kV2NameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

SearchContactResponse::SearchContactResponse()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.SearchContactResponse)
}
SearchContactResponse::SearchContactResponse(const SearchContactResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  headicon_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_headicon()) {
    headicon_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headicon_);
  }
  v2_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_v2_name()) {
    v2_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.v2_name_);
  }
  if (from.has_tag1()) {
    tag1_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__Result(*from.tag1_);
  } else {
    tag1_ = NULL;
  }
  if (from.has_v1()) {
    v1_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__V1(*from.v1_);
  } else {
    v1_ = NULL;
  }
  if (from.has_nickname()) {
    nickname_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__NickName(*from.nickname_);
  } else {
    nickname_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.SearchContactResponse)
}

void SearchContactResponse::SharedCtor() {
  _cached_size_ = 0;
  headicon_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  v2_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&tag1_, 0, reinterpret_cast<char*>(&nickname_) -
    reinterpret_cast<char*>(&tag1_) + sizeof(nickname_));
}

SearchContactResponse::~SearchContactResponse() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.SearchContactResponse)
  SharedDtor();
}

void SearchContactResponse::SharedDtor() {
  headicon_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  v2_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete tag1_;
  }
  if (this != internal_default_instance()) {
    delete v1_;
  }
  if (this != internal_default_instance()) {
    delete nickname_;
  }
}

void SearchContactResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* SearchContactResponse::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const SearchContactResponse& SearchContactResponse::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

SearchContactResponse* SearchContactResponse::New(::google::protobuf::Arena* arena) const {
  SearchContactResponse* n = new SearchContactResponse;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void SearchContactResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  if (_has_bits_[0 / 32] & 31u) {
    if (has_headicon()) {
      GOOGLE_DCHECK(!headicon_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*headicon_.UnsafeRawStringPointer())->clear();
    }
    if (has_v2_name()) {
      GOOGLE_DCHECK(!v2_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*v2_name_.UnsafeRawStringPointer())->clear();
    }
    if (has_tag1()) {
      GOOGLE_DCHECK(tag1_ != NULL);
      tag1_->::com::tencent::mars::microchat::proto::SearchContactResponse__Result::Clear();
    }
    if (has_v1()) {
      GOOGLE_DCHECK(v1_ != NULL);
      v1_->::com::tencent::mars::microchat::proto::SearchContactResponse__V1::Clear();
    }
    if (has_nickname()) {
      GOOGLE_DCHECK(nickname_ != NULL);
      nickname_->::com::tencent::mars::microchat::proto::SearchContactResponse__NickName::Clear();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool SearchContactResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result tag1 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tag1()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.SearchContactResponse._V1 v1 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_v1()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.SearchContactResponse._NickName nickname = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_nickname()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string headicon = 28;
      case 28: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(226u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_headicon()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->headicon().data(), this->headicon().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactResponse.headicon");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string v2_name = 30;
      case 30: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(242u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_v2_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->v2_name().data(), this->v2_name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.SearchContactResponse.v2_name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.SearchContactResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.SearchContactResponse)
  return false;
#undef DO_
}

void SearchContactResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result tag1 = 1;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->tag1_, output);
  }

  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._V1 v1 = 2;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->v1_, output);
  }

  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._NickName nickname = 3;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->nickname_, output);
  }

  // optional string headicon = 28;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->headicon().data(), this->headicon().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse.headicon");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      28, this->headicon(), output);
  }

  // optional string v2_name = 30;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->v2_name().data(), this->v2_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse.v2_name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      30, this->v2_name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.SearchContactResponse)
}

::google::protobuf::uint8* SearchContactResponse::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result tag1 = 1;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->tag1_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._V1 v1 = 2;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->v1_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.SearchContactResponse._NickName nickname = 3;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->nickname_, deterministic, target);
  }

  // optional string headicon = 28;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->headicon().data(), this->headicon().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse.headicon");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        28, this->headicon(), target);
  }

  // optional string v2_name = 30;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->v2_name().data(), this->v2_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.SearchContactResponse.v2_name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        30, this->v2_name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.SearchContactResponse)
  return target;
}

size_t SearchContactResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 31u) {
    // optional string headicon = 28;
    if (has_headicon()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->headicon());
    }

    // optional string v2_name = 30;
    if (has_v2_name()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->v2_name());
    }

    // optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result tag1 = 1;
    if (has_tag1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->tag1_);
    }

    // optional .com.tencent.mars.microchat.proto.SearchContactResponse._V1 v1 = 2;
    if (has_v1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->v1_);
    }

    // optional .com.tencent.mars.microchat.proto.SearchContactResponse._NickName nickname = 3;
    if (has_nickname()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->nickname_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void SearchContactResponse::MergeFrom(const SearchContactResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 31u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_headicon();
      headicon_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.headicon_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_v2_name();
      v2_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.v2_name_);
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_tag1()->::com::tencent::mars::microchat::proto::SearchContactResponse__Result::MergeFrom(from.tag1());
    }
    if (cached_has_bits & 0x00000008u) {
      mutable_v1()->::com::tencent::mars::microchat::proto::SearchContactResponse__V1::MergeFrom(from.v1());
    }
    if (cached_has_bits & 0x00000010u) {
      mutable_nickname()->::com::tencent::mars::microchat::proto::SearchContactResponse__NickName::MergeFrom(from.nickname());
    }
  }
}

void SearchContactResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void SearchContactResponse::CopyFrom(const SearchContactResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.SearchContactResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void SearchContactResponse::Swap(SearchContactResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void SearchContactResponse::InternalSwap(SearchContactResponse* other) {
  headicon_.Swap(&other->headicon_);
  v2_name_.Swap(&other->v2_name_);
  std::swap(tag1_, other->tag1_);
  std::swap(v1_, other->v1_);
  std::swap(nickname_, other->nickname_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// SearchContactResponse

// optional .com.tencent.mars.microchat.proto.SearchContactResponse._Result tag1 = 1;
bool SearchContactResponse::has_tag1() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void SearchContactResponse::set_has_tag1() {
  _has_bits_[0] |= 0x00000004u;
}
void SearchContactResponse::clear_has_tag1() {
  _has_bits_[0] &= ~0x00000004u;
}
void SearchContactResponse::clear_tag1() {
  if (tag1_ != NULL) tag1_->::com::tencent::mars::microchat::proto::SearchContactResponse__Result::Clear();
  clear_has_tag1();
}
const ::com::tencent::mars::microchat::proto::SearchContactResponse__Result& SearchContactResponse::tag1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse.tag1)
  return tag1_ != NULL ? *tag1_
                         : *::com::tencent::mars::microchat::proto::SearchContactResponse__Result::internal_default_instance();
}
::com::tencent::mars::microchat::proto::SearchContactResponse__Result* SearchContactResponse::mutable_tag1() {
  set_has_tag1();
  if (tag1_ == NULL) {
    tag1_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__Result;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse.tag1)
  return tag1_;
}
::com::tencent::mars::microchat::proto::SearchContactResponse__Result* SearchContactResponse::release_tag1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse.tag1)
  clear_has_tag1();
  ::com::tencent::mars::microchat::proto::SearchContactResponse__Result* temp = tag1_;
  tag1_ = NULL;
  return temp;
}
void SearchContactResponse::set_allocated_tag1(::com::tencent::mars::microchat::proto::SearchContactResponse__Result* tag1) {
  delete tag1_;
  tag1_ = tag1;
  if (tag1) {
    set_has_tag1();
  } else {
    clear_has_tag1();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse.tag1)
}

// optional .com.tencent.mars.microchat.proto.SearchContactResponse._V1 v1 = 2;
bool SearchContactResponse::has_v1() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void SearchContactResponse::set_has_v1() {
  _has_bits_[0] |= 0x00000008u;
}
void SearchContactResponse::clear_has_v1() {
  _has_bits_[0] &= ~0x00000008u;
}
void SearchContactResponse::clear_v1() {
  if (v1_ != NULL) v1_->::com::tencent::mars::microchat::proto::SearchContactResponse__V1::Clear();
  clear_has_v1();
}
const ::com::tencent::mars::microchat::proto::SearchContactResponse__V1& SearchContactResponse::v1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse.v1)
  return v1_ != NULL ? *v1_
                         : *::com::tencent::mars::microchat::proto::SearchContactResponse__V1::internal_default_instance();
}
::com::tencent::mars::microchat::proto::SearchContactResponse__V1* SearchContactResponse::mutable_v1() {
  set_has_v1();
  if (v1_ == NULL) {
    v1_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__V1;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse.v1)
  return v1_;
}
::com::tencent::mars::microchat::proto::SearchContactResponse__V1* SearchContactResponse::release_v1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse.v1)
  clear_has_v1();
  ::com::tencent::mars::microchat::proto::SearchContactResponse__V1* temp = v1_;
  v1_ = NULL;
  return temp;
}
void SearchContactResponse::set_allocated_v1(::com::tencent::mars::microchat::proto::SearchContactResponse__V1* v1) {
  delete v1_;
  v1_ = v1;
  if (v1) {
    set_has_v1();
  } else {
    clear_has_v1();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse.v1)
}

// optional .com.tencent.mars.microchat.proto.SearchContactResponse._NickName nickname = 3;
bool SearchContactResponse::has_nickname() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void SearchContactResponse::set_has_nickname() {
  _has_bits_[0] |= 0x00000010u;
}
void SearchContactResponse::clear_has_nickname() {
  _has_bits_[0] &= ~0x00000010u;
}
void SearchContactResponse::clear_nickname() {
  if (nickname_ != NULL) nickname_->::com::tencent::mars::microchat::proto::SearchContactResponse__NickName::Clear();
  clear_has_nickname();
}
const ::com::tencent::mars::microchat::proto::SearchContactResponse__NickName& SearchContactResponse::nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse.nickname)
  return nickname_ != NULL ? *nickname_
                         : *::com::tencent::mars::microchat::proto::SearchContactResponse__NickName::internal_default_instance();
}
::com::tencent::mars::microchat::proto::SearchContactResponse__NickName* SearchContactResponse::mutable_nickname() {
  set_has_nickname();
  if (nickname_ == NULL) {
    nickname_ = new ::com::tencent::mars::microchat::proto::SearchContactResponse__NickName;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse.nickname)
  return nickname_;
}
::com::tencent::mars::microchat::proto::SearchContactResponse__NickName* SearchContactResponse::release_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse.nickname)
  clear_has_nickname();
  ::com::tencent::mars::microchat::proto::SearchContactResponse__NickName* temp = nickname_;
  nickname_ = NULL;
  return temp;
}
void SearchContactResponse::set_allocated_nickname(::com::tencent::mars::microchat::proto::SearchContactResponse__NickName* nickname) {
  delete nickname_;
  nickname_ = nickname;
  if (nickname) {
    set_has_nickname();
  } else {
    clear_has_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse.nickname)
}

// optional string headicon = 28;
bool SearchContactResponse::has_headicon() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void SearchContactResponse::set_has_headicon() {
  _has_bits_[0] |= 0x00000001u;
}
void SearchContactResponse::clear_has_headicon() {
  _has_bits_[0] &= ~0x00000001u;
}
void SearchContactResponse::clear_headicon() {
  headicon_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_headicon();
}
const ::std::string& SearchContactResponse::headicon() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
  return headicon_.GetNoArena();
}
void SearchContactResponse::set_headicon(const ::std::string& value) {
  set_has_headicon();
  headicon_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
}
#if LANG_CXX11
void SearchContactResponse::set_headicon(::std::string&& value) {
  set_has_headicon();
  headicon_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
}
#endif
void SearchContactResponse::set_headicon(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_headicon();
  headicon_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
}
void SearchContactResponse::set_headicon(const char* value, size_t size) {
  set_has_headicon();
  headicon_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
}
::std::string* SearchContactResponse::mutable_headicon() {
  set_has_headicon();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
  return headicon_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactResponse::release_headicon() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
  clear_has_headicon();
  return headicon_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactResponse::set_allocated_headicon(::std::string* headicon) {
  if (headicon != NULL) {
    set_has_headicon();
  } else {
    clear_has_headicon();
  }
  headicon_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), headicon);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse.headicon)
}

// optional string v2_name = 30;
bool SearchContactResponse::has_v2_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void SearchContactResponse::set_has_v2_name() {
  _has_bits_[0] |= 0x00000002u;
}
void SearchContactResponse::clear_has_v2_name() {
  _has_bits_[0] &= ~0x00000002u;
}
void SearchContactResponse::clear_v2_name() {
  v2_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_v2_name();
}
const ::std::string& SearchContactResponse::v2_name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
  return v2_name_.GetNoArena();
}
void SearchContactResponse::set_v2_name(const ::std::string& value) {
  set_has_v2_name();
  v2_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
}
#if LANG_CXX11
void SearchContactResponse::set_v2_name(::std::string&& value) {
  set_has_v2_name();
  v2_name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
}
#endif
void SearchContactResponse::set_v2_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_v2_name();
  v2_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
}
void SearchContactResponse::set_v2_name(const char* value, size_t size) {
  set_has_v2_name();
  v2_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
}
::std::string* SearchContactResponse::mutable_v2_name() {
  set_has_v2_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
  return v2_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* SearchContactResponse::release_v2_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
  clear_has_v2_name();
  return v2_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void SearchContactResponse::set_allocated_v2_name(::std::string* v2_name) {
  if (v2_name != NULL) {
    set_has_v2_name();
  } else {
    clear_has_v2_name();
  }
  v2_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), v2_name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.SearchContactResponse.v2_name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactRequest_LoginInfo::kAesKeyFieldNumber;
const int GetContactRequest_LoginInfo::kUinFieldNumber;
const int GetContactRequest_LoginInfo::kGuidFieldNumber;
const int GetContactRequest_LoginInfo::kClientVerFieldNumber;
const int GetContactRequest_LoginInfo::kAndroidVerFieldNumber;
const int GetContactRequest_LoginInfo::kUnknown3FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactRequest_LoginInfo::GetContactRequest_LoginInfo()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
}
GetContactRequest_LoginInfo::GetContactRequest_LoginInfo(const GetContactRequest_LoginInfo& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  aeskey_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_aeskey()) {
    aeskey_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.aeskey_);
  }
  guid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_guid()) {
    guid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.guid_);
  }
  androidver_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_androidver()) {
    androidver_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.androidver_);
  }
  ::memcpy(&uin_, &from.uin_,
    reinterpret_cast<char*>(&unknown3_) -
    reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
}

void GetContactRequest_LoginInfo::SharedCtor() {
  _cached_size_ = 0;
  aeskey_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  guid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  androidver_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&uin_, 0, reinterpret_cast<char*>(&unknown3_) -
    reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
}

GetContactRequest_LoginInfo::~GetContactRequest_LoginInfo() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  SharedDtor();
}

void GetContactRequest_LoginInfo::SharedDtor() {
  aeskey_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  guid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  androidver_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void GetContactRequest_LoginInfo::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactRequest_LoginInfo::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactRequest_LoginInfo& GetContactRequest_LoginInfo::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactRequest_LoginInfo* GetContactRequest_LoginInfo::New(::google::protobuf::Arena* arena) const {
  GetContactRequest_LoginInfo* n = new GetContactRequest_LoginInfo;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactRequest_LoginInfo::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  if (_has_bits_[0 / 32] & 7u) {
    if (has_aeskey()) {
      GOOGLE_DCHECK(!aeskey_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*aeskey_.UnsafeRawStringPointer())->clear();
    }
    if (has_guid()) {
      GOOGLE_DCHECK(!guid_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*guid_.UnsafeRawStringPointer())->clear();
    }
    if (has_androidver()) {
      GOOGLE_DCHECK(!androidver_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*androidver_.UnsafeRawStringPointer())->clear();
    }
  }
  if (_has_bits_[0 / 32] & 56u) {
    ::memset(&uin_, 0, reinterpret_cast<char*>(&unknown3_) -
      reinterpret_cast<char*>(&uin_) + sizeof(unknown3_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactRequest_LoginInfo::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  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)) {
      // required string aesKey = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_aeskey()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->aeskey().data(), this->aeskey().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 uin = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          set_has_uin();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &uin_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string guid = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_guid()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->guid().data(), this->guid().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 clientVer = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          set_has_clientver();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &clientver_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required string androidVer = 5;
      case 5: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(42u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_androidver()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->androidver().data(), this->androidver().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer");
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required int32 unknown3 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_unknown3();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &unknown3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  return false;
#undef DO_
}

void GetContactRequest_LoginInfo::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string aesKey = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->aeskey().data(), this->aeskey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->aeskey(), output);
  }

  // required int32 uin = 2;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->uin(), output);
  }

  // required string guid = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->guid().data(), this->guid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      3, this->guid(), output);
  }

  // required int32 clientVer = 4;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->clientver(), output);
  }

  // required string androidVer = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->androidver().data(), this->androidver().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      5, this->androidver(), output);
  }

  // required int32 unknown3 = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->unknown3(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
}

::google::protobuf::uint8* GetContactRequest_LoginInfo::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string aesKey = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->aeskey().data(), this->aeskey().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->aeskey(), target);
  }

  // required int32 uin = 2;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->uin(), target);
  }

  // required string guid = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->guid().data(), this->guid().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        3, this->guid(), target);
  }

  // required int32 clientVer = 4;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->clientver(), target);
  }

  // required string androidVer = 5;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->androidver().data(), this->androidver().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        5, this->androidver(), target);
  }

  // required int32 unknown3 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->unknown3(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  return target;
}

size_t GetContactRequest_LoginInfo::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  size_t total_size = 0;

  if (has_aeskey()) {
    // required string aesKey = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->aeskey());
  }

  if (has_guid()) {
    // required string guid = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->guid());
  }

  if (has_androidver()) {
    // required string androidVer = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->androidver());
  }

  if (has_uin()) {
    // required int32 uin = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->uin());
  }

  if (has_clientver()) {
    // required int32 clientVer = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->clientver());
  }

  if (has_unknown3()) {
    // required int32 unknown3 = 6;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->unknown3());
  }

  return total_size;
}
size_t GetContactRequest_LoginInfo::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (((_has_bits_[0] & 0x0000003f) ^ 0x0000003f) == 0) {  // All required fields are present.
    // required string aesKey = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->aeskey());

    // required string guid = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->guid());

    // required string androidVer = 5;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->androidver());

    // required int32 uin = 2;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->uin());

    // required int32 clientVer = 4;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->clientver());

    // required int32 unknown3 = 6;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->unknown3());

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactRequest_LoginInfo::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactRequest_LoginInfo* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactRequest_LoginInfo>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
    MergeFrom(*source);
  }
}

void GetContactRequest_LoginInfo::MergeFrom(const GetContactRequest_LoginInfo& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 63u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_aeskey();
      aeskey_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.aeskey_);
    }
    if (cached_has_bits & 0x00000002u) {
      set_has_guid();
      guid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.guid_);
    }
    if (cached_has_bits & 0x00000004u) {
      set_has_androidver();
      androidver_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.androidver_);
    }
    if (cached_has_bits & 0x00000008u) {
      uin_ = from.uin_;
    }
    if (cached_has_bits & 0x00000010u) {
      clientver_ = from.clientver_;
    }
    if (cached_has_bits & 0x00000020u) {
      unknown3_ = from.unknown3_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void GetContactRequest_LoginInfo::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactRequest_LoginInfo::CopyFrom(const GetContactRequest_LoginInfo& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetContactRequest_LoginInfo::IsInitialized() const {
  if ((_has_bits_[0] & 0x0000003f) != 0x0000003f) return false;
  return true;
}

void GetContactRequest_LoginInfo::Swap(GetContactRequest_LoginInfo* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactRequest_LoginInfo::InternalSwap(GetContactRequest_LoginInfo* other) {
  aeskey_.Swap(&other->aeskey_);
  guid_.Swap(&other->guid_);
  androidver_.Swap(&other->androidver_);
  std::swap(uin_, other->uin_);
  std::swap(clientver_, other->clientver_);
  std::swap(unknown3_, other->unknown3_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactRequest_LoginInfo

// required string aesKey = 1;
bool GetContactRequest_LoginInfo::has_aeskey() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactRequest_LoginInfo::set_has_aeskey() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactRequest_LoginInfo::clear_has_aeskey() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactRequest_LoginInfo::clear_aeskey() {
  aeskey_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_aeskey();
}
const ::std::string& GetContactRequest_LoginInfo::aeskey() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
  return aeskey_.GetNoArena();
}
void GetContactRequest_LoginInfo::set_aeskey(const ::std::string& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
}
#if LANG_CXX11
void GetContactRequest_LoginInfo::set_aeskey(::std::string&& value) {
  set_has_aeskey();
  aeskey_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
}
#endif
void GetContactRequest_LoginInfo::set_aeskey(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
}
void GetContactRequest_LoginInfo::set_aeskey(const char* value, size_t size) {
  set_has_aeskey();
  aeskey_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
}
::std::string* GetContactRequest_LoginInfo::mutable_aeskey() {
  set_has_aeskey();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
  return aeskey_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactRequest_LoginInfo::release_aeskey() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
  clear_has_aeskey();
  return aeskey_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactRequest_LoginInfo::set_allocated_aeskey(::std::string* aeskey) {
  if (aeskey != NULL) {
    set_has_aeskey();
  } else {
    clear_has_aeskey();
  }
  aeskey_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), aeskey);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.aesKey)
}

// required int32 uin = 2;
bool GetContactRequest_LoginInfo::has_uin() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void GetContactRequest_LoginInfo::set_has_uin() {
  _has_bits_[0] |= 0x00000008u;
}
void GetContactRequest_LoginInfo::clear_has_uin() {
  _has_bits_[0] &= ~0x00000008u;
}
void GetContactRequest_LoginInfo::clear_uin() {
  uin_ = 0;
  clear_has_uin();
}
::google::protobuf::int32 GetContactRequest_LoginInfo::uin() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.uin)
  return uin_;
}
void GetContactRequest_LoginInfo::set_uin(::google::protobuf::int32 value) {
  set_has_uin();
  uin_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.uin)
}

// required string guid = 3;
bool GetContactRequest_LoginInfo::has_guid() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void GetContactRequest_LoginInfo::set_has_guid() {
  _has_bits_[0] |= 0x00000002u;
}
void GetContactRequest_LoginInfo::clear_has_guid() {
  _has_bits_[0] &= ~0x00000002u;
}
void GetContactRequest_LoginInfo::clear_guid() {
  guid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_guid();
}
const ::std::string& GetContactRequest_LoginInfo::guid() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
  return guid_.GetNoArena();
}
void GetContactRequest_LoginInfo::set_guid(const ::std::string& value) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
}
#if LANG_CXX11
void GetContactRequest_LoginInfo::set_guid(::std::string&& value) {
  set_has_guid();
  guid_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
}
#endif
void GetContactRequest_LoginInfo::set_guid(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
}
void GetContactRequest_LoginInfo::set_guid(const char* value, size_t size) {
  set_has_guid();
  guid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
}
::std::string* GetContactRequest_LoginInfo::mutable_guid() {
  set_has_guid();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
  return guid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactRequest_LoginInfo::release_guid() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
  clear_has_guid();
  return guid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactRequest_LoginInfo::set_allocated_guid(::std::string* guid) {
  if (guid != NULL) {
    set_has_guid();
  } else {
    clear_has_guid();
  }
  guid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), guid);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.guid)
}

// required int32 clientVer = 4;
bool GetContactRequest_LoginInfo::has_clientver() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void GetContactRequest_LoginInfo::set_has_clientver() {
  _has_bits_[0] |= 0x00000010u;
}
void GetContactRequest_LoginInfo::clear_has_clientver() {
  _has_bits_[0] &= ~0x00000010u;
}
void GetContactRequest_LoginInfo::clear_clientver() {
  clientver_ = 0;
  clear_has_clientver();
}
::google::protobuf::int32 GetContactRequest_LoginInfo::clientver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.clientVer)
  return clientver_;
}
void GetContactRequest_LoginInfo::set_clientver(::google::protobuf::int32 value) {
  set_has_clientver();
  clientver_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.clientVer)
}

// required string androidVer = 5;
bool GetContactRequest_LoginInfo::has_androidver() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void GetContactRequest_LoginInfo::set_has_androidver() {
  _has_bits_[0] |= 0x00000004u;
}
void GetContactRequest_LoginInfo::clear_has_androidver() {
  _has_bits_[0] &= ~0x00000004u;
}
void GetContactRequest_LoginInfo::clear_androidver() {
  androidver_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_androidver();
}
const ::std::string& GetContactRequest_LoginInfo::androidver() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
  return androidver_.GetNoArena();
}
void GetContactRequest_LoginInfo::set_androidver(const ::std::string& value) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
}
#if LANG_CXX11
void GetContactRequest_LoginInfo::set_androidver(::std::string&& value) {
  set_has_androidver();
  androidver_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
}
#endif
void GetContactRequest_LoginInfo::set_androidver(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
}
void GetContactRequest_LoginInfo::set_androidver(const char* value, size_t size) {
  set_has_androidver();
  androidver_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
}
::std::string* GetContactRequest_LoginInfo::mutable_androidver() {
  set_has_androidver();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
  return androidver_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactRequest_LoginInfo::release_androidver() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
  clear_has_androidver();
  return androidver_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactRequest_LoginInfo::set_allocated_androidver(::std::string* androidver) {
  if (androidver != NULL) {
    set_has_androidver();
  } else {
    clear_has_androidver();
  }
  androidver_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), androidver);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.androidVer)
}

// required int32 unknown3 = 6;
bool GetContactRequest_LoginInfo::has_unknown3() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void GetContactRequest_LoginInfo::set_has_unknown3() {
  _has_bits_[0] |= 0x00000020u;
}
void GetContactRequest_LoginInfo::clear_has_unknown3() {
  _has_bits_[0] &= ~0x00000020u;
}
void GetContactRequest_LoginInfo::clear_unknown3() {
  unknown3_ = 0;
  clear_has_unknown3();
}
::google::protobuf::int32 GetContactRequest_LoginInfo::unknown3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.unknown3)
  return unknown3_;
}
void GetContactRequest_LoginInfo::set_unknown3(::google::protobuf::int32 value) {
  set_has_unknown3();
  unknown3_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo.unknown3)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactRequest__SearchName::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactRequest__SearchName::GetContactRequest__SearchName()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
}
GetContactRequest__SearchName::GetContactRequest__SearchName(const GetContactRequest__SearchName& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
}

void GetContactRequest__SearchName::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

GetContactRequest__SearchName::~GetContactRequest__SearchName() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  SharedDtor();
}

void GetContactRequest__SearchName::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void GetContactRequest__SearchName::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactRequest__SearchName::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactRequest__SearchName& GetContactRequest__SearchName::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactRequest__SearchName* GetContactRequest__SearchName::New(::google::protobuf::Arena* arena) const {
  GetContactRequest__SearchName* n = new GetContactRequest__SearchName;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactRequest__SearchName::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactRequest__SearchName::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  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)) {
      // required string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  return false;
#undef DO_
}

void GetContactRequest__SearchName::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
}

::google::protobuf::uint8* GetContactRequest__SearchName::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  return target;
}

size_t GetContactRequest__SearchName::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // required string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactRequest__SearchName::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactRequest__SearchName* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactRequest__SearchName>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
    MergeFrom(*source);
  }
}

void GetContactRequest__SearchName::MergeFrom(const GetContactRequest__SearchName& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  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_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void GetContactRequest__SearchName::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactRequest__SearchName::CopyFrom(const GetContactRequest__SearchName& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest._SearchName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetContactRequest__SearchName::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  return true;
}

void GetContactRequest__SearchName::Swap(GetContactRequest__SearchName* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactRequest__SearchName::InternalSwap(GetContactRequest__SearchName* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactRequest__SearchName

// required string name = 1;
bool GetContactRequest__SearchName::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactRequest__SearchName::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactRequest__SearchName::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactRequest__SearchName::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& GetContactRequest__SearchName::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
  return name_.GetNoArena();
}
void GetContactRequest__SearchName::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
}
#if LANG_CXX11
void GetContactRequest__SearchName::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
}
#endif
void GetContactRequest__SearchName::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
}
void GetContactRequest__SearchName::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
}
::std::string* GetContactRequest__SearchName::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactRequest__SearchName::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactRequest__SearchName::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest._SearchName.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactRequest__tag7::kTag1FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactRequest__tag7::GetContactRequest__tag7()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
}
GetContactRequest__tag7::GetContactRequest__tag7(const GetContactRequest__tag7& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag1_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag1()) {
    tag1_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag1_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
}

void GetContactRequest__tag7::SharedCtor() {
  _cached_size_ = 0;
  tag1_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

GetContactRequest__tag7::~GetContactRequest__tag7() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  SharedDtor();
}

void GetContactRequest__tag7::SharedDtor() {
  tag1_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void GetContactRequest__tag7::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactRequest__tag7::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactRequest__tag7& GetContactRequest__tag7::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactRequest__tag7* GetContactRequest__tag7::New(::google::protobuf::Arena* arena) const {
  GetContactRequest__tag7* n = new GetContactRequest__tag7;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactRequest__tag7::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  if (has_tag1()) {
    GOOGLE_DCHECK(!tag1_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*tag1_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactRequest__tag7::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  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)) {
      // required string tag1 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag1()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag1().data(), this->tag1().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  return false;
#undef DO_
}

void GetContactRequest__tag7::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string tag1 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag1().data(), this->tag1().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->tag1(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
}

::google::protobuf::uint8* GetContactRequest__tag7::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required string tag1 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag1().data(), this->tag1().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->tag1(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  return target;
}

size_t GetContactRequest__tag7::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // required string tag1 = 1;
  if (has_tag1()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->tag1());
  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactRequest__tag7::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactRequest__tag7* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactRequest__tag7>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
    MergeFrom(*source);
  }
}

void GetContactRequest__tag7::MergeFrom(const GetContactRequest__tag7& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  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_tag1()) {
    set_has_tag1();
    tag1_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag1_);
  }
}

void GetContactRequest__tag7::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactRequest__tag7::CopyFrom(const GetContactRequest__tag7& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest._tag7)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetContactRequest__tag7::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
  return true;
}

void GetContactRequest__tag7::Swap(GetContactRequest__tag7* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactRequest__tag7::InternalSwap(GetContactRequest__tag7* other) {
  tag1_.Swap(&other->tag1_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactRequest__tag7

// required string tag1 = 1;
bool GetContactRequest__tag7::has_tag1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactRequest__tag7::set_has_tag1() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactRequest__tag7::clear_has_tag1() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactRequest__tag7::clear_tag1() {
  tag1_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag1();
}
const ::std::string& GetContactRequest__tag7::tag1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
  return tag1_.GetNoArena();
}
void GetContactRequest__tag7::set_tag1(const ::std::string& value) {
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
}
#if LANG_CXX11
void GetContactRequest__tag7::set_tag1(::std::string&& value) {
  set_has_tag1();
  tag1_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
}
#endif
void GetContactRequest__tag7::set_tag1(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
}
void GetContactRequest__tag7::set_tag1(const char* value, size_t size) {
  set_has_tag1();
  tag1_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
}
::std::string* GetContactRequest__tag7::mutable_tag1() {
  set_has_tag1();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
  return tag1_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactRequest__tag7::release_tag1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
  clear_has_tag1();
  return tag1_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactRequest__tag7::set_allocated_tag1(::std::string* tag1) {
  if (tag1 != NULL) {
    set_has_tag1();
  } else {
    clear_has_tag1();
  }
  tag1_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag1);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest._tag7.tag1)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactRequest::kLoginFieldNumber;
const int GetContactRequest::kTag2FieldNumber;
const int GetContactRequest::kNameFieldNumber;
const int GetContactRequest::kTag4FieldNumber;
const int GetContactRequest::kTag6FieldNumber;
const int GetContactRequest::kTag7FieldNumber;
const int GetContactRequest::kTag8FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactRequest::GetContactRequest()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactRequest)
}
GetContactRequest::GetContactRequest(const GetContactRequest& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_login()) {
    login_ = new ::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo(*from.login_);
  } else {
    login_ = NULL;
  }
  if (from.has_name()) {
    name_ = new ::com::tencent::mars::microchat::proto::GetContactRequest__SearchName(*from.name_);
  } else {
    name_ = NULL;
  }
  if (from.has_tag7()) {
    tag7_ = new ::com::tencent::mars::microchat::proto::GetContactRequest__tag7(*from.tag7_);
  } else {
    tag7_ = NULL;
  }
  ::memcpy(&tag2_, &from.tag2_,
    reinterpret_cast<char*>(&tag8_) -
    reinterpret_cast<char*>(&tag2_) + sizeof(tag8_));
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactRequest)
}

void GetContactRequest::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&login_, 0, reinterpret_cast<char*>(&tag8_) -
    reinterpret_cast<char*>(&login_) + sizeof(tag8_));
}

GetContactRequest::~GetContactRequest() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactRequest)
  SharedDtor();
}

void GetContactRequest::SharedDtor() {
  if (this != internal_default_instance()) {
    delete login_;
  }
  if (this != internal_default_instance()) {
    delete name_;
  }
  if (this != internal_default_instance()) {
    delete tag7_;
  }
}

void GetContactRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactRequest::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactRequest& GetContactRequest::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactRequest* GetContactRequest::New(::google::protobuf::Arena* arena) const {
  GetContactRequest* n = new GetContactRequest;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactRequest)
  if (_has_bits_[0 / 32] & 7u) {
    if (has_login()) {
      GOOGLE_DCHECK(login_ != NULL);
      login_->::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo::Clear();
    }
    if (has_name()) {
      GOOGLE_DCHECK(name_ != NULL);
      name_->::com::tencent::mars::microchat::proto::GetContactRequest__SearchName::Clear();
    }
    if (has_tag7()) {
      GOOGLE_DCHECK(tag7_ != NULL);
      tag7_->::com::tencent::mars::microchat::proto::GetContactRequest__tag7::Clear();
    }
  }
  if (_has_bits_[0 / 32] & 120u) {
    ::memset(&tag2_, 0, reinterpret_cast<char*>(&tag8_) -
      reinterpret_cast<char*>(&tag2_) + sizeof(tag8_));
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactRequest::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactRequest)
  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)) {
      // required .com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo login = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_login()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag2 = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(16u)) {
          set_has_tag2();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag2_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // required .com.tencent.mars.microchat.proto.GetContactRequest._SearchName name = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_name()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag4 = 4;
      case 4: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(32u)) {
          set_has_tag4();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag4_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag6 = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(48u)) {
          set_has_tag6();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag6_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.GetContactRequest._tag7 tag7 = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(58u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tag7()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional int32 tag8 = 8;
      case 8: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(64u)) {
          set_has_tag8();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &tag8_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactRequest)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactRequest)
  return false;
#undef DO_
}

void GetContactRequest::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo login = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->login_, output);
  }

  // optional int32 tag2 = 2;
  if (cached_has_bits & 0x00000008u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->tag2(), output);
  }

  // required .com.tencent.mars.microchat.proto.GetContactRequest._SearchName name = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->name_, output);
  }

  // optional int32 tag4 = 4;
  if (cached_has_bits & 0x00000010u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->tag4(), output);
  }

  // optional int32 tag6 = 6;
  if (cached_has_bits & 0x00000020u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(6, this->tag6(), output);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactRequest._tag7 tag7 = 7;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      7, *this->tag7_, output);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x00000040u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(8, this->tag8(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactRequest)
}

::google::protobuf::uint8* GetContactRequest::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactRequest)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // required .com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo login = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->login_, deterministic, target);
  }

  // optional int32 tag2 = 2;
  if (cached_has_bits & 0x00000008u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->tag2(), target);
  }

  // required .com.tencent.mars.microchat.proto.GetContactRequest._SearchName name = 3;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->name_, deterministic, target);
  }

  // optional int32 tag4 = 4;
  if (cached_has_bits & 0x00000010u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->tag4(), target);
  }

  // optional int32 tag6 = 6;
  if (cached_has_bits & 0x00000020u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(6, this->tag6(), target);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactRequest._tag7 tag7 = 7;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        7, *this->tag7_, deterministic, target);
  }

  // optional int32 tag8 = 8;
  if (cached_has_bits & 0x00000040u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(8, this->tag8(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactRequest)
  return target;
}

size_t GetContactRequest::RequiredFieldsByteSizeFallback() const {
// @@protoc_insertion_point(required_fields_byte_size_fallback_start:com.tencent.mars.microchat.proto.GetContactRequest)
  size_t total_size = 0;

  if (has_login()) {
    // required .com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo login = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->login_);
  }

  if (has_name()) {
    // required .com.tencent.mars.microchat.proto.GetContactRequest._SearchName name = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->name_);
  }

  return total_size;
}
size_t GetContactRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactRequest)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
    // required .com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo login = 1;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->login_);

    // required .com.tencent.mars.microchat.proto.GetContactRequest._SearchName name = 3;
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
        *this->name_);

  } else {
    total_size += RequiredFieldsByteSizeFallback();
  }
  if (_has_bits_[0 / 32] & 124u) {
    // optional .com.tencent.mars.microchat.proto.GetContactRequest._tag7 tag7 = 7;
    if (has_tag7()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->tag7_);
    }

    // optional int32 tag2 = 2;
    if (has_tag2()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag2());
    }

    // optional int32 tag4 = 4;
    if (has_tag4()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag4());
    }

    // optional int32 tag6 = 6;
    if (has_tag6()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag6());
    }

    // optional int32 tag8 = 8;
    if (has_tag8()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->tag8());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void GetContactRequest::MergeFrom(const GetContactRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactRequest)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 127u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_login()->::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo::MergeFrom(from.login());
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_name()->::com::tencent::mars::microchat::proto::GetContactRequest__SearchName::MergeFrom(from.name());
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_tag7()->::com::tencent::mars::microchat::proto::GetContactRequest__tag7::MergeFrom(from.tag7());
    }
    if (cached_has_bits & 0x00000008u) {
      tag2_ = from.tag2_;
    }
    if (cached_has_bits & 0x00000010u) {
      tag4_ = from.tag4_;
    }
    if (cached_has_bits & 0x00000020u) {
      tag6_ = from.tag6_;
    }
    if (cached_has_bits & 0x00000040u) {
      tag8_ = from.tag8_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void GetContactRequest::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactRequest::CopyFrom(const GetContactRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool GetContactRequest::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
  if (has_login()) {
    if (!this->login_->IsInitialized()) return false;
  }
  if (has_name()) {
    if (!this->name_->IsInitialized()) return false;
  }
  if (has_tag7()) {
    if (!this->tag7_->IsInitialized()) return false;
  }
  return true;
}

void GetContactRequest::Swap(GetContactRequest* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactRequest::InternalSwap(GetContactRequest* other) {
  std::swap(login_, other->login_);
  std::swap(name_, other->name_);
  std::swap(tag7_, other->tag7_);
  std::swap(tag2_, other->tag2_);
  std::swap(tag4_, other->tag4_);
  std::swap(tag6_, other->tag6_);
  std::swap(tag8_, other->tag8_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactRequest

// required .com.tencent.mars.microchat.proto.GetContactRequest.LoginInfo login = 1;
bool GetContactRequest::has_login() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactRequest::set_has_login() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactRequest::clear_has_login() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactRequest::clear_login() {
  if (login_ != NULL) login_->::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo::Clear();
  clear_has_login();
}
const ::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo& GetContactRequest::login() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.login)
  return login_ != NULL ? *login_
                         : *::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo* GetContactRequest::mutable_login() {
  set_has_login();
  if (login_ == NULL) {
    login_ = new ::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest.login)
  return login_;
}
::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo* GetContactRequest::release_login() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest.login)
  clear_has_login();
  ::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo* temp = login_;
  login_ = NULL;
  return temp;
}
void GetContactRequest::set_allocated_login(::com::tencent::mars::microchat::proto::GetContactRequest_LoginInfo* login) {
  delete login_;
  login_ = login;
  if (login) {
    set_has_login();
  } else {
    clear_has_login();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest.login)
}

// optional int32 tag2 = 2;
bool GetContactRequest::has_tag2() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
void GetContactRequest::set_has_tag2() {
  _has_bits_[0] |= 0x00000008u;
}
void GetContactRequest::clear_has_tag2() {
  _has_bits_[0] &= ~0x00000008u;
}
void GetContactRequest::clear_tag2() {
  tag2_ = 0;
  clear_has_tag2();
}
::google::protobuf::int32 GetContactRequest::tag2() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.tag2)
  return tag2_;
}
void GetContactRequest::set_tag2(::google::protobuf::int32 value) {
  set_has_tag2();
  tag2_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.tag2)
}

// required .com.tencent.mars.microchat.proto.GetContactRequest._SearchName name = 3;
bool GetContactRequest::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void GetContactRequest::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
void GetContactRequest::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
void GetContactRequest::clear_name() {
  if (name_ != NULL) name_->::com::tencent::mars::microchat::proto::GetContactRequest__SearchName::Clear();
  clear_has_name();
}
const ::com::tencent::mars::microchat::proto::GetContactRequest__SearchName& GetContactRequest::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.name)
  return name_ != NULL ? *name_
                         : *::com::tencent::mars::microchat::proto::GetContactRequest__SearchName::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactRequest__SearchName* GetContactRequest::mutable_name() {
  set_has_name();
  if (name_ == NULL) {
    name_ = new ::com::tencent::mars::microchat::proto::GetContactRequest__SearchName;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest.name)
  return name_;
}
::com::tencent::mars::microchat::proto::GetContactRequest__SearchName* GetContactRequest::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest.name)
  clear_has_name();
  ::com::tencent::mars::microchat::proto::GetContactRequest__SearchName* temp = name_;
  name_ = NULL;
  return temp;
}
void GetContactRequest::set_allocated_name(::com::tencent::mars::microchat::proto::GetContactRequest__SearchName* name) {
  delete name_;
  name_ = name;
  if (name) {
    set_has_name();
  } else {
    clear_has_name();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest.name)
}

// optional int32 tag4 = 4;
bool GetContactRequest::has_tag4() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
void GetContactRequest::set_has_tag4() {
  _has_bits_[0] |= 0x00000010u;
}
void GetContactRequest::clear_has_tag4() {
  _has_bits_[0] &= ~0x00000010u;
}
void GetContactRequest::clear_tag4() {
  tag4_ = 0;
  clear_has_tag4();
}
::google::protobuf::int32 GetContactRequest::tag4() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.tag4)
  return tag4_;
}
void GetContactRequest::set_tag4(::google::protobuf::int32 value) {
  set_has_tag4();
  tag4_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.tag4)
}

// optional int32 tag6 = 6;
bool GetContactRequest::has_tag6() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
void GetContactRequest::set_has_tag6() {
  _has_bits_[0] |= 0x00000020u;
}
void GetContactRequest::clear_has_tag6() {
  _has_bits_[0] &= ~0x00000020u;
}
void GetContactRequest::clear_tag6() {
  tag6_ = 0;
  clear_has_tag6();
}
::google::protobuf::int32 GetContactRequest::tag6() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.tag6)
  return tag6_;
}
void GetContactRequest::set_tag6(::google::protobuf::int32 value) {
  set_has_tag6();
  tag6_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.tag6)
}

// optional .com.tencent.mars.microchat.proto.GetContactRequest._tag7 tag7 = 7;
bool GetContactRequest::has_tag7() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void GetContactRequest::set_has_tag7() {
  _has_bits_[0] |= 0x00000004u;
}
void GetContactRequest::clear_has_tag7() {
  _has_bits_[0] &= ~0x00000004u;
}
void GetContactRequest::clear_tag7() {
  if (tag7_ != NULL) tag7_->::com::tencent::mars::microchat::proto::GetContactRequest__tag7::Clear();
  clear_has_tag7();
}
const ::com::tencent::mars::microchat::proto::GetContactRequest__tag7& GetContactRequest::tag7() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.tag7)
  return tag7_ != NULL ? *tag7_
                         : *::com::tencent::mars::microchat::proto::GetContactRequest__tag7::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactRequest__tag7* GetContactRequest::mutable_tag7() {
  set_has_tag7();
  if (tag7_ == NULL) {
    tag7_ = new ::com::tencent::mars::microchat::proto::GetContactRequest__tag7;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactRequest.tag7)
  return tag7_;
}
::com::tencent::mars::microchat::proto::GetContactRequest__tag7* GetContactRequest::release_tag7() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactRequest.tag7)
  clear_has_tag7();
  ::com::tencent::mars::microchat::proto::GetContactRequest__tag7* temp = tag7_;
  tag7_ = NULL;
  return temp;
}
void GetContactRequest::set_allocated_tag7(::com::tencent::mars::microchat::proto::GetContactRequest__tag7* tag7) {
  delete tag7_;
  tag7_ = tag7;
  if (tag7) {
    set_has_tag7();
  } else {
    clear_has_tag7();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactRequest.tag7)
}

// optional int32 tag8 = 8;
bool GetContactRequest::has_tag8() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
void GetContactRequest::set_has_tag8() {
  _has_bits_[0] |= 0x00000040u;
}
void GetContactRequest::clear_has_tag8() {
  _has_bits_[0] &= ~0x00000040u;
}
void GetContactRequest::clear_tag8() {
  tag8_ = 0;
  clear_has_tag8();
}
::google::protobuf::int32 GetContactRequest::tag8() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactRequest.tag8)
  return tag8_;
}
void GetContactRequest::set_tag8(::google::protobuf::int32 value) {
  set_has_tag8();
  tag8_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactRequest.tag8)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactResponse__Result__Result::kStrResultFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactResponse__Result__Result::GetContactResponse__Result__Result()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
}
GetContactResponse__Result__Result::GetContactResponse__Result__Result(const GetContactResponse__Result__Result& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  strresult_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_strresult()) {
    strresult_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.strresult_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
}

void GetContactResponse__Result__Result::SharedCtor() {
  _cached_size_ = 0;
  strresult_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

GetContactResponse__Result__Result::~GetContactResponse__Result__Result() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  SharedDtor();
}

void GetContactResponse__Result__Result::SharedDtor() {
  strresult_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void GetContactResponse__Result__Result::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactResponse__Result__Result::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactResponse__Result__Result& GetContactResponse__Result__Result::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactResponse__Result__Result* GetContactResponse__Result__Result::New(::google::protobuf::Arena* arena) const {
  GetContactResponse__Result__Result* n = new GetContactResponse__Result__Result;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactResponse__Result__Result::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  if (has_strresult()) {
    GOOGLE_DCHECK(!strresult_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*strresult_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactResponse__Result__Result::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  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)) {
      // optional string strResult = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_strresult()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->strresult().data(), this->strresult().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  return false;
#undef DO_
}

void GetContactResponse__Result__Result::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string strResult = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->strresult().data(), this->strresult().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->strresult(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
}

::google::protobuf::uint8* GetContactResponse__Result__Result::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string strResult = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->strresult().data(), this->strresult().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->strresult(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  return target;
}

size_t GetContactResponse__Result__Result::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string strResult = 1;
  if (has_strresult()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->strresult());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactResponse__Result__Result::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactResponse__Result__Result* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactResponse__Result__Result>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
    MergeFrom(*source);
  }
}

void GetContactResponse__Result__Result::MergeFrom(const GetContactResponse__Result__Result& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  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_strresult()) {
    set_has_strresult();
    strresult_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.strresult_);
  }
}

void GetContactResponse__Result__Result::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactResponse__Result__Result::CopyFrom(const GetContactResponse__Result__Result& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void GetContactResponse__Result__Result::Swap(GetContactResponse__Result__Result* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactResponse__Result__Result::InternalSwap(GetContactResponse__Result__Result* other) {
  strresult_.Swap(&other->strresult_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactResponse__Result__Result

// optional string strResult = 1;
bool GetContactResponse__Result__Result::has_strresult() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactResponse__Result__Result::set_has_strresult() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactResponse__Result__Result::clear_has_strresult() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactResponse__Result__Result::clear_strresult() {
  strresult_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_strresult();
}
const ::std::string& GetContactResponse__Result__Result::strresult() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
  return strresult_.GetNoArena();
}
void GetContactResponse__Result__Result::set_strresult(const ::std::string& value) {
  set_has_strresult();
  strresult_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
}
#if LANG_CXX11
void GetContactResponse__Result__Result::set_strresult(::std::string&& value) {
  set_has_strresult();
  strresult_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
}
#endif
void GetContactResponse__Result__Result::set_strresult(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_strresult();
  strresult_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
}
void GetContactResponse__Result__Result::set_strresult(const char* value, size_t size) {
  set_has_strresult();
  strresult_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
}
::std::string* GetContactResponse__Result__Result::mutable_strresult() {
  set_has_strresult();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
  return strresult_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactResponse__Result__Result::release_strresult() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
  clear_has_strresult();
  return strresult_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactResponse__Result__Result::set_allocated_strresult(::std::string* strresult) {
  if (strresult != NULL) {
    set_has_strresult();
  } else {
    clear_has_strresult();
  }
  strresult_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), strresult);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._Result._Result.strResult)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactResponse__Result::kCodeFieldNumber;
const int GetContactResponse__Result::kResultFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactResponse__Result::GetContactResponse__Result()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactResponse._Result)
}
GetContactResponse__Result::GetContactResponse__Result(const GetContactResponse__Result& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_result()) {
    result_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result(*from.result_);
  } else {
    result_ = NULL;
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactResponse._Result)
}

void GetContactResponse__Result::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&result_, 0, reinterpret_cast<char*>(&code_) -
    reinterpret_cast<char*>(&result_) + sizeof(code_));
}

GetContactResponse__Result::~GetContactResponse__Result() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  SharedDtor();
}

void GetContactResponse__Result::SharedDtor() {
  if (this != internal_default_instance()) {
    delete result_;
  }
}

void GetContactResponse__Result::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactResponse__Result::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactResponse__Result& GetContactResponse__Result::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactResponse__Result* GetContactResponse__Result::New(::google::protobuf::Arena* arena) const {
  GetContactResponse__Result* n = new GetContactResponse__Result;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactResponse__Result::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  if (has_result()) {
    GOOGLE_DCHECK(result_ != NULL);
    result_->::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result::Clear();
  }
  code_ = 0;
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactResponse__Result::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  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)) {
      // optional int32 code = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(8u)) {
          set_has_code();
          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &code_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result._Result result = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_result()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  return false;
#undef DO_
}

void GetContactResponse__Result::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 code = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->code(), output);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result._Result result = 2;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->result_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactResponse._Result)
}

::google::protobuf::uint8* GetContactResponse__Result::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional int32 code = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->code(), target);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result._Result result = 2;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->result_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  return target;
}

size_t GetContactResponse__Result::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result._Result result = 2;
    if (has_result()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->result_);
    }

    // optional int32 code = 1;
    if (has_code()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::Int32Size(
          this->code());
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactResponse__Result::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactResponse__Result* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactResponse__Result>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactResponse._Result)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactResponse._Result)
    MergeFrom(*source);
  }
}

void GetContactResponse__Result::MergeFrom(const GetContactResponse__Result& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_result()->::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result::MergeFrom(from.result());
    }
    if (cached_has_bits & 0x00000002u) {
      code_ = from.code_;
    }
    _has_bits_[0] |= cached_has_bits;
  }
}

void GetContactResponse__Result::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactResponse__Result::CopyFrom(const GetContactResponse__Result& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._Result)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void GetContactResponse__Result::Swap(GetContactResponse__Result* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactResponse__Result::InternalSwap(GetContactResponse__Result* other) {
  std::swap(result_, other->result_);
  std::swap(code_, other->code_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactResponse__Result

// optional int32 code = 1;
bool GetContactResponse__Result::has_code() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void GetContactResponse__Result::set_has_code() {
  _has_bits_[0] |= 0x00000002u;
}
void GetContactResponse__Result::clear_has_code() {
  _has_bits_[0] &= ~0x00000002u;
}
void GetContactResponse__Result::clear_code() {
  code_ = 0;
  clear_has_code();
}
::google::protobuf::int32 GetContactResponse__Result::code() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._Result.code)
  return code_;
}
void GetContactResponse__Result::set_code(::google::protobuf::int32 value) {
  set_has_code();
  code_ = value;
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactResponse._Result.code)
}

// optional .com.tencent.mars.microchat.proto.GetContactResponse._Result._Result result = 2;
bool GetContactResponse__Result::has_result() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactResponse__Result::set_has_result() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactResponse__Result::clear_has_result() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactResponse__Result::clear_result() {
  if (result_ != NULL) result_->::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result::Clear();
  clear_has_result();
}
const ::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result& GetContactResponse__Result::result() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._Result.result)
  return result_ != NULL ? *result_
                         : *::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result* GetContactResponse__Result::mutable_result() {
  set_has_result();
  if (result_ == NULL) {
    result_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._Result.result)
  return result_;
}
::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result* GetContactResponse__Result::release_result() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._Result.result)
  clear_has_result();
  ::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result* temp = result_;
  result_ = NULL;
  return temp;
}
void GetContactResponse__Result::set_allocated_result(::com::tencent::mars::microchat::proto::GetContactResponse__Result__Result* result) {
  delete result_;
  result_ = result;
  if (result) {
    set_has_result();
  } else {
    clear_has_result();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._Result.result)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactResponse__tag3__V1::kV1NameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactResponse__tag3__V1::GetContactResponse__tag3__V1()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
}
GetContactResponse__tag3__V1::GetContactResponse__tag3__V1(const GetContactResponse__tag3__V1& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  v1_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_v1_name()) {
    v1_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.v1_name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
}

void GetContactResponse__tag3__V1::SharedCtor() {
  _cached_size_ = 0;
  v1_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

GetContactResponse__tag3__V1::~GetContactResponse__tag3__V1() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  SharedDtor();
}

void GetContactResponse__tag3__V1::SharedDtor() {
  v1_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void GetContactResponse__tag3__V1::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactResponse__tag3__V1::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactResponse__tag3__V1& GetContactResponse__tag3__V1::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactResponse__tag3__V1* GetContactResponse__tag3__V1::New(::google::protobuf::Arena* arena) const {
  GetContactResponse__tag3__V1* n = new GetContactResponse__tag3__V1;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactResponse__tag3__V1::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  if (has_v1_name()) {
    GOOGLE_DCHECK(!v1_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*v1_name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactResponse__tag3__V1::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  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)) {
      // optional string v1_Name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_v1_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->v1_name().data(), this->v1_name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  return false;
#undef DO_
}

void GetContactResponse__tag3__V1::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string v1_Name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->v1_name().data(), this->v1_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->v1_name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
}

::google::protobuf::uint8* GetContactResponse__tag3__V1::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string v1_Name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->v1_name().data(), this->v1_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->v1_name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  return target;
}

size_t GetContactResponse__tag3__V1::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string v1_Name = 1;
  if (has_v1_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->v1_name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactResponse__tag3__V1::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactResponse__tag3__V1* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactResponse__tag3__V1>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
    MergeFrom(*source);
  }
}

void GetContactResponse__tag3__V1::MergeFrom(const GetContactResponse__tag3__V1& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  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_v1_name()) {
    set_has_v1_name();
    v1_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.v1_name_);
  }
}

void GetContactResponse__tag3__V1::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactResponse__tag3__V1::CopyFrom(const GetContactResponse__tag3__V1& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void GetContactResponse__tag3__V1::Swap(GetContactResponse__tag3__V1* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactResponse__tag3__V1::InternalSwap(GetContactResponse__tag3__V1* other) {
  v1_name_.Swap(&other->v1_name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactResponse__tag3__V1

// optional string v1_Name = 1;
bool GetContactResponse__tag3__V1::has_v1_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactResponse__tag3__V1::set_has_v1_name() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactResponse__tag3__V1::clear_has_v1_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactResponse__tag3__V1::clear_v1_name() {
  v1_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_v1_name();
}
const ::std::string& GetContactResponse__tag3__V1::v1_name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
  return v1_name_.GetNoArena();
}
void GetContactResponse__tag3__V1::set_v1_name(const ::std::string& value) {
  set_has_v1_name();
  v1_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
}
#if LANG_CXX11
void GetContactResponse__tag3__V1::set_v1_name(::std::string&& value) {
  set_has_v1_name();
  v1_name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
}
#endif
void GetContactResponse__tag3__V1::set_v1_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_v1_name();
  v1_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
}
void GetContactResponse__tag3__V1::set_v1_name(const char* value, size_t size) {
  set_has_v1_name();
  v1_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
}
::std::string* GetContactResponse__tag3__V1::mutable_v1_name() {
  set_has_v1_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
  return v1_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactResponse__tag3__V1::release_v1_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
  clear_has_v1_name();
  return v1_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactResponse__tag3__V1::set_allocated_v1_name(::std::string* v1_name) {
  if (v1_name != NULL) {
    set_has_v1_name();
  } else {
    clear_has_v1_name();
  }
  v1_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), v1_name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1.v1_Name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactResponse__tag3__NickName::kNameFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactResponse__tag3__NickName::GetContactResponse__tag3__NickName()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
}
GetContactResponse__tag3__NickName::GetContactResponse__tag3__NickName(const GetContactResponse__tag3__NickName& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_name()) {
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
}

void GetContactResponse__tag3__NickName::SharedCtor() {
  _cached_size_ = 0;
  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

GetContactResponse__tag3__NickName::~GetContactResponse__tag3__NickName() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  SharedDtor();
}

void GetContactResponse__tag3__NickName::SharedDtor() {
  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void GetContactResponse__tag3__NickName::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactResponse__tag3__NickName::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactResponse__tag3__NickName& GetContactResponse__tag3__NickName::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactResponse__tag3__NickName* GetContactResponse__tag3__NickName::New(::google::protobuf::Arena* arena) const {
  GetContactResponse__tag3__NickName* n = new GetContactResponse__tag3__NickName;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactResponse__tag3__NickName::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  if (has_name()) {
    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
    (*name_.UnsafeRawStringPointer())->clear();
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactResponse__tag3__NickName::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  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)) {
      // optional string name = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->name().data(), this->name().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  return false;
#undef DO_
}

void GetContactResponse__tag3__NickName::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      1, this->name(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
}

::google::protobuf::uint8* GetContactResponse__tag3__NickName::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional string name = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->name().data(), this->name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        1, this->name(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  return target;
}

size_t GetContactResponse__tag3__NickName::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  // optional string name = 1;
  if (has_name()) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->name());
  }

  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactResponse__tag3__NickName::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactResponse__tag3__NickName* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactResponse__tag3__NickName>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
    MergeFrom(*source);
  }
}

void GetContactResponse__tag3__NickName::MergeFrom(const GetContactResponse__tag3__NickName& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  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_name()) {
    set_has_name();
    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
  }
}

void GetContactResponse__tag3__NickName::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactResponse__tag3__NickName::CopyFrom(const GetContactResponse__tag3__NickName& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void GetContactResponse__tag3__NickName::Swap(GetContactResponse__tag3__NickName* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactResponse__tag3__NickName::InternalSwap(GetContactResponse__tag3__NickName* other) {
  name_.Swap(&other->name_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactResponse__tag3__NickName

// optional string name = 1;
bool GetContactResponse__tag3__NickName::has_name() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactResponse__tag3__NickName::set_has_name() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactResponse__tag3__NickName::clear_has_name() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactResponse__tag3__NickName::clear_name() {
  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_name();
}
const ::std::string& GetContactResponse__tag3__NickName::name() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
  return name_.GetNoArena();
}
void GetContactResponse__tag3__NickName::set_name(const ::std::string& value) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
}
#if LANG_CXX11
void GetContactResponse__tag3__NickName::set_name(::std::string&& value) {
  set_has_name();
  name_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
}
#endif
void GetContactResponse__tag3__NickName::set_name(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
}
void GetContactResponse__tag3__NickName::set_name(const char* value, size_t size) {
  set_has_name();
  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
}
::std::string* GetContactResponse__tag3__NickName::mutable_name() {
  set_has_name();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactResponse__tag3__NickName::release_name() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
  clear_has_name();
  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactResponse__tag3__NickName::set_allocated_name(::std::string* name) {
  if (name != NULL) {
    set_has_name();
  } else {
    clear_has_name();
  }
  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName.name)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactResponse__tag3::kV1FieldNumber;
const int GetContactResponse__tag3::kNicknameFieldNumber;
const int GetContactResponse__tag3::kTag44FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactResponse__tag3::GetContactResponse__tag3()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
}
GetContactResponse__tag3::GetContactResponse__tag3(const GetContactResponse__tag3& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  tag44_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.has_tag44()) {
    tag44_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag44_);
  }
  if (from.has_v1()) {
    v1_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1(*from.v1_);
  } else {
    v1_ = NULL;
  }
  if (from.has_nickname()) {
    nickname_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName(*from.nickname_);
  } else {
    nickname_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
}

void GetContactResponse__tag3::SharedCtor() {
  _cached_size_ = 0;
  tag44_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&v1_, 0, reinterpret_cast<char*>(&nickname_) -
    reinterpret_cast<char*>(&v1_) + sizeof(nickname_));
}

GetContactResponse__tag3::~GetContactResponse__tag3() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  SharedDtor();
}

void GetContactResponse__tag3::SharedDtor() {
  tag44_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) {
    delete v1_;
  }
  if (this != internal_default_instance()) {
    delete nickname_;
  }
}

void GetContactResponse__tag3::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactResponse__tag3::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactResponse__tag3& GetContactResponse__tag3::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactResponse__tag3* GetContactResponse__tag3::New(::google::protobuf::Arena* arena) const {
  GetContactResponse__tag3* n = new GetContactResponse__tag3;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactResponse__tag3::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  if (_has_bits_[0 / 32] & 7u) {
    if (has_tag44()) {
      GOOGLE_DCHECK(!tag44_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
      (*tag44_.UnsafeRawStringPointer())->clear();
    }
    if (has_v1()) {
      GOOGLE_DCHECK(v1_ != NULL);
      v1_->::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1::Clear();
    }
    if (has_nickname()) {
      GOOGLE_DCHECK(nickname_ != NULL);
      nickname_->::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName::Clear();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactResponse__tag3::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  for (;;) {
    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(16383u);
    tag = p.first;
    if (!p.second) goto handle_unusual;
    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
      // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1 v1 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_v1()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName nickname = 2;
      case 2: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(18u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_nickname()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional string tag44 = 44;
      case 44: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(354u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_tag44()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
            this->tag44().data(), this->tag44().length(),
            ::google::protobuf::internal::WireFormat::PARSE,
            "com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44");
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  return false;
#undef DO_
}

void GetContactResponse__tag3::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1 v1 = 1;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->v1_, output);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName nickname = 2;
  if (cached_has_bits & 0x00000004u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      2, *this->nickname_, output);
  }

  // optional string tag44 = 44;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag44().data(), this->tag44().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      44, this->tag44(), output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
}

::google::protobuf::uint8* GetContactResponse__tag3::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1 v1 = 1;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->v1_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName nickname = 2;
  if (cached_has_bits & 0x00000004u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        2, *this->nickname_, deterministic, target);
  }

  // optional string tag44 = 44;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
      this->tag44().data(), this->tag44().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE,
      "com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        44, this->tag44(), target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  return target;
}

size_t GetContactResponse__tag3::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 7u) {
    // optional string tag44 = 44;
    if (has_tag44()) {
      total_size += 2 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->tag44());
    }

    // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1 v1 = 1;
    if (has_v1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->v1_);
    }

    // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName nickname = 2;
    if (has_nickname()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->nickname_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

void GetContactResponse__tag3::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  GOOGLE_DCHECK_NE(&from, this);
  const GetContactResponse__tag3* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const GetContactResponse__tag3>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
    MergeFrom(*source);
  }
}

void GetContactResponse__tag3::MergeFrom(const GetContactResponse__tag3& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 7u) {
    if (cached_has_bits & 0x00000001u) {
      set_has_tag44();
      tag44_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.tag44_);
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_v1()->::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1::MergeFrom(from.v1());
    }
    if (cached_has_bits & 0x00000004u) {
      mutable_nickname()->::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName::MergeFrom(from.nickname());
    }
  }
}

void GetContactResponse__tag3::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactResponse__tag3::CopyFrom(const GetContactResponse__tag3& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse._tag3)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void GetContactResponse__tag3::Swap(GetContactResponse__tag3* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactResponse__tag3::InternalSwap(GetContactResponse__tag3* other) {
  tag44_.Swap(&other->tag44_);
  std::swap(v1_, other->v1_);
  std::swap(nickname_, other->nickname_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactResponse__tag3

// optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._V1 v1 = 1;
bool GetContactResponse__tag3::has_v1() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void GetContactResponse__tag3::set_has_v1() {
  _has_bits_[0] |= 0x00000002u;
}
void GetContactResponse__tag3::clear_has_v1() {
  _has_bits_[0] &= ~0x00000002u;
}
void GetContactResponse__tag3::clear_v1() {
  if (v1_ != NULL) v1_->::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1::Clear();
  clear_has_v1();
}
const ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1& GetContactResponse__tag3::v1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._tag3.v1)
  return v1_ != NULL ? *v1_
                         : *::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1* GetContactResponse__tag3::mutable_v1() {
  set_has_v1();
  if (v1_ == NULL) {
    v1_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._tag3.v1)
  return v1_;
}
::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1* GetContactResponse__tag3::release_v1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._tag3.v1)
  clear_has_v1();
  ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1* temp = v1_;
  v1_ = NULL;
  return temp;
}
void GetContactResponse__tag3::set_allocated_v1(::com::tencent::mars::microchat::proto::GetContactResponse__tag3__V1* v1) {
  delete v1_;
  v1_ = v1;
  if (v1) {
    set_has_v1();
  } else {
    clear_has_v1();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._tag3.v1)
}

// optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3._NickName nickname = 2;
bool GetContactResponse__tag3::has_nickname() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
void GetContactResponse__tag3::set_has_nickname() {
  _has_bits_[0] |= 0x00000004u;
}
void GetContactResponse__tag3::clear_has_nickname() {
  _has_bits_[0] &= ~0x00000004u;
}
void GetContactResponse__tag3::clear_nickname() {
  if (nickname_ != NULL) nickname_->::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName::Clear();
  clear_has_nickname();
}
const ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName& GetContactResponse__tag3::nickname() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._tag3.nickname)
  return nickname_ != NULL ? *nickname_
                         : *::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName* GetContactResponse__tag3::mutable_nickname() {
  set_has_nickname();
  if (nickname_ == NULL) {
    nickname_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._tag3.nickname)
  return nickname_;
}
::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName* GetContactResponse__tag3::release_nickname() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._tag3.nickname)
  clear_has_nickname();
  ::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName* temp = nickname_;
  nickname_ = NULL;
  return temp;
}
void GetContactResponse__tag3::set_allocated_nickname(::com::tencent::mars::microchat::proto::GetContactResponse__tag3__NickName* nickname) {
  delete nickname_;
  nickname_ = nickname;
  if (nickname) {
    set_has_nickname();
  } else {
    clear_has_nickname();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._tag3.nickname)
}

// optional string tag44 = 44;
bool GetContactResponse__tag3::has_tag44() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactResponse__tag3::set_has_tag44() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactResponse__tag3::clear_has_tag44() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactResponse__tag3::clear_tag44() {
  tag44_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_tag44();
}
const ::std::string& GetContactResponse__tag3::tag44() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
  return tag44_.GetNoArena();
}
void GetContactResponse__tag3::set_tag44(const ::std::string& value) {
  set_has_tag44();
  tag44_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
}
#if LANG_CXX11
void GetContactResponse__tag3::set_tag44(::std::string&& value) {
  set_has_tag44();
  tag44_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
}
#endif
void GetContactResponse__tag3::set_tag44(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  set_has_tag44();
  tag44_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
}
void GetContactResponse__tag3::set_tag44(const char* value, size_t size) {
  set_has_tag44();
  tag44_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
}
::std::string* GetContactResponse__tag3::mutable_tag44() {
  set_has_tag44();
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
  return tag44_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* GetContactResponse__tag3::release_tag44() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
  clear_has_tag44();
  return tag44_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void GetContactResponse__tag3::set_allocated_tag44(::std::string* tag44) {
  if (tag44 != NULL) {
    set_has_tag44();
  } else {
    clear_has_tag44();
  }
  tag44_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), tag44);
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse._tag3.tag44)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int GetContactResponse::kTag1FieldNumber;
const int GetContactResponse::kTag3FieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

GetContactResponse::GetContactResponse()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_searchcontact_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:com.tencent.mars.microchat.proto.GetContactResponse)
}
GetContactResponse::GetContactResponse(const GetContactResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _has_bits_(from._has_bits_),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  if (from.has_tag1()) {
    tag1_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__Result(*from.tag1_);
  } else {
    tag1_ = NULL;
  }
  if (from.has_tag3()) {
    tag3_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__tag3(*from.tag3_);
  } else {
    tag3_ = NULL;
  }
  // @@protoc_insertion_point(copy_constructor:com.tencent.mars.microchat.proto.GetContactResponse)
}

void GetContactResponse::SharedCtor() {
  _cached_size_ = 0;
  ::memset(&tag1_, 0, reinterpret_cast<char*>(&tag3_) -
    reinterpret_cast<char*>(&tag1_) + sizeof(tag3_));
}

GetContactResponse::~GetContactResponse() {
  // @@protoc_insertion_point(destructor:com.tencent.mars.microchat.proto.GetContactResponse)
  SharedDtor();
}

void GetContactResponse::SharedDtor() {
  if (this != internal_default_instance()) {
    delete tag1_;
  }
  if (this != internal_default_instance()) {
    delete tag3_;
  }
}

void GetContactResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* GetContactResponse::descriptor() {
  protobuf_searchcontact_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_searchcontact_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const GetContactResponse& GetContactResponse::default_instance() {
  protobuf_searchcontact_2eproto::InitDefaults();
  return *internal_default_instance();
}

GetContactResponse* GetContactResponse::New(::google::protobuf::Arena* arena) const {
  GetContactResponse* n = new GetContactResponse;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void GetContactResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:com.tencent.mars.microchat.proto.GetContactResponse)
  if (_has_bits_[0 / 32] & 3u) {
    if (has_tag1()) {
      GOOGLE_DCHECK(tag1_ != NULL);
      tag1_->::com::tencent::mars::microchat::proto::GetContactResponse__Result::Clear();
    }
    if (has_tag3()) {
      GOOGLE_DCHECK(tag3_ != NULL);
      tag3_->::com::tencent::mars::microchat::proto::GetContactResponse__tag3::Clear();
    }
  }
  _has_bits_.Clear();
  _internal_metadata_.Clear();
}

bool GetContactResponse::MergePartialFromCodedStream(
    ::google::protobuf::io::CodedInputStream* input) {
#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
  ::google::protobuf::uint32 tag;
  // @@protoc_insertion_point(parse_start:com.tencent.mars.microchat.proto.GetContactResponse)
  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)) {
      // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result tag1 = 1;
      case 1: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(10u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tag1()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3 tag3 = 3;
      case 3: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(26u)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
               input, mutable_tag3()));
        } else {
          goto handle_unusual;
        }
        break;
      }

      default: {
      handle_unusual:
        if (tag == 0 ||
            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
          goto success;
        }
        DO_(::google::protobuf::internal::WireFormat::SkipField(
              input, tag, mutable_unknown_fields()));
        break;
      }
    }
  }
success:
  // @@protoc_insertion_point(parse_success:com.tencent.mars.microchat.proto.GetContactResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:com.tencent.mars.microchat.proto.GetContactResponse)
  return false;
#undef DO_
}

void GetContactResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:com.tencent.mars.microchat.proto.GetContactResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result tag1 = 1;
  if (cached_has_bits & 0x00000001u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      1, *this->tag1_, output);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3 tag3 = 3;
  if (cached_has_bits & 0x00000002u) {
    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
      3, *this->tag3_, output);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
  // @@protoc_insertion_point(serialize_end:com.tencent.mars.microchat.proto.GetContactResponse)
}

::google::protobuf::uint8* GetContactResponse::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  // @@protoc_insertion_point(serialize_to_array_start:com.tencent.mars.microchat.proto.GetContactResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = _has_bits_[0];
  // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result tag1 = 1;
  if (cached_has_bits & 0x00000001u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        1, *this->tag1_, deterministic, target);
  }

  // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3 tag3 = 3;
  if (cached_has_bits & 0x00000002u) {
    target = ::google::protobuf::internal::WireFormatLite::
      InternalWriteMessageNoVirtualToArray(
        3, *this->tag3_, deterministic, target);
  }

  if (_internal_metadata_.have_unknown_fields()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:com.tencent.mars.microchat.proto.GetContactResponse)
  return target;
}

size_t GetContactResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:com.tencent.mars.microchat.proto.GetContactResponse)
  size_t total_size = 0;

  if (_internal_metadata_.have_unknown_fields()) {
    total_size +=
      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
        unknown_fields());
  }
  if (_has_bits_[0 / 32] & 3u) {
    // optional .com.tencent.mars.microchat.proto.GetContactResponse._Result tag1 = 1;
    if (has_tag1()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->tag1_);
    }

    // optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3 tag3 = 3;
    if (has_tag3()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
          *this->tag3_);
    }

  }
  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = cached_size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
  return total_size;
}

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

void GetContactResponse::MergeFrom(const GetContactResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:com.tencent.mars.microchat.proto.GetContactResponse)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  cached_has_bits = from._has_bits_[0];
  if (cached_has_bits & 3u) {
    if (cached_has_bits & 0x00000001u) {
      mutable_tag1()->::com::tencent::mars::microchat::proto::GetContactResponse__Result::MergeFrom(from.tag1());
    }
    if (cached_has_bits & 0x00000002u) {
      mutable_tag3()->::com::tencent::mars::microchat::proto::GetContactResponse__tag3::MergeFrom(from.tag3());
    }
  }
}

void GetContactResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void GetContactResponse::CopyFrom(const GetContactResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:com.tencent.mars.microchat.proto.GetContactResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void GetContactResponse::Swap(GetContactResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void GetContactResponse::InternalSwap(GetContactResponse* other) {
  std::swap(tag1_, other->tag1_);
  std::swap(tag3_, other->tag3_);
  std::swap(_has_bits_[0], other->_has_bits_[0]);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  std::swap(_cached_size_, other->_cached_size_);
}

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

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// GetContactResponse

// optional .com.tencent.mars.microchat.proto.GetContactResponse._Result tag1 = 1;
bool GetContactResponse::has_tag1() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
void GetContactResponse::set_has_tag1() {
  _has_bits_[0] |= 0x00000001u;
}
void GetContactResponse::clear_has_tag1() {
  _has_bits_[0] &= ~0x00000001u;
}
void GetContactResponse::clear_tag1() {
  if (tag1_ != NULL) tag1_->::com::tencent::mars::microchat::proto::GetContactResponse__Result::Clear();
  clear_has_tag1();
}
const ::com::tencent::mars::microchat::proto::GetContactResponse__Result& GetContactResponse::tag1() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse.tag1)
  return tag1_ != NULL ? *tag1_
                         : *::com::tencent::mars::microchat::proto::GetContactResponse__Result::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactResponse__Result* GetContactResponse::mutable_tag1() {
  set_has_tag1();
  if (tag1_ == NULL) {
    tag1_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__Result;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse.tag1)
  return tag1_;
}
::com::tencent::mars::microchat::proto::GetContactResponse__Result* GetContactResponse::release_tag1() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse.tag1)
  clear_has_tag1();
  ::com::tencent::mars::microchat::proto::GetContactResponse__Result* temp = tag1_;
  tag1_ = NULL;
  return temp;
}
void GetContactResponse::set_allocated_tag1(::com::tencent::mars::microchat::proto::GetContactResponse__Result* tag1) {
  delete tag1_;
  tag1_ = tag1;
  if (tag1) {
    set_has_tag1();
  } else {
    clear_has_tag1();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse.tag1)
}

// optional .com.tencent.mars.microchat.proto.GetContactResponse._tag3 tag3 = 3;
bool GetContactResponse::has_tag3() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
void GetContactResponse::set_has_tag3() {
  _has_bits_[0] |= 0x00000002u;
}
void GetContactResponse::clear_has_tag3() {
  _has_bits_[0] &= ~0x00000002u;
}
void GetContactResponse::clear_tag3() {
  if (tag3_ != NULL) tag3_->::com::tencent::mars::microchat::proto::GetContactResponse__tag3::Clear();
  clear_has_tag3();
}
const ::com::tencent::mars::microchat::proto::GetContactResponse__tag3& GetContactResponse::tag3() const {
  // @@protoc_insertion_point(field_get:com.tencent.mars.microchat.proto.GetContactResponse.tag3)
  return tag3_ != NULL ? *tag3_
                         : *::com::tencent::mars::microchat::proto::GetContactResponse__tag3::internal_default_instance();
}
::com::tencent::mars::microchat::proto::GetContactResponse__tag3* GetContactResponse::mutable_tag3() {
  set_has_tag3();
  if (tag3_ == NULL) {
    tag3_ = new ::com::tencent::mars::microchat::proto::GetContactResponse__tag3;
  }
  // @@protoc_insertion_point(field_mutable:com.tencent.mars.microchat.proto.GetContactResponse.tag3)
  return tag3_;
}
::com::tencent::mars::microchat::proto::GetContactResponse__tag3* GetContactResponse::release_tag3() {
  // @@protoc_insertion_point(field_release:com.tencent.mars.microchat.proto.GetContactResponse.tag3)
  clear_has_tag3();
  ::com::tencent::mars::microchat::proto::GetContactResponse__tag3* temp = tag3_;
  tag3_ = NULL;
  return temp;
}
void GetContactResponse::set_allocated_tag3(::com::tencent::mars::microchat::proto::GetContactResponse__tag3* tag3) {
  delete tag3_;
  tag3_ = tag3;
  if (tag3) {
    set_has_tag3();
  } else {
    clear_has_tag3();
  }
  // @@protoc_insertion_point(field_set_allocated:com.tencent.mars.microchat.proto.GetContactResponse.tag3)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace proto
}  // namespace microchat
}  // namespace mars
}  // namespace tencent
}  // namespace com

// @@protoc_insertion_point(global_scope)
