// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: client/v3beta/dto/group/chatroom_dto.proto

#include "client/v3beta/dto/group/chatroom_dto.pb.h"

#include <algorithm>

#include <herogoogle/protobuf/io/coded_stream.h>
#include <herogoogle/protobuf/extension_set.h>
#include <herogoogle/protobuf/wire_format_lite.h>
#include <herogoogle/protobuf/descriptor.h>
#include <herogoogle/protobuf/generated_message_reflection.h>
#include <herogoogle/protobuf/reflection_ops.h>
#include <herogoogle/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)


PROTOBUF_PRAGMA_INIT_SEG
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace group {
constexpr ChatRoomFindRequest::ChatRoomFindRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomFindRequestDefaultTypeInternal {
  constexpr ChatRoomFindRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomFindRequestDefaultTypeInternal() {}
  union {
    ChatRoomFindRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomFindRequestDefaultTypeInternal _ChatRoomFindRequest_default_instance_;
constexpr ChatRoomFindResponse::ChatRoomFindResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : group_(nullptr){}
struct ChatRoomFindResponseDefaultTypeInternal {
  constexpr ChatRoomFindResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomFindResponseDefaultTypeInternal() {}
  union {
    ChatRoomFindResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomFindResponseDefaultTypeInternal _ChatRoomFindResponse_default_instance_;
constexpr ChatRoomCreateRequest::ChatRoomCreateRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr)
  , options_(nullptr){}
struct ChatRoomCreateRequestDefaultTypeInternal {
  constexpr ChatRoomCreateRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomCreateRequestDefaultTypeInternal() {}
  union {
    ChatRoomCreateRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomCreateRequestDefaultTypeInternal _ChatRoomCreateRequest_default_instance_;
constexpr ChatRoomCreateOptions_ExtraEntry_DoNotUse::ChatRoomCreateOptions_ExtraEntry_DoNotUse(
  ::herogoogle::protobuf::internal::ConstantInitialized){}
struct ChatRoomCreateOptions_ExtraEntry_DoNotUseDefaultTypeInternal {
  constexpr ChatRoomCreateOptions_ExtraEntry_DoNotUseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomCreateOptions_ExtraEntry_DoNotUseDefaultTypeInternal() {}
  union {
    ChatRoomCreateOptions_ExtraEntry_DoNotUse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomCreateOptions_ExtraEntry_DoNotUseDefaultTypeInternal _ChatRoomCreateOptions_ExtraEntry_DoNotUse_default_instance_;
constexpr ChatRoomCreateOptions::ChatRoomCreateOptions(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : extra_(::herogoogle::protobuf::internal::ConstantInitialized{})
  , grouptype_(&::herogoogle::protobuf::internal::fixed_address_empty_string)
  , title_(&::herogoogle::protobuf::internal::fixed_address_empty_string)
  , iconurl_(&::herogoogle::protobuf::internal::fixed_address_empty_string){}
struct ChatRoomCreateOptionsDefaultTypeInternal {
  constexpr ChatRoomCreateOptionsDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomCreateOptionsDefaultTypeInternal() {}
  union {
    ChatRoomCreateOptions _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomCreateOptionsDefaultTypeInternal _ChatRoomCreateOptions_default_instance_;
constexpr ChatRoomCreateResponse::ChatRoomCreateResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : group_(nullptr){}
struct ChatRoomCreateResponseDefaultTypeInternal {
  constexpr ChatRoomCreateResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomCreateResponseDefaultTypeInternal() {}
  union {
    ChatRoomCreateResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomCreateResponseDefaultTypeInternal _ChatRoomCreateResponse_default_instance_;
constexpr ChatRoomJoinRequest::ChatRoomJoinRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomJoinRequestDefaultTypeInternal {
  constexpr ChatRoomJoinRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomJoinRequestDefaultTypeInternal() {}
  union {
    ChatRoomJoinRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomJoinRequestDefaultTypeInternal _ChatRoomJoinRequest_default_instance_;
constexpr ChatRoomJoinResponse::ChatRoomJoinResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : group_(nullptr){}
struct ChatRoomJoinResponseDefaultTypeInternal {
  constexpr ChatRoomJoinResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomJoinResponseDefaultTypeInternal() {}
  union {
    ChatRoomJoinResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomJoinResponseDefaultTypeInternal _ChatRoomJoinResponse_default_instance_;
constexpr ChatRoomJoinAutoCreateRequest::ChatRoomJoinAutoCreateRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr)
  , createoptions_(nullptr){}
struct ChatRoomJoinAutoCreateRequestDefaultTypeInternal {
  constexpr ChatRoomJoinAutoCreateRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomJoinAutoCreateRequestDefaultTypeInternal() {}
  union {
    ChatRoomJoinAutoCreateRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomJoinAutoCreateRequestDefaultTypeInternal _ChatRoomJoinAutoCreateRequest_default_instance_;
constexpr ChatRoomJoinAutoCreateResponse::ChatRoomJoinAutoCreateResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : group_(nullptr){}
struct ChatRoomJoinAutoCreateResponseDefaultTypeInternal {
  constexpr ChatRoomJoinAutoCreateResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomJoinAutoCreateResponseDefaultTypeInternal() {}
  union {
    ChatRoomJoinAutoCreateResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomJoinAutoCreateResponseDefaultTypeInternal _ChatRoomJoinAutoCreateResponse_default_instance_;
constexpr ChatRoomQuitRequest::ChatRoomQuitRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomQuitRequestDefaultTypeInternal {
  constexpr ChatRoomQuitRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomQuitRequestDefaultTypeInternal() {}
  union {
    ChatRoomQuitRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomQuitRequestDefaultTypeInternal _ChatRoomQuitRequest_default_instance_;
constexpr ChatRoomQuitResponse::ChatRoomQuitResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized){}
struct ChatRoomQuitResponseDefaultTypeInternal {
  constexpr ChatRoomQuitResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomQuitResponseDefaultTypeInternal() {}
  union {
    ChatRoomQuitResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomQuitResponseDefaultTypeInternal _ChatRoomQuitResponse_default_instance_;
constexpr ChatRoomInviteRequest::ChatRoomInviteRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : users_()
  , base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomInviteRequestDefaultTypeInternal {
  constexpr ChatRoomInviteRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomInviteRequestDefaultTypeInternal() {}
  union {
    ChatRoomInviteRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomInviteRequestDefaultTypeInternal _ChatRoomInviteRequest_default_instance_;
constexpr ChatRoomUserResponseItem::ChatRoomUserResponseItem(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : msg_(&::herogoogle::protobuf::internal::fixed_address_empty_string)
  , userkey_(nullptr)
  , code_(0){}
struct ChatRoomUserResponseItemDefaultTypeInternal {
  constexpr ChatRoomUserResponseItemDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomUserResponseItemDefaultTypeInternal() {}
  union {
    ChatRoomUserResponseItem _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomUserResponseItemDefaultTypeInternal _ChatRoomUserResponseItem_default_instance_;
constexpr ChatRoomInviteResponse::ChatRoomInviteResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : list_(){}
struct ChatRoomInviteResponseDefaultTypeInternal {
  constexpr ChatRoomInviteResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomInviteResponseDefaultTypeInternal() {}
  union {
    ChatRoomInviteResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomInviteResponseDefaultTypeInternal _ChatRoomInviteResponse_default_instance_;
constexpr ChatRoomUserRemoveRequest::ChatRoomUserRemoveRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : users_()
  , base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomUserRemoveRequestDefaultTypeInternal {
  constexpr ChatRoomUserRemoveRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomUserRemoveRequestDefaultTypeInternal() {}
  union {
    ChatRoomUserRemoveRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomUserRemoveRequestDefaultTypeInternal _ChatRoomUserRemoveRequest_default_instance_;
constexpr ChatRoomUserRemoveResponse::ChatRoomUserRemoveResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : list_(){}
struct ChatRoomUserRemoveResponseDefaultTypeInternal {
  constexpr ChatRoomUserRemoveResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomUserRemoveResponseDefaultTypeInternal() {}
  union {
    ChatRoomUserRemoveResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomUserRemoveResponseDefaultTypeInternal _ChatRoomUserRemoveResponse_default_instance_;
constexpr ChatRoomDismissRequest::ChatRoomDismissRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomDismissRequestDefaultTypeInternal {
  constexpr ChatRoomDismissRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomDismissRequestDefaultTypeInternal() {}
  union {
    ChatRoomDismissRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomDismissRequestDefaultTypeInternal _ChatRoomDismissRequest_default_instance_;
constexpr ChatRoomDismissResponse::ChatRoomDismissResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized){}
struct ChatRoomDismissResponseDefaultTypeInternal {
  constexpr ChatRoomDismissResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomDismissResponseDefaultTypeInternal() {}
  union {
    ChatRoomDismissResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomDismissResponseDefaultTypeInternal _ChatRoomDismissResponse_default_instance_;
constexpr ChatRoomStatsDataRequest::ChatRoomStatsDataRequest(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : base_(nullptr)
  , groupkey_(nullptr){}
struct ChatRoomStatsDataRequestDefaultTypeInternal {
  constexpr ChatRoomStatsDataRequestDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomStatsDataRequestDefaultTypeInternal() {}
  union {
    ChatRoomStatsDataRequest _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomStatsDataRequestDefaultTypeInternal _ChatRoomStatsDataRequest_default_instance_;
constexpr ChatRoomStatsDataResponse::ChatRoomStatsDataResponse(
  ::herogoogle::protobuf::internal::ConstantInitialized)
  : stats_(nullptr){}
struct ChatRoomStatsDataResponseDefaultTypeInternal {
  constexpr ChatRoomStatsDataResponseDefaultTypeInternal()
    : _instance(::herogoogle::protobuf::internal::ConstantInitialized{}) {}
  ~ChatRoomStatsDataResponseDefaultTypeInternal() {}
  union {
    ChatRoomStatsDataResponse _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ChatRoomStatsDataResponseDefaultTypeInternal _ChatRoomStatsDataResponse_default_instance_;
}  // namespace group
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim
static ::herogoogle::protobuf::Metadata file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[21];
static constexpr ::herogoogle::protobuf::EnumDescriptor const** file_level_enum_descriptors_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto = nullptr;
static constexpr ::herogoogle::protobuf::ServiceDescriptor const** file_level_service_descriptors_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto = nullptr;

const ::herogoogle::protobuf::uint32 TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomFindRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomFindRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomFindRequest, groupkey_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomFindResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomFindResponse, group_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateRequest, groupkey_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateRequest, options_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse, _has_bits_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse, key_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse, value_),
  0,
  1,
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions, grouptype_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions, title_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions, iconurl_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions, extra_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomCreateResponse, group_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinRequest, groupkey_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinResponse, group_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest, groupkey_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest, createoptions_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse, group_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomQuitRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomQuitRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomQuitRequest, groupkey_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomQuitResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomInviteRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomInviteRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomInviteRequest, groupkey_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomInviteRequest, users_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem, userkey_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem, msg_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem, code_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomInviteResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomInviteResponse, list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest, groupkey_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest, users_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse, list_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomDismissRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomDismissRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomDismissRequest, groupkey_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomDismissResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest, base_),
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest, groupkey_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse, stats_),
};
static const ::herogoogle::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomFindRequest)},
  { 8, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomFindResponse)},
  { 15, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomCreateRequest)},
  { 24, 32, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse)},
  { 34, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomCreateOptions)},
  { 44, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomCreateResponse)},
  { 51, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomJoinRequest)},
  { 59, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomJoinResponse)},
  { 66, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest)},
  { 75, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse)},
  { 82, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomQuitRequest)},
  { 90, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomQuitResponse)},
  { 96, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomInviteRequest)},
  { 105, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem)},
  { 114, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomInviteResponse)},
  { 121, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest)},
  { 130, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse)},
  { 137, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomDismissRequest)},
  { 145, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomDismissResponse)},
  { 151, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest)},
  { 159, -1, -1, sizeof(::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse)},
};

static ::herogoogle::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomFindRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomFindResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomCreateRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomCreateOptions_ExtraEntry_DoNotUse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomCreateOptions_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomCreateResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomJoinRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomJoinResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomJoinAutoCreateRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomJoinAutoCreateResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomQuitRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomQuitResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomInviteRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomUserResponseItem_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomInviteResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomUserRemoveRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomUserRemoveResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomDismissRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomDismissResponse_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomStatsDataRequest_default_instance_),
  reinterpret_cast<const ::herogoogle::protobuf::Message*>(&::heroim::client::v3beta::dto::group::_ChatRoomStatsDataResponse_default_instance_),
};
#ifdef _MSC_VER
#  pragma warning(disable : 4125)
#endif  /* _MSC_VER */
const char descriptor_table_protodef_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n*client/v3beta/dto/group/chatroom_dto.p"
  "roto\022\036heroim.client.v3beta.dto.group\032/cl"
  "ient/v3beta/dto/group/model/group_model."
  "proto\032-client/v3beta/dto/user/model/user"
  "_model.proto\032\"client/v3beta/dto/shared/a"
  "pi.proto\"\222\001\n\023ChatRoomFindRequest\0229\n\004base"
  "\030\001 \001(\0132+.heroim.client.v3beta.dto.shared"
  ".APIRequest\022@\n\010groupKey\030\002 \001(\0132..heroim.c"
  "lient.v3beta.dto.group.model.GroupKey\"R\n"
  "\024ChatRoomFindResponse\022:\n\005group\030\001 \001(\0132+.h"
  "eroim.client.v3beta.dto.group.model.Grou"
  "p\"\334\001\n\025ChatRoomCreateRequest\0229\n\004base\030\001 \001("
  "\0132+.heroim.client.v3beta.dto.shared.APIR"
  "equest\022@\n\010groupKey\030\002 \001(\0132..heroim.client"
  ".v3beta.dto.group.model.GroupKey\022F\n\007opti"
  "ons\030\003 \001(\01325.heroim.client.v3beta.dto.gro"
  "up.ChatRoomCreateOptions\"\311\001\n\025ChatRoomCre"
  "ateOptions\022\021\n\tgroupType\030\001 \001(\t\022\r\n\005title\030\002"
  " \001(\t\022\017\n\007iconUrl\030\003 \001(\t\022O\n\005extra\030\004 \003(\0132@.h"
  "eroim.client.v3beta.dto.group.ChatRoomCr"
  "eateOptions.ExtraEntry\032,\n\nExtraEntry\022\013\n\003"
  "key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"T\n\026ChatRoom"
  "CreateResponse\022:\n\005group\030\001 \001(\0132+.heroim.c"
  "lient.v3beta.dto.group.model.Group\"\222\001\n\023C"
  "hatRoomJoinRequest\0229\n\004base\030\001 \001(\0132+.heroi"
  "m.client.v3beta.dto.shared.APIRequest\022@\n"
  "\010groupKey\030\002 \001(\0132..heroim.client.v3beta.d"
  "to.group.model.GroupKey\"R\n\024ChatRoomJoinR"
  "esponse\022:\n\005group\030\001 \001(\0132+.heroim.client.v"
  "3beta.dto.group.model.Group\"\352\001\n\035ChatRoom"
  "JoinAutoCreateRequest\0229\n\004base\030\001 \001(\0132+.he"
  "roim.client.v3beta.dto.shared.APIRequest"
  "\022@\n\010groupKey\030\002 \001(\0132..heroim.client.v3bet"
  "a.dto.group.model.GroupKey\022L\n\rcreateOpti"
  "ons\030\003 \001(\01325.heroim.client.v3beta.dto.gro"
  "up.ChatRoomCreateOptions\"\\\n\036ChatRoomJoin"
  "AutoCreateResponse\022:\n\005group\030\001 \001(\0132+.hero"
  "im.client.v3beta.dto.group.model.Group\"\222"
  "\001\n\023ChatRoomQuitRequest\0229\n\004base\030\001 \001(\0132+.h"
  "eroim.client.v3beta.dto.shared.APIReques"
  "t\022@\n\010groupKey\030\002 \001(\0132..heroim.client.v3be"
  "ta.dto.group.model.GroupKey\"\026\n\024ChatRoomQ"
  "uitResponse\"\321\001\n\025ChatRoomInviteRequest\0229\n"
  "\004base\030\001 \001(\0132+.heroim.client.v3beta.dto.s"
  "hared.APIRequest\022@\n\010groupKey\030\002 \001(\0132..her"
  "oim.client.v3beta.dto.group.model.GroupK"
  "ey\022;\n\005users\030\003 \003(\0132,.heroim.client.v3beta"
  ".dto.user.model.UserKey\"t\n\030ChatRoomUserR"
  "esponseItem\022=\n\007userKey\030\001 \001(\0132,.heroim.cl"
  "ient.v3beta.dto.user.model.UserKey\022\013\n\003ms"
  "g\030\002 \001(\t\022\014\n\004code\030\003 \001(\005\"`\n\026ChatRoomInviteR"
  "esponse\022F\n\004list\030\001 \003(\01328.heroim.client.v3"
  "beta.dto.group.ChatRoomUserResponseItem\""
  "\325\001\n\031ChatRoomUserRemoveRequest\0229\n\004base\030\001 "
  "\001(\0132+.heroim.client.v3beta.dto.shared.AP"
  "IRequest\022@\n\010groupKey\030\002 \001(\0132..heroim.clie"
  "nt.v3beta.dto.group.model.GroupKey\022;\n\005us"
  "ers\030\003 \003(\0132,.heroim.client.v3beta.dto.use"
  "r.model.UserKey\"d\n\032ChatRoomUserRemoveRes"
  "ponse\022F\n\004list\030\001 \003(\01328.heroim.client.v3be"
  "ta.dto.group.ChatRoomUserResponseItem\"\225\001"
  "\n\026ChatRoomDismissRequest\0229\n\004base\030\001 \001(\0132+"
  ".heroim.client.v3beta.dto.shared.APIRequ"
  "est\022@\n\010groupKey\030\002 \001(\0132..heroim.client.v3"
  "beta.dto.group.model.GroupKey\"\031\n\027ChatRoo"
  "mDismissResponse\"\227\001\n\030ChatRoomStatsDataRe"
  "quest\0229\n\004base\030\001 \001(\0132+.heroim.client.v3be"
  "ta.dto.shared.APIRequest\022@\n\010groupKey\030\002 \001"
  "(\0132..heroim.client.v3beta.dto.group.mode"
  "l.GroupKey\"\\\n\031ChatRoomStatsDataResponse\022"
  "\?\n\005stats\030\001 \001(\01320.heroim.client.v3beta.dt"
  "o.group.model.GroupStatsBR\n\"com.hero.csd"
  "k.api.v3beta.dto.groupP\001Z\"heroim/api/cli"
  "ent/v3beta/dto/group\242\002\005IMSdkb\006proto3"
  ;
static const ::herogoogle::protobuf::internal::DescriptorTable*const descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_deps[3] = {
  &::descriptor_table_client_2fv3beta_2fdto_2fgroup_2fmodel_2fgroup_5fmodel_2eproto,
  &::descriptor_table_client_2fv3beta_2fdto_2fshared_2fapi_2eproto,
  &::descriptor_table_client_2fv3beta_2fdto_2fuser_2fmodel_2fuser_5fmodel_2eproto,
};
static ::herogoogle::protobuf::internal::once_flag descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once;
const ::herogoogle::protobuf::internal::DescriptorTable descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto = {
  false, false, 2956, descriptor_table_protodef_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto, "client/v3beta/dto/group/chatroom_dto.proto", 
  &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once, descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_deps, 3, 21,
  schemas, file_default_instances, TableStruct_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto::offsets,
  file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto, file_level_enum_descriptors_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto, file_level_service_descriptors_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::herogoogle::protobuf::internal::DescriptorTable* descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter() {
  return &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::herogoogle::protobuf::internal::AddDescriptorsRunner dynamic_init_dummy_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto(&descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto);
namespace heroim {
namespace client {
namespace v3beta {
namespace dto {
namespace group {

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

class ChatRoomFindRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomFindRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomFindRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomFindRequest::_Internal::base(const ChatRoomFindRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomFindRequest::_Internal::groupkey(const ChatRoomFindRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomFindRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomFindRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomFindRequest::ChatRoomFindRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
}
ChatRoomFindRequest::ChatRoomFindRequest(const ChatRoomFindRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
}

void ChatRoomFindRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomFindRequest::~ChatRoomFindRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomFindRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomFindRequest::ArenaDtor(void* object) {
  ChatRoomFindRequest* _this = reinterpret_cast< ChatRoomFindRequest* >(object);
  (void)_this;
}
void ChatRoomFindRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomFindRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomFindRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomFindRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomFindRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  return target;
}

size_t ChatRoomFindRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomFindRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomFindRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomFindRequest::GetClassData() const { return &_class_data_; }

void ChatRoomFindRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomFindRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomFindRequest &>(from));
}


void ChatRoomFindRequest::MergeFrom(const ChatRoomFindRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomFindRequest::CopyFrom(const ChatRoomFindRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomFindRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomFindRequest::InternalSwap(ChatRoomFindRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomFindRequest, groupkey_)
      + sizeof(ChatRoomFindRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomFindRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomFindRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[0]);
}

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

class ChatRoomFindResponse::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::group::model::Group& group(const ChatRoomFindResponse* msg);
};

const ::heroim::client::v3beta::dto::group::model::Group&
ChatRoomFindResponse::_Internal::group(const ChatRoomFindResponse* msg) {
  return *msg->group_;
}
void ChatRoomFindResponse::clear_group() {
  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
}
ChatRoomFindResponse::ChatRoomFindResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
}
ChatRoomFindResponse::ChatRoomFindResponse(const ChatRoomFindResponse& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_group()) {
    group_ = new ::heroim::client::v3beta::dto::group::model::Group(*from.group_);
  } else {
    group_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
}

void ChatRoomFindResponse::SharedCtor() {
group_ = nullptr;
}

ChatRoomFindResponse::~ChatRoomFindResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomFindResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete group_;
}

void ChatRoomFindResponse::ArenaDtor(void* object) {
  ChatRoomFindResponse* _this = reinterpret_cast< ChatRoomFindResponse* >(object);
  (void)_this;
}
void ChatRoomFindResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomFindResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomFindResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomFindResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.group.model.Group group = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_group(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomFindResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::group(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  return target;
}

size_t ChatRoomFindResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *group_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomFindResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomFindResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomFindResponse::GetClassData() const { return &_class_data_; }

void ChatRoomFindResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomFindResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomFindResponse &>(from));
}


void ChatRoomFindResponse::MergeFrom(const ChatRoomFindResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_group()) {
    _internal_mutable_group()->::heroim::client::v3beta::dto::group::model::Group::MergeFrom(from._internal_group());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomFindResponse::CopyFrom(const ChatRoomFindResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomFindResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomFindResponse::InternalSwap(ChatRoomFindResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(group_, other->group_);
}

::herogoogle::protobuf::Metadata ChatRoomFindResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[1]);
}

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

class ChatRoomCreateRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomCreateRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomCreateRequest* msg);
  static const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& options(const ChatRoomCreateRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomCreateRequest::_Internal::base(const ChatRoomCreateRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomCreateRequest::_Internal::groupkey(const ChatRoomCreateRequest* msg) {
  return *msg->groupkey_;
}
const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions&
ChatRoomCreateRequest::_Internal::options(const ChatRoomCreateRequest* msg) {
  return *msg->options_;
}
void ChatRoomCreateRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomCreateRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomCreateRequest::ChatRoomCreateRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
}
ChatRoomCreateRequest::ChatRoomCreateRequest(const ChatRoomCreateRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  if (from._internal_has_options()) {
    options_ = new ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions(*from.options_);
  } else {
    options_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
}

void ChatRoomCreateRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&options_) -
    reinterpret_cast<char*>(&base_)) + sizeof(options_));
}

ChatRoomCreateRequest::~ChatRoomCreateRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomCreateRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
  if (this != internal_default_instance()) delete options_;
}

void ChatRoomCreateRequest::ArenaDtor(void* object) {
  ChatRoomCreateRequest* _this = reinterpret_cast< ChatRoomCreateRequest* >(object);
  (void)_this;
}
void ChatRoomCreateRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomCreateRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomCreateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  if (GetArenaForAllocation() == nullptr && options_ != nullptr) {
    delete options_;
  }
  options_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomCreateRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions options = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_options(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomCreateRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions options = 3;
  if (this->_internal_has_options()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::options(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  return target;
}

size_t ChatRoomCreateRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions options = 3;
  if (this->_internal_has_options()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *options_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomCreateRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomCreateRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomCreateRequest::GetClassData() const { return &_class_data_; }

void ChatRoomCreateRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomCreateRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomCreateRequest &>(from));
}


void ChatRoomCreateRequest::MergeFrom(const ChatRoomCreateRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  if (from._internal_has_options()) {
    _internal_mutable_options()->::heroim::client::v3beta::dto::group::ChatRoomCreateOptions::MergeFrom(from._internal_options());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomCreateRequest::CopyFrom(const ChatRoomCreateRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomCreateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomCreateRequest::InternalSwap(ChatRoomCreateRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomCreateRequest, options_)
      + sizeof(ChatRoomCreateRequest::options_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomCreateRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomCreateRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[2]);
}

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

ChatRoomCreateOptions_ExtraEntry_DoNotUse::ChatRoomCreateOptions_ExtraEntry_DoNotUse() {}
ChatRoomCreateOptions_ExtraEntry_DoNotUse::ChatRoomCreateOptions_ExtraEntry_DoNotUse(::herogoogle::protobuf::Arena* arena)
    : SuperType(arena) {}
void ChatRoomCreateOptions_ExtraEntry_DoNotUse::MergeFrom(const ChatRoomCreateOptions_ExtraEntry_DoNotUse& other) {
  MergeFromInternal(other);
}
::herogoogle::protobuf::Metadata ChatRoomCreateOptions_ExtraEntry_DoNotUse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[3]);
}

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

class ChatRoomCreateOptions::_Internal {
 public:
};

ChatRoomCreateOptions::ChatRoomCreateOptions(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned),
  extra_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
}
ChatRoomCreateOptions::ChatRoomCreateOptions(const ChatRoomCreateOptions& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  extra_.MergeFrom(from.extra_);
  grouptype_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_grouptype().empty()) {
    grouptype_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, from._internal_grouptype(), 
      GetArenaForAllocation());
  }
  title_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_title().empty()) {
    title_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, from._internal_title(), 
      GetArenaForAllocation());
  }
  iconurl_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_iconurl().empty()) {
    iconurl_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, from._internal_iconurl(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
}

void ChatRoomCreateOptions::SharedCtor() {
grouptype_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
title_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
iconurl_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
}

ChatRoomCreateOptions::~ChatRoomCreateOptions() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomCreateOptions::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  grouptype_.DestroyNoArena(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  title_.DestroyNoArena(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  iconurl_.DestroyNoArena(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
}

void ChatRoomCreateOptions::ArenaDtor(void* object) {
  ChatRoomCreateOptions* _this = reinterpret_cast< ChatRoomCreateOptions* >(object);
  (void)_this;
  _this->extra_. ~MapField();
}
inline void ChatRoomCreateOptions::RegisterArenaDtor(::herogoogle::protobuf::Arena* arena) {
  if (arena != nullptr) {
    arena->OwnCustomDestructor(this, &ChatRoomCreateOptions::ArenaDtor);
  }
}
void ChatRoomCreateOptions::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomCreateOptions::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  extra_.Clear();
  grouptype_.ClearToEmpty();
  title_.ClearToEmpty();
  iconurl_.ClearToEmpty();
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomCreateOptions::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string groupType = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          auto str = _internal_mutable_grouptype();
          ptr = ::herogoogle::protobuf::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::herogoogle::protobuf::internal::VerifyUTF8(str, "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string title = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          auto str = _internal_mutable_title();
          ptr = ::herogoogle::protobuf::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::herogoogle::protobuf::internal::VerifyUTF8(str, "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string iconUrl = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 26)) {
          auto str = _internal_mutable_iconurl();
          ptr = ::herogoogle::protobuf::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::herogoogle::protobuf::internal::VerifyUTF8(str, "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // map<string, string> extra = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 34)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(&extra_, ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::herogoogle::protobuf::internal::ExpectTag<34>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomCreateOptions::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // string groupType = 1;
  if (!this->_internal_grouptype().empty()) {
    ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_grouptype().data(), static_cast<int>(this->_internal_grouptype().length()),
      ::herogoogle::protobuf::internal::WireFormatLite::SERIALIZE,
      "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.groupType");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_grouptype(), target);
  }

  // string title = 2;
  if (!this->_internal_title().empty()) {
    ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_title().data(), static_cast<int>(this->_internal_title().length()),
      ::herogoogle::protobuf::internal::WireFormatLite::SERIALIZE,
      "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.title");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_title(), target);
  }

  // string iconUrl = 3;
  if (!this->_internal_iconurl().empty()) {
    ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_iconurl().data(), static_cast<int>(this->_internal_iconurl().length()),
      ::herogoogle::protobuf::internal::WireFormatLite::SERIALIZE,
      "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.iconUrl");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_iconurl(), target);
  }

  // map<string, string> extra = 4;
  if (!this->_internal_extra().empty()) {
    typedef ::herogoogle::protobuf::Map< std::string, std::string >::const_pointer
        ConstPtr;
    typedef ConstPtr SortItem;
    typedef ::herogoogle::protobuf::internal::CompareByDerefFirst<SortItem> Less;
    struct Utf8Check {
      static void Check(ConstPtr p) {
        (void)p;
        ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->first.data(), static_cast<int>(p->first.length()),
          ::herogoogle::protobuf::internal::WireFormatLite::SERIALIZE,
          "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.ExtraEntry.key");
        ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(
          p->second.data(), static_cast<int>(p->second.length()),
          ::herogoogle::protobuf::internal::WireFormatLite::SERIALIZE,
          "heroim.client.v3beta.dto.group.ChatRoomCreateOptions.ExtraEntry.value");
      }
    };

    if (stream->IsSerializationDeterministic() &&
        this->_internal_extra().size() > 1) {
      ::std::unique_ptr<SortItem[]> items(
          new SortItem[this->_internal_extra().size()]);
      typedef ::herogoogle::protobuf::Map< std::string, std::string >::size_type size_type;
      size_type n = 0;
      for (::herogoogle::protobuf::Map< std::string, std::string >::const_iterator
          it = this->_internal_extra().begin();
          it != this->_internal_extra().end(); ++it, ++n) {
        items[static_cast<ptrdiff_t>(n)] = SortItem(&*it);
      }
      ::std::sort(&items[0], &items[static_cast<ptrdiff_t>(n)], Less());
      for (size_type i = 0; i < n; i++) {
        target = ChatRoomCreateOptions_ExtraEntry_DoNotUse::Funcs::InternalSerialize(4, items[static_cast<ptrdiff_t>(i)]->first, items[static_cast<ptrdiff_t>(i)]->second, target, stream);
        Utf8Check::Check(&(*items[static_cast<ptrdiff_t>(i)]));
      }
    } else {
      for (::herogoogle::protobuf::Map< std::string, std::string >::const_iterator
          it = this->_internal_extra().begin();
          it != this->_internal_extra().end(); ++it) {
        target = ChatRoomCreateOptions_ExtraEntry_DoNotUse::Funcs::InternalSerialize(4, it->first, it->second, target, stream);
        Utf8Check::Check(&(*it));
      }
    }
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  return target;
}

size_t ChatRoomCreateOptions::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // map<string, string> extra = 4;
  total_size += 1 *
      ::herogoogle::protobuf::internal::FromIntSize(this->_internal_extra_size());
  for (::herogoogle::protobuf::Map< std::string, std::string >::const_iterator
      it = this->_internal_extra().begin();
      it != this->_internal_extra().end(); ++it) {
    total_size += ChatRoomCreateOptions_ExtraEntry_DoNotUse::Funcs::ByteSizeLong(it->first, it->second);
  }

  // string groupType = 1;
  if (!this->_internal_grouptype().empty()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::StringSize(
        this->_internal_grouptype());
  }

  // string title = 2;
  if (!this->_internal_title().empty()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::StringSize(
        this->_internal_title());
  }

  // string iconUrl = 3;
  if (!this->_internal_iconurl().empty()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::StringSize(
        this->_internal_iconurl());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomCreateOptions::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomCreateOptions::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomCreateOptions::GetClassData() const { return &_class_data_; }

void ChatRoomCreateOptions::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomCreateOptions *>(to)->MergeFrom(
      static_cast<const ChatRoomCreateOptions &>(from));
}


void ChatRoomCreateOptions::MergeFrom(const ChatRoomCreateOptions& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  extra_.MergeFrom(from.extra_);
  if (!from._internal_grouptype().empty()) {
    _internal_set_grouptype(from._internal_grouptype());
  }
  if (!from._internal_title().empty()) {
    _internal_set_title(from._internal_title());
  }
  if (!from._internal_iconurl().empty()) {
    _internal_set_iconurl(from._internal_iconurl());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomCreateOptions::CopyFrom(const ChatRoomCreateOptions& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomCreateOptions)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomCreateOptions::InternalSwap(ChatRoomCreateOptions* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  extra_.InternalSwap(&other->extra_);
  ::herogoogle::protobuf::internal::ArenaStringPtr::InternalSwap(
      &::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(),
      &grouptype_, lhs_arena,
      &other->grouptype_, rhs_arena
  );
  ::herogoogle::protobuf::internal::ArenaStringPtr::InternalSwap(
      &::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(),
      &title_, lhs_arena,
      &other->title_, rhs_arena
  );
  ::herogoogle::protobuf::internal::ArenaStringPtr::InternalSwap(
      &::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(),
      &iconurl_, lhs_arena,
      &other->iconurl_, rhs_arena
  );
}

::herogoogle::protobuf::Metadata ChatRoomCreateOptions::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[4]);
}

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

class ChatRoomCreateResponse::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::group::model::Group& group(const ChatRoomCreateResponse* msg);
};

const ::heroim::client::v3beta::dto::group::model::Group&
ChatRoomCreateResponse::_Internal::group(const ChatRoomCreateResponse* msg) {
  return *msg->group_;
}
void ChatRoomCreateResponse::clear_group() {
  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
}
ChatRoomCreateResponse::ChatRoomCreateResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
}
ChatRoomCreateResponse::ChatRoomCreateResponse(const ChatRoomCreateResponse& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_group()) {
    group_ = new ::heroim::client::v3beta::dto::group::model::Group(*from.group_);
  } else {
    group_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
}

void ChatRoomCreateResponse::SharedCtor() {
group_ = nullptr;
}

ChatRoomCreateResponse::~ChatRoomCreateResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomCreateResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete group_;
}

void ChatRoomCreateResponse::ArenaDtor(void* object) {
  ChatRoomCreateResponse* _this = reinterpret_cast< ChatRoomCreateResponse* >(object);
  (void)_this;
}
void ChatRoomCreateResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomCreateResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomCreateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomCreateResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.group.model.Group group = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_group(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomCreateResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::group(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  return target;
}

size_t ChatRoomCreateResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *group_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomCreateResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomCreateResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomCreateResponse::GetClassData() const { return &_class_data_; }

void ChatRoomCreateResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomCreateResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomCreateResponse &>(from));
}


void ChatRoomCreateResponse::MergeFrom(const ChatRoomCreateResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_group()) {
    _internal_mutable_group()->::heroim::client::v3beta::dto::group::model::Group::MergeFrom(from._internal_group());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomCreateResponse::CopyFrom(const ChatRoomCreateResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomCreateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomCreateResponse::InternalSwap(ChatRoomCreateResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(group_, other->group_);
}

::herogoogle::protobuf::Metadata ChatRoomCreateResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[5]);
}

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

class ChatRoomJoinRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomJoinRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomJoinRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomJoinRequest::_Internal::base(const ChatRoomJoinRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomJoinRequest::_Internal::groupkey(const ChatRoomJoinRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomJoinRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomJoinRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomJoinRequest::ChatRoomJoinRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
}
ChatRoomJoinRequest::ChatRoomJoinRequest(const ChatRoomJoinRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
}

void ChatRoomJoinRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomJoinRequest::~ChatRoomJoinRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomJoinRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomJoinRequest::ArenaDtor(void* object) {
  ChatRoomJoinRequest* _this = reinterpret_cast< ChatRoomJoinRequest* >(object);
  (void)_this;
}
void ChatRoomJoinRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomJoinRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomJoinRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomJoinRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomJoinRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  return target;
}

size_t ChatRoomJoinRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomJoinRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomJoinRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomJoinRequest::GetClassData() const { return &_class_data_; }

void ChatRoomJoinRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomJoinRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomJoinRequest &>(from));
}


void ChatRoomJoinRequest::MergeFrom(const ChatRoomJoinRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomJoinRequest::CopyFrom(const ChatRoomJoinRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomJoinRequest::InternalSwap(ChatRoomJoinRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomJoinRequest, groupkey_)
      + sizeof(ChatRoomJoinRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomJoinRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomJoinRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[6]);
}

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

class ChatRoomJoinResponse::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::group::model::Group& group(const ChatRoomJoinResponse* msg);
};

const ::heroim::client::v3beta::dto::group::model::Group&
ChatRoomJoinResponse::_Internal::group(const ChatRoomJoinResponse* msg) {
  return *msg->group_;
}
void ChatRoomJoinResponse::clear_group() {
  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
}
ChatRoomJoinResponse::ChatRoomJoinResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
}
ChatRoomJoinResponse::ChatRoomJoinResponse(const ChatRoomJoinResponse& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_group()) {
    group_ = new ::heroim::client::v3beta::dto::group::model::Group(*from.group_);
  } else {
    group_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
}

void ChatRoomJoinResponse::SharedCtor() {
group_ = nullptr;
}

ChatRoomJoinResponse::~ChatRoomJoinResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomJoinResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete group_;
}

void ChatRoomJoinResponse::ArenaDtor(void* object) {
  ChatRoomJoinResponse* _this = reinterpret_cast< ChatRoomJoinResponse* >(object);
  (void)_this;
}
void ChatRoomJoinResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomJoinResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomJoinResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomJoinResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.group.model.Group group = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_group(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomJoinResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::group(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  return target;
}

size_t ChatRoomJoinResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *group_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomJoinResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomJoinResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomJoinResponse::GetClassData() const { return &_class_data_; }

void ChatRoomJoinResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomJoinResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomJoinResponse &>(from));
}


void ChatRoomJoinResponse::MergeFrom(const ChatRoomJoinResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_group()) {
    _internal_mutable_group()->::heroim::client::v3beta::dto::group::model::Group::MergeFrom(from._internal_group());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomJoinResponse::CopyFrom(const ChatRoomJoinResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomJoinResponse::InternalSwap(ChatRoomJoinResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(group_, other->group_);
}

::herogoogle::protobuf::Metadata ChatRoomJoinResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[7]);
}

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

class ChatRoomJoinAutoCreateRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomJoinAutoCreateRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomJoinAutoCreateRequest* msg);
  static const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions& createoptions(const ChatRoomJoinAutoCreateRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomJoinAutoCreateRequest::_Internal::base(const ChatRoomJoinAutoCreateRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomJoinAutoCreateRequest::_Internal::groupkey(const ChatRoomJoinAutoCreateRequest* msg) {
  return *msg->groupkey_;
}
const ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions&
ChatRoomJoinAutoCreateRequest::_Internal::createoptions(const ChatRoomJoinAutoCreateRequest* msg) {
  return *msg->createoptions_;
}
void ChatRoomJoinAutoCreateRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomJoinAutoCreateRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomJoinAutoCreateRequest::ChatRoomJoinAutoCreateRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
}
ChatRoomJoinAutoCreateRequest::ChatRoomJoinAutoCreateRequest(const ChatRoomJoinAutoCreateRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  if (from._internal_has_createoptions()) {
    createoptions_ = new ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions(*from.createoptions_);
  } else {
    createoptions_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
}

void ChatRoomJoinAutoCreateRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&createoptions_) -
    reinterpret_cast<char*>(&base_)) + sizeof(createoptions_));
}

ChatRoomJoinAutoCreateRequest::~ChatRoomJoinAutoCreateRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomJoinAutoCreateRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
  if (this != internal_default_instance()) delete createoptions_;
}

void ChatRoomJoinAutoCreateRequest::ArenaDtor(void* object) {
  ChatRoomJoinAutoCreateRequest* _this = reinterpret_cast< ChatRoomJoinAutoCreateRequest* >(object);
  (void)_this;
}
void ChatRoomJoinAutoCreateRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomJoinAutoCreateRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomJoinAutoCreateRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  if (GetArenaForAllocation() == nullptr && createoptions_ != nullptr) {
    delete createoptions_;
  }
  createoptions_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomJoinAutoCreateRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions createOptions = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 26)) {
          ptr = ctx->ParseMessage(_internal_mutable_createoptions(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomJoinAutoCreateRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions createOptions = 3;
  if (this->_internal_has_createoptions()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        3, _Internal::createoptions(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  return target;
}

size_t ChatRoomJoinAutoCreateRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  // .heroim.client.v3beta.dto.group.ChatRoomCreateOptions createOptions = 3;
  if (this->_internal_has_createoptions()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *createoptions_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomJoinAutoCreateRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomJoinAutoCreateRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomJoinAutoCreateRequest::GetClassData() const { return &_class_data_; }

void ChatRoomJoinAutoCreateRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomJoinAutoCreateRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomJoinAutoCreateRequest &>(from));
}


void ChatRoomJoinAutoCreateRequest::MergeFrom(const ChatRoomJoinAutoCreateRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  if (from._internal_has_createoptions()) {
    _internal_mutable_createoptions()->::heroim::client::v3beta::dto::group::ChatRoomCreateOptions::MergeFrom(from._internal_createoptions());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomJoinAutoCreateRequest::CopyFrom(const ChatRoomJoinAutoCreateRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomJoinAutoCreateRequest::InternalSwap(ChatRoomJoinAutoCreateRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomJoinAutoCreateRequest, createoptions_)
      + sizeof(ChatRoomJoinAutoCreateRequest::createoptions_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomJoinAutoCreateRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomJoinAutoCreateRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[8]);
}

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

class ChatRoomJoinAutoCreateResponse::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::group::model::Group& group(const ChatRoomJoinAutoCreateResponse* msg);
};

const ::heroim::client::v3beta::dto::group::model::Group&
ChatRoomJoinAutoCreateResponse::_Internal::group(const ChatRoomJoinAutoCreateResponse* msg) {
  return *msg->group_;
}
void ChatRoomJoinAutoCreateResponse::clear_group() {
  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
}
ChatRoomJoinAutoCreateResponse::ChatRoomJoinAutoCreateResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
}
ChatRoomJoinAutoCreateResponse::ChatRoomJoinAutoCreateResponse(const ChatRoomJoinAutoCreateResponse& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_group()) {
    group_ = new ::heroim::client::v3beta::dto::group::model::Group(*from.group_);
  } else {
    group_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
}

void ChatRoomJoinAutoCreateResponse::SharedCtor() {
group_ = nullptr;
}

ChatRoomJoinAutoCreateResponse::~ChatRoomJoinAutoCreateResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomJoinAutoCreateResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete group_;
}

void ChatRoomJoinAutoCreateResponse::ArenaDtor(void* object) {
  ChatRoomJoinAutoCreateResponse* _this = reinterpret_cast< ChatRoomJoinAutoCreateResponse* >(object);
  (void)_this;
}
void ChatRoomJoinAutoCreateResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomJoinAutoCreateResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomJoinAutoCreateResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && group_ != nullptr) {
    delete group_;
  }
  group_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomJoinAutoCreateResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.group.model.Group group = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_group(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomJoinAutoCreateResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::group(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  return target;
}

size_t ChatRoomJoinAutoCreateResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.Group group = 1;
  if (this->_internal_has_group()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *group_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomJoinAutoCreateResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomJoinAutoCreateResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomJoinAutoCreateResponse::GetClassData() const { return &_class_data_; }

void ChatRoomJoinAutoCreateResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomJoinAutoCreateResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomJoinAutoCreateResponse &>(from));
}


void ChatRoomJoinAutoCreateResponse::MergeFrom(const ChatRoomJoinAutoCreateResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_group()) {
    _internal_mutable_group()->::heroim::client::v3beta::dto::group::model::Group::MergeFrom(from._internal_group());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomJoinAutoCreateResponse::CopyFrom(const ChatRoomJoinAutoCreateResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomJoinAutoCreateResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomJoinAutoCreateResponse::InternalSwap(ChatRoomJoinAutoCreateResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(group_, other->group_);
}

::herogoogle::protobuf::Metadata ChatRoomJoinAutoCreateResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[9]);
}

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

class ChatRoomQuitRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomQuitRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomQuitRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomQuitRequest::_Internal::base(const ChatRoomQuitRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomQuitRequest::_Internal::groupkey(const ChatRoomQuitRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomQuitRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomQuitRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomQuitRequest::ChatRoomQuitRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
}
ChatRoomQuitRequest::ChatRoomQuitRequest(const ChatRoomQuitRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
}

void ChatRoomQuitRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomQuitRequest::~ChatRoomQuitRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomQuitRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomQuitRequest::ArenaDtor(void* object) {
  ChatRoomQuitRequest* _this = reinterpret_cast< ChatRoomQuitRequest* >(object);
  (void)_this;
}
void ChatRoomQuitRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomQuitRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomQuitRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomQuitRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomQuitRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  return target;
}

size_t ChatRoomQuitRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomQuitRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomQuitRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomQuitRequest::GetClassData() const { return &_class_data_; }

void ChatRoomQuitRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomQuitRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomQuitRequest &>(from));
}


void ChatRoomQuitRequest::MergeFrom(const ChatRoomQuitRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomQuitRequest::CopyFrom(const ChatRoomQuitRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomQuitRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomQuitRequest::InternalSwap(ChatRoomQuitRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomQuitRequest, groupkey_)
      + sizeof(ChatRoomQuitRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomQuitRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomQuitRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[10]);
}

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

class ChatRoomQuitResponse::_Internal {
 public:
};

ChatRoomQuitResponse::ChatRoomQuitResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomQuitResponse)
}
ChatRoomQuitResponse::ChatRoomQuitResponse(const ChatRoomQuitResponse& from)
  : ::herogoogle::protobuf::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomQuitResponse)
}





const ::herogoogle::protobuf::Message::ClassData ChatRoomQuitResponse::_class_data_ = {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl,
    ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeImpl,
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomQuitResponse::GetClassData() const { return &_class_data_; }







::herogoogle::protobuf::Metadata ChatRoomQuitResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[11]);
}

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

class ChatRoomInviteRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomInviteRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomInviteRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomInviteRequest::_Internal::base(const ChatRoomInviteRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomInviteRequest::_Internal::groupkey(const ChatRoomInviteRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomInviteRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomInviteRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
void ChatRoomInviteRequest::clear_users() {
  users_.Clear();
}
ChatRoomInviteRequest::ChatRoomInviteRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned),
  users_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
}
ChatRoomInviteRequest::ChatRoomInviteRequest(const ChatRoomInviteRequest& from)
  : ::herogoogle::protobuf::Message(),
      users_(from.users_) {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
}

void ChatRoomInviteRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomInviteRequest::~ChatRoomInviteRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomInviteRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomInviteRequest::ArenaDtor(void* object) {
  ChatRoomInviteRequest* _this = reinterpret_cast< ChatRoomInviteRequest* >(object);
  (void)_this;
}
void ChatRoomInviteRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomInviteRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomInviteRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  users_.Clear();
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomInviteRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_users(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::herogoogle::protobuf::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomInviteRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_users_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_users(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  return target;
}

size_t ChatRoomInviteRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
  total_size += 1UL * this->_internal_users_size();
  for (const auto& msg : this->users_) {
    total_size +=
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(msg);
  }

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomInviteRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomInviteRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomInviteRequest::GetClassData() const { return &_class_data_; }

void ChatRoomInviteRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomInviteRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomInviteRequest &>(from));
}


void ChatRoomInviteRequest::MergeFrom(const ChatRoomInviteRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  users_.MergeFrom(from.users_);
  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomInviteRequest::CopyFrom(const ChatRoomInviteRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomInviteRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomInviteRequest::InternalSwap(ChatRoomInviteRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  users_.InternalSwap(&other->users_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomInviteRequest, groupkey_)
      + sizeof(ChatRoomInviteRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomInviteRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomInviteRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[12]);
}

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

class ChatRoomUserResponseItem::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::user::model::UserKey& userkey(const ChatRoomUserResponseItem* msg);
};

const ::heroim::client::v3beta::dto::user::model::UserKey&
ChatRoomUserResponseItem::_Internal::userkey(const ChatRoomUserResponseItem* msg) {
  return *msg->userkey_;
}
void ChatRoomUserResponseItem::clear_userkey() {
  if (GetArenaForAllocation() == nullptr && userkey_ != nullptr) {
    delete userkey_;
  }
  userkey_ = nullptr;
}
ChatRoomUserResponseItem::ChatRoomUserResponseItem(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
}
ChatRoomUserResponseItem::ChatRoomUserResponseItem(const ChatRoomUserResponseItem& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  msg_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_msg().empty()) {
    msg_.Set(::herogoogle::protobuf::internal::ArenaStringPtr::EmptyDefault{}, from._internal_msg(), 
      GetArenaForAllocation());
  }
  if (from._internal_has_userkey()) {
    userkey_ = new ::heroim::client::v3beta::dto::user::model::UserKey(*from.userkey_);
  } else {
    userkey_ = nullptr;
  }
  code_ = from.code_;
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
}

void ChatRoomUserResponseItem::SharedCtor() {
msg_.UnsafeSetDefault(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&userkey_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&code_) -
    reinterpret_cast<char*>(&userkey_)) + sizeof(code_));
}

ChatRoomUserResponseItem::~ChatRoomUserResponseItem() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomUserResponseItem::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  msg_.DestroyNoArena(&::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete userkey_;
}

void ChatRoomUserResponseItem::ArenaDtor(void* object) {
  ChatRoomUserResponseItem* _this = reinterpret_cast< ChatRoomUserResponseItem* >(object);
  (void)_this;
}
void ChatRoomUserResponseItem::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomUserResponseItem::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomUserResponseItem::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  msg_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && userkey_ != nullptr) {
    delete userkey_;
  }
  userkey_ = nullptr;
  code_ = 0;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomUserResponseItem::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.user.model.UserKey userKey = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_userkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string msg = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          auto str = _internal_mutable_msg();
          ptr = ::herogoogle::protobuf::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::herogoogle::protobuf::internal::VerifyUTF8(str, "heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg"));
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 code = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 24)) {
          code_ = ::herogoogle::protobuf::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomUserResponseItem::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.user.model.UserKey userKey = 1;
  if (this->_internal_has_userkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::userkey(this), target, stream);
  }

  // string msg = 2;
  if (!this->_internal_msg().empty()) {
    ::herogoogle::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_msg().data(), static_cast<int>(this->_internal_msg().length()),
      ::herogoogle::protobuf::internal::WireFormatLite::SERIALIZE,
      "heroim.client.v3beta.dto.group.ChatRoomUserResponseItem.msg");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_msg(), target);
  }

  // int32 code = 3;
  if (this->_internal_code() != 0) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_code(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  return target;
}

size_t ChatRoomUserResponseItem::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string msg = 2;
  if (!this->_internal_msg().empty()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::StringSize(
        this->_internal_msg());
  }

  // .heroim.client.v3beta.dto.user.model.UserKey userKey = 1;
  if (this->_internal_has_userkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *userkey_);
  }

  // int32 code = 3;
  if (this->_internal_code() != 0) {
    total_size += ::herogoogle::protobuf::internal::WireFormatLite::Int32SizePlusOne(this->_internal_code());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomUserResponseItem::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomUserResponseItem::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomUserResponseItem::GetClassData() const { return &_class_data_; }

void ChatRoomUserResponseItem::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomUserResponseItem *>(to)->MergeFrom(
      static_cast<const ChatRoomUserResponseItem &>(from));
}


void ChatRoomUserResponseItem::MergeFrom(const ChatRoomUserResponseItem& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_msg().empty()) {
    _internal_set_msg(from._internal_msg());
  }
  if (from._internal_has_userkey()) {
    _internal_mutable_userkey()->::heroim::client::v3beta::dto::user::model::UserKey::MergeFrom(from._internal_userkey());
  }
  if (from._internal_code() != 0) {
    _internal_set_code(from._internal_code());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomUserResponseItem::CopyFrom(const ChatRoomUserResponseItem& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomUserResponseItem)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomUserResponseItem::InternalSwap(ChatRoomUserResponseItem* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::ArenaStringPtr::InternalSwap(
      &::herogoogle::protobuf::internal::GetEmptyStringAlreadyInited(),
      &msg_, lhs_arena,
      &other->msg_, rhs_arena
  );
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomUserResponseItem, code_)
      + sizeof(ChatRoomUserResponseItem::code_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomUserResponseItem, userkey_)>(
          reinterpret_cast<char*>(&userkey_),
          reinterpret_cast<char*>(&other->userkey_));
}

::herogoogle::protobuf::Metadata ChatRoomUserResponseItem::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[13]);
}

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

class ChatRoomInviteResponse::_Internal {
 public:
};

ChatRoomInviteResponse::ChatRoomInviteResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned),
  list_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
}
ChatRoomInviteResponse::ChatRoomInviteResponse(const ChatRoomInviteResponse& from)
  : ::herogoogle::protobuf::Message(),
      list_(from.list_) {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
}

void ChatRoomInviteResponse::SharedCtor() {
}

ChatRoomInviteResponse::~ChatRoomInviteResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomInviteResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void ChatRoomInviteResponse::ArenaDtor(void* object) {
  ChatRoomInviteResponse* _this = reinterpret_cast< ChatRoomInviteResponse* >(object);
  (void)_this;
}
void ChatRoomInviteResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomInviteResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomInviteResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  list_.Clear();
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomInviteResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::herogoogle::protobuf::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomInviteResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_list_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_list(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  return target;
}

size_t ChatRoomInviteResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
  total_size += 1UL * this->_internal_list_size();
  for (const auto& msg : this->list_) {
    total_size +=
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomInviteResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomInviteResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomInviteResponse::GetClassData() const { return &_class_data_; }

void ChatRoomInviteResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomInviteResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomInviteResponse &>(from));
}


void ChatRoomInviteResponse::MergeFrom(const ChatRoomInviteResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  list_.MergeFrom(from.list_);
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomInviteResponse::CopyFrom(const ChatRoomInviteResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomInviteResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomInviteResponse::InternalSwap(ChatRoomInviteResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  list_.InternalSwap(&other->list_);
}

::herogoogle::protobuf::Metadata ChatRoomInviteResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[14]);
}

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

class ChatRoomUserRemoveRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomUserRemoveRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomUserRemoveRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomUserRemoveRequest::_Internal::base(const ChatRoomUserRemoveRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomUserRemoveRequest::_Internal::groupkey(const ChatRoomUserRemoveRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomUserRemoveRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomUserRemoveRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
void ChatRoomUserRemoveRequest::clear_users() {
  users_.Clear();
}
ChatRoomUserRemoveRequest::ChatRoomUserRemoveRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned),
  users_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
}
ChatRoomUserRemoveRequest::ChatRoomUserRemoveRequest(const ChatRoomUserRemoveRequest& from)
  : ::herogoogle::protobuf::Message(),
      users_(from.users_) {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
}

void ChatRoomUserRemoveRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomUserRemoveRequest::~ChatRoomUserRemoveRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomUserRemoveRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomUserRemoveRequest::ArenaDtor(void* object) {
  ChatRoomUserRemoveRequest* _this = reinterpret_cast< ChatRoomUserRemoveRequest* >(object);
  (void)_this;
}
void ChatRoomUserRemoveRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomUserRemoveRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomUserRemoveRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  users_.Clear();
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomUserRemoveRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 26)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_users(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::herogoogle::protobuf::internal::ExpectTag<26>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomUserRemoveRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_users_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(3, this->_internal_users(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  return target;
}

size_t ChatRoomUserRemoveRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .heroim.client.v3beta.dto.user.model.UserKey users = 3;
  total_size += 1UL * this->_internal_users_size();
  for (const auto& msg : this->users_) {
    total_size +=
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(msg);
  }

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomUserRemoveRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomUserRemoveRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomUserRemoveRequest::GetClassData() const { return &_class_data_; }

void ChatRoomUserRemoveRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomUserRemoveRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomUserRemoveRequest &>(from));
}


void ChatRoomUserRemoveRequest::MergeFrom(const ChatRoomUserRemoveRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  users_.MergeFrom(from.users_);
  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomUserRemoveRequest::CopyFrom(const ChatRoomUserRemoveRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomUserRemoveRequest::InternalSwap(ChatRoomUserRemoveRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  users_.InternalSwap(&other->users_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomUserRemoveRequest, groupkey_)
      + sizeof(ChatRoomUserRemoveRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomUserRemoveRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomUserRemoveRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[15]);
}

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

class ChatRoomUserRemoveResponse::_Internal {
 public:
};

ChatRoomUserRemoveResponse::ChatRoomUserRemoveResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned),
  list_(arena) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
}
ChatRoomUserRemoveResponse::ChatRoomUserRemoveResponse(const ChatRoomUserRemoveResponse& from)
  : ::herogoogle::protobuf::Message(),
      list_(from.list_) {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
}

void ChatRoomUserRemoveResponse::SharedCtor() {
}

ChatRoomUserRemoveResponse::~ChatRoomUserRemoveResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomUserRemoveResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void ChatRoomUserRemoveResponse::ArenaDtor(void* object) {
  ChatRoomUserRemoveResponse* _this = reinterpret_cast< ChatRoomUserRemoveResponse* >(object);
  (void)_this;
}
void ChatRoomUserRemoveResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomUserRemoveResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomUserRemoveResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  list_.Clear();
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomUserRemoveResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_list(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::herogoogle::protobuf::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomUserRemoveResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_list_size()); i < n; i++) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(1, this->_internal_list(i), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  return target;
}

size_t ChatRoomUserRemoveResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .heroim.client.v3beta.dto.group.ChatRoomUserResponseItem list = 1;
  total_size += 1UL * this->_internal_list_size();
  for (const auto& msg : this->list_) {
    total_size +=
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomUserRemoveResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomUserRemoveResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomUserRemoveResponse::GetClassData() const { return &_class_data_; }

void ChatRoomUserRemoveResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomUserRemoveResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomUserRemoveResponse &>(from));
}


void ChatRoomUserRemoveResponse::MergeFrom(const ChatRoomUserRemoveResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  list_.MergeFrom(from.list_);
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomUserRemoveResponse::CopyFrom(const ChatRoomUserRemoveResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomUserRemoveResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomUserRemoveResponse::InternalSwap(ChatRoomUserRemoveResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  list_.InternalSwap(&other->list_);
}

::herogoogle::protobuf::Metadata ChatRoomUserRemoveResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[16]);
}

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

class ChatRoomDismissRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomDismissRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomDismissRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomDismissRequest::_Internal::base(const ChatRoomDismissRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomDismissRequest::_Internal::groupkey(const ChatRoomDismissRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomDismissRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomDismissRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomDismissRequest::ChatRoomDismissRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
}
ChatRoomDismissRequest::ChatRoomDismissRequest(const ChatRoomDismissRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
}

void ChatRoomDismissRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomDismissRequest::~ChatRoomDismissRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomDismissRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomDismissRequest::ArenaDtor(void* object) {
  ChatRoomDismissRequest* _this = reinterpret_cast< ChatRoomDismissRequest* >(object);
  (void)_this;
}
void ChatRoomDismissRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomDismissRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomDismissRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomDismissRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomDismissRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  return target;
}

size_t ChatRoomDismissRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomDismissRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomDismissRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomDismissRequest::GetClassData() const { return &_class_data_; }

void ChatRoomDismissRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomDismissRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomDismissRequest &>(from));
}


void ChatRoomDismissRequest::MergeFrom(const ChatRoomDismissRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomDismissRequest::CopyFrom(const ChatRoomDismissRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomDismissRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomDismissRequest::InternalSwap(ChatRoomDismissRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomDismissRequest, groupkey_)
      + sizeof(ChatRoomDismissRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomDismissRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomDismissRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[17]);
}

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

class ChatRoomDismissResponse::_Internal {
 public:
};

ChatRoomDismissResponse::ChatRoomDismissResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::internal::ZeroFieldsBase(arena, is_message_owned) {
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomDismissResponse)
}
ChatRoomDismissResponse::ChatRoomDismissResponse(const ChatRoomDismissResponse& from)
  : ::herogoogle::protobuf::internal::ZeroFieldsBase() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomDismissResponse)
}





const ::herogoogle::protobuf::Message::ClassData ChatRoomDismissResponse::_class_data_ = {
    ::herogoogle::protobuf::internal::ZeroFieldsBase::CopyImpl,
    ::herogoogle::protobuf::internal::ZeroFieldsBase::MergeImpl,
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomDismissResponse::GetClassData() const { return &_class_data_; }







::herogoogle::protobuf::Metadata ChatRoomDismissResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[18]);
}

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

class ChatRoomStatsDataRequest::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::shared::APIRequest& base(const ChatRoomStatsDataRequest* msg);
  static const ::heroim::client::v3beta::dto::group::model::GroupKey& groupkey(const ChatRoomStatsDataRequest* msg);
};

const ::heroim::client::v3beta::dto::shared::APIRequest&
ChatRoomStatsDataRequest::_Internal::base(const ChatRoomStatsDataRequest* msg) {
  return *msg->base_;
}
const ::heroim::client::v3beta::dto::group::model::GroupKey&
ChatRoomStatsDataRequest::_Internal::groupkey(const ChatRoomStatsDataRequest* msg) {
  return *msg->groupkey_;
}
void ChatRoomStatsDataRequest::clear_base() {
  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
}
void ChatRoomStatsDataRequest::clear_groupkey() {
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
}
ChatRoomStatsDataRequest::ChatRoomStatsDataRequest(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
}
ChatRoomStatsDataRequest::ChatRoomStatsDataRequest(const ChatRoomStatsDataRequest& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_base()) {
    base_ = new ::heroim::client::v3beta::dto::shared::APIRequest(*from.base_);
  } else {
    base_ = nullptr;
  }
  if (from._internal_has_groupkey()) {
    groupkey_ = new ::heroim::client::v3beta::dto::group::model::GroupKey(*from.groupkey_);
  } else {
    groupkey_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
}

void ChatRoomStatsDataRequest::SharedCtor() {
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&base_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&groupkey_) -
    reinterpret_cast<char*>(&base_)) + sizeof(groupkey_));
}

ChatRoomStatsDataRequest::~ChatRoomStatsDataRequest() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomStatsDataRequest::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete base_;
  if (this != internal_default_instance()) delete groupkey_;
}

void ChatRoomStatsDataRequest::ArenaDtor(void* object) {
  ChatRoomStatsDataRequest* _this = reinterpret_cast< ChatRoomStatsDataRequest* >(object);
  (void)_this;
}
void ChatRoomStatsDataRequest::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomStatsDataRequest::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomStatsDataRequest::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && base_ != nullptr) {
    delete base_;
  }
  base_ = nullptr;
  if (GetArenaForAllocation() == nullptr && groupkey_ != nullptr) {
    delete groupkey_;
  }
  groupkey_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomStatsDataRequest::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_base(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 18)) {
          ptr = ctx->ParseMessage(_internal_mutable_groupkey(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomStatsDataRequest::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::base(this), target, stream);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        2, _Internal::groupkey(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  return target;
}

size_t ChatRoomStatsDataRequest::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.shared.APIRequest base = 1;
  if (this->_internal_has_base()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *base_);
  }

  // .heroim.client.v3beta.dto.group.model.GroupKey groupKey = 2;
  if (this->_internal_has_groupkey()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *groupkey_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomStatsDataRequest::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomStatsDataRequest::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomStatsDataRequest::GetClassData() const { return &_class_data_; }

void ChatRoomStatsDataRequest::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomStatsDataRequest *>(to)->MergeFrom(
      static_cast<const ChatRoomStatsDataRequest &>(from));
}


void ChatRoomStatsDataRequest::MergeFrom(const ChatRoomStatsDataRequest& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_base()) {
    _internal_mutable_base()->::heroim::client::v3beta::dto::shared::APIRequest::MergeFrom(from._internal_base());
  }
  if (from._internal_has_groupkey()) {
    _internal_mutable_groupkey()->::heroim::client::v3beta::dto::group::model::GroupKey::MergeFrom(from._internal_groupkey());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomStatsDataRequest::CopyFrom(const ChatRoomStatsDataRequest& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataRequest)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomStatsDataRequest::InternalSwap(ChatRoomStatsDataRequest* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::herogoogle::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ChatRoomStatsDataRequest, groupkey_)
      + sizeof(ChatRoomStatsDataRequest::groupkey_)
      - PROTOBUF_FIELD_OFFSET(ChatRoomStatsDataRequest, base_)>(
          reinterpret_cast<char*>(&base_),
          reinterpret_cast<char*>(&other->base_));
}

::herogoogle::protobuf::Metadata ChatRoomStatsDataRequest::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[19]);
}

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

class ChatRoomStatsDataResponse::_Internal {
 public:
  static const ::heroim::client::v3beta::dto::group::model::GroupStats& stats(const ChatRoomStatsDataResponse* msg);
};

const ::heroim::client::v3beta::dto::group::model::GroupStats&
ChatRoomStatsDataResponse::_Internal::stats(const ChatRoomStatsDataResponse* msg) {
  return *msg->stats_;
}
void ChatRoomStatsDataResponse::clear_stats() {
  if (GetArenaForAllocation() == nullptr && stats_ != nullptr) {
    delete stats_;
  }
  stats_ = nullptr;
}
ChatRoomStatsDataResponse::ChatRoomStatsDataResponse(::herogoogle::protobuf::Arena* arena,
                         bool is_message_owned)
  : ::herogoogle::protobuf::Message(arena, is_message_owned) {
  SharedCtor();
  if (!is_message_owned) {
    RegisterArenaDtor(arena);
  }
  // @@protoc_insertion_point(arena_constructor:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
}
ChatRoomStatsDataResponse::ChatRoomStatsDataResponse(const ChatRoomStatsDataResponse& from)
  : ::herogoogle::protobuf::Message() {
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
  if (from._internal_has_stats()) {
    stats_ = new ::heroim::client::v3beta::dto::group::model::GroupStats(*from.stats_);
  } else {
    stats_ = nullptr;
  }
  // @@protoc_insertion_point(copy_constructor:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
}

void ChatRoomStatsDataResponse::SharedCtor() {
stats_ = nullptr;
}

ChatRoomStatsDataResponse::~ChatRoomStatsDataResponse() {
  // @@protoc_insertion_point(destructor:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  if (GetArenaForAllocation() != nullptr) return;
  SharedDtor();
  _internal_metadata_.Delete<::herogoogle::protobuf::UnknownFieldSet>();
}

inline void ChatRoomStatsDataResponse::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  if (this != internal_default_instance()) delete stats_;
}

void ChatRoomStatsDataResponse::ArenaDtor(void* object) {
  ChatRoomStatsDataResponse* _this = reinterpret_cast< ChatRoomStatsDataResponse* >(object);
  (void)_this;
}
void ChatRoomStatsDataResponse::RegisterArenaDtor(::herogoogle::protobuf::Arena*) {
}
void ChatRoomStatsDataResponse::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void ChatRoomStatsDataResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  if (GetArenaForAllocation() == nullptr && stats_ != nullptr) {
    delete stats_;
  }
  stats_ = nullptr;
  _internal_metadata_.Clear<::herogoogle::protobuf::UnknownFieldSet>();
}

const char* ChatRoomStatsDataResponse::_InternalParse(const char* ptr, ::herogoogle::protobuf::internal::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    ::herogoogle::protobuf::uint32 tag;
    ptr = ::herogoogle::protobuf::internal::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // .heroim.client.v3beta.dto.group.model.GroupStats stats = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::herogoogle::protobuf::uint8>(tag) == 10)) {
          ptr = ctx->ParseMessage(_internal_mutable_stats(), ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

::herogoogle::protobuf::uint8* ChatRoomStatsDataResponse::_InternalSerialize(
    ::herogoogle::protobuf::uint8* target, ::herogoogle::protobuf::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.GroupStats stats = 1;
  if (this->_internal_has_stats()) {
    target = stream->EnsureSpace(target);
    target = ::herogoogle::protobuf::internal::WireFormatLite::
      InternalWriteMessage(
        1, _Internal::stats(this), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::herogoogle::protobuf::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::herogoogle::protobuf::UnknownFieldSet>(::herogoogle::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  return target;
}

size_t ChatRoomStatsDataResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  size_t total_size = 0;

  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // .heroim.client.v3beta.dto.group.model.GroupStats stats = 1;
  if (this->_internal_has_stats()) {
    total_size += 1 +
      ::herogoogle::protobuf::internal::WireFormatLite::MessageSize(
        *stats_);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::herogoogle::protobuf::Message::ClassData ChatRoomStatsDataResponse::_class_data_ = {
    ::herogoogle::protobuf::Message::CopyWithSizeCheck,
    ChatRoomStatsDataResponse::MergeImpl
};
const ::herogoogle::protobuf::Message::ClassData*ChatRoomStatsDataResponse::GetClassData() const { return &_class_data_; }

void ChatRoomStatsDataResponse::MergeImpl(::herogoogle::protobuf::Message* to,
                      const ::herogoogle::protobuf::Message& from) {
  static_cast<ChatRoomStatsDataResponse *>(to)->MergeFrom(
      static_cast<const ChatRoomStatsDataResponse &>(from));
}


void ChatRoomStatsDataResponse::MergeFrom(const ChatRoomStatsDataResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  GOOGLE_DCHECK_NE(&from, this);
  ::herogoogle::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  if (from._internal_has_stats()) {
    _internal_mutable_stats()->::heroim::client::v3beta::dto::group::model::GroupStats::MergeFrom(from._internal_stats());
  }
  _internal_metadata_.MergeFrom<::herogoogle::protobuf::UnknownFieldSet>(from._internal_metadata_);
}

void ChatRoomStatsDataResponse::CopyFrom(const ChatRoomStatsDataResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:heroim.client.v3beta.dto.group.ChatRoomStatsDataResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

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

void ChatRoomStatsDataResponse::InternalSwap(ChatRoomStatsDataResponse* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(stats_, other->stats_);
}

::herogoogle::protobuf::Metadata ChatRoomStatsDataResponse::GetMetadata() const {
  return ::herogoogle::protobuf::internal::AssignDescriptors(
      &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_getter, &descriptor_table_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto_once,
      file_level_metadata_client_2fv3beta_2fdto_2fgroup_2fchatroom_5fdto_2eproto[20]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace group
}  // namespace dto
}  // namespace v3beta
}  // namespace client
}  // namespace heroim
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomFindRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomFindRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomFindRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomFindResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomFindResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomFindResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomCreateRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomCreateRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomCreateRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions_ExtraEntry_DoNotUse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomCreateOptions >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomCreateResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomCreateResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomCreateResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomJoinRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomJoinRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomJoinRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomJoinResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomJoinResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomJoinResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomJoinAutoCreateResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomQuitRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomQuitRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomQuitRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomQuitResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomQuitResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomQuitResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomInviteRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomInviteRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomInviteRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomUserResponseItem >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomInviteResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomInviteResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomInviteResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomUserRemoveResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomDismissRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomDismissRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomDismissRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomDismissResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomDismissResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomDismissResponse >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomStatsDataRequest >(arena);
}
template<> PROTOBUF_NOINLINE ::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse* Arena::CreateMaybeMessage< ::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse >(Arena* arena) {
  return Arena::CreateMessageInternal< ::heroim::client::v3beta::dto::group::ChatRoomStatsDataResponse >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

