You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/pkg/proto/sdkws/sdkws.pb.go

7002 lines
251 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.29.1
// protoc v4.22.0
// source: sdkws/sdkws.proto
package sdkws
import (
reflect "reflect"
sync "sync"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
wrapperspb "github.com/OpenIMSDK/Open-IM-Server/pkg/proto/wrapperspb"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// /////////////////////////////////base end/////////////////////////////////////
type PullOrder int32
const (
PullOrder_PullOrderAsc PullOrder = 0
PullOrder_PullOrderDesc PullOrder = 1
)
// Enum value maps for PullOrder.
var (
PullOrder_name = map[int32]string{
0: "PullOrderAsc",
1: "PullOrderDesc",
}
PullOrder_value = map[string]int32{
"PullOrderAsc": 0,
"PullOrderDesc": 1,
}
)
func (x PullOrder) Enum() *PullOrder {
p := new(PullOrder)
*p = x
return p
}
func (x PullOrder) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (PullOrder) Descriptor() protoreflect.EnumDescriptor {
return file_sdkws_sdkws_proto_enumTypes[0].Descriptor()
}
func (PullOrder) Type() protoreflect.EnumType {
return &file_sdkws_sdkws_proto_enumTypes[0]
}
func (x PullOrder) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use PullOrder.Descriptor instead.
func (PullOrder) EnumDescriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{0}
}
type GroupInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID"`
GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName"`
Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification"`
Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction"`
FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL"`
OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID"`
CreateTime int64 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime"`
MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount"`
Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex"`
Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status"`
CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID"`
GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType"`
NeedVerification int32 `protobuf:"varint,13,opt,name=needVerification,proto3" json:"needVerification"`
LookMemberInfo int32 `protobuf:"varint,14,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo"`
ApplyMemberFriend int32 `protobuf:"varint,15,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend"`
NotificationUpdateTime int64 `protobuf:"varint,16,opt,name=notificationUpdateTime,proto3" json:"notificationUpdateTime"`
NotificationUserID string `protobuf:"bytes,17,opt,name=notificationUserID,proto3" json:"notificationUserID"`
}
func (x *GroupInfo) Reset() {
*x = GroupInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupInfo) ProtoMessage() {}
func (x *GroupInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead.
func (*GroupInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{0}
}
func (x *GroupInfo) GetGroupID() string {
if x != nil {
return x.GroupID
}
return ""
}
func (x *GroupInfo) GetGroupName() string {
if x != nil {
return x.GroupName
}
return ""
}
func (x *GroupInfo) GetNotification() string {
if x != nil {
return x.Notification
}
return ""
}
func (x *GroupInfo) GetIntroduction() string {
if x != nil {
return x.Introduction
}
return ""
}
func (x *GroupInfo) GetFaceURL() string {
if x != nil {
return x.FaceURL
}
return ""
}
func (x *GroupInfo) GetOwnerUserID() string {
if x != nil {
return x.OwnerUserID
}
return ""
}
func (x *GroupInfo) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *GroupInfo) GetMemberCount() uint32 {
if x != nil {
return x.MemberCount
}
return 0
}
func (x *GroupInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
func (x *GroupInfo) GetStatus() int32 {
if x != nil {
return x.Status
}
return 0
}
func (x *GroupInfo) GetCreatorUserID() string {
if x != nil {
return x.CreatorUserID
}
return ""
}
func (x *GroupInfo) GetGroupType() int32 {
if x != nil {
return x.GroupType
}
return 0
}
func (x *GroupInfo) GetNeedVerification() int32 {
if x != nil {
return x.NeedVerification
}
return 0
}
func (x *GroupInfo) GetLookMemberInfo() int32 {
if x != nil {
return x.LookMemberInfo
}
return 0
}
func (x *GroupInfo) GetApplyMemberFriend() int32 {
if x != nil {
return x.ApplyMemberFriend
}
return 0
}
func (x *GroupInfo) GetNotificationUpdateTime() int64 {
if x != nil {
return x.NotificationUpdateTime
}
return 0
}
func (x *GroupInfo) GetNotificationUserID() string {
if x != nil {
return x.NotificationUserID
}
return ""
}
type GroupInfoForSet struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID"`
GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName"`
Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification"`
Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction"`
FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL"`
Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex"`
NeedVerification *wrapperspb.Int32Value `protobuf:"bytes,7,opt,name=needVerification,proto3" json:"needVerification"`
LookMemberInfo *wrapperspb.Int32Value `protobuf:"bytes,8,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo"`
ApplyMemberFriend *wrapperspb.Int32Value `protobuf:"bytes,9,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend"`
}
func (x *GroupInfoForSet) Reset() {
*x = GroupInfoForSet{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupInfoForSet) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupInfoForSet) ProtoMessage() {}
func (x *GroupInfoForSet) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupInfoForSet.ProtoReflect.Descriptor instead.
func (*GroupInfoForSet) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{1}
}
func (x *GroupInfoForSet) GetGroupID() string {
if x != nil {
return x.GroupID
}
return ""
}
func (x *GroupInfoForSet) GetGroupName() string {
if x != nil {
return x.GroupName
}
return ""
}
func (x *GroupInfoForSet) GetNotification() string {
if x != nil {
return x.Notification
}
return ""
}
func (x *GroupInfoForSet) GetIntroduction() string {
if x != nil {
return x.Introduction
}
return ""
}
func (x *GroupInfoForSet) GetFaceURL() string {
if x != nil {
return x.FaceURL
}
return ""
}
func (x *GroupInfoForSet) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
func (x *GroupInfoForSet) GetNeedVerification() *wrapperspb.Int32Value {
if x != nil {
return x.NeedVerification
}
return nil
}
func (x *GroupInfoForSet) GetLookMemberInfo() *wrapperspb.Int32Value {
if x != nil {
return x.LookMemberInfo
}
return nil
}
func (x *GroupInfoForSet) GetApplyMemberFriend() *wrapperspb.Int32Value {
if x != nil {
return x.ApplyMemberFriend
}
return nil
}
type GroupMemberFullInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID"`
UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"`
RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel"`
JoinTime int64 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime"`
Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname"`
FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL"`
AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel"` //if >0
JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource"`
OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID"`
Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex"`
MuteEndTime int64 `protobuf:"varint,11,opt,name=muteEndTime,proto3" json:"muteEndTime"`
InviterUserID string `protobuf:"bytes,12,opt,name=inviterUserID,proto3" json:"inviterUserID"`
}
func (x *GroupMemberFullInfo) Reset() {
*x = GroupMemberFullInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupMemberFullInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupMemberFullInfo) ProtoMessage() {}
func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead.
func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{2}
}
func (x *GroupMemberFullInfo) GetGroupID() string {
if x != nil {
return x.GroupID
}
return ""
}
func (x *GroupMemberFullInfo) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *GroupMemberFullInfo) GetRoleLevel() int32 {
if x != nil {
return x.RoleLevel
}
return 0
}
func (x *GroupMemberFullInfo) GetJoinTime() int64 {
if x != nil {
return x.JoinTime
}
return 0
}
func (x *GroupMemberFullInfo) GetNickname() string {
if x != nil {
return x.Nickname
}
return ""
}
func (x *GroupMemberFullInfo) GetFaceURL() string {
if x != nil {
return x.FaceURL
}
return ""
}
func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 {
if x != nil {
return x.AppMangerLevel
}
return 0
}
func (x *GroupMemberFullInfo) GetJoinSource() int32 {
if x != nil {
return x.JoinSource
}
return 0
}
func (x *GroupMemberFullInfo) GetOperatorUserID() string {
if x != nil {
return x.OperatorUserID
}
return ""
}
func (x *GroupMemberFullInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
func (x *GroupMemberFullInfo) GetMuteEndTime() int64 {
if x != nil {
return x.MuteEndTime
}
return 0
}
func (x *GroupMemberFullInfo) GetInviterUserID() string {
if x != nil {
return x.InviterUserID
}
return ""
}
type PublicUserInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"`
FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL"`
Ex string `protobuf:"bytes,4,opt,name=ex,proto3" json:"ex"`
}
func (x *PublicUserInfo) Reset() {
*x = PublicUserInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PublicUserInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PublicUserInfo) ProtoMessage() {}
func (x *PublicUserInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PublicUserInfo.ProtoReflect.Descriptor instead.
func (*PublicUserInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{3}
}
func (x *PublicUserInfo) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *PublicUserInfo) GetNickname() string {
if x != nil {
return x.Nickname
}
return ""
}
func (x *PublicUserInfo) GetFaceURL() string {
if x != nil {
return x.FaceURL
}
return ""
}
func (x *PublicUserInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type UserInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname"`
FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL"`
Ex string `protobuf:"bytes,4,opt,name=ex,proto3" json:"ex"`
CreateTime int64 `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime"`
AppMangerLevel int32 `protobuf:"varint,6,opt,name=appMangerLevel,proto3" json:"appMangerLevel"`
GlobalRecvMsgOpt int32 `protobuf:"varint,7,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt"`
}
func (x *UserInfo) Reset() {
*x = UserInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserInfo) ProtoMessage() {}
func (x *UserInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
func (*UserInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{4}
}
func (x *UserInfo) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *UserInfo) GetNickname() string {
if x != nil {
return x.Nickname
}
return ""
}
func (x *UserInfo) GetFaceURL() string {
if x != nil {
return x.FaceURL
}
return ""
}
func (x *UserInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
func (x *UserInfo) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *UserInfo) GetAppMangerLevel() int32 {
if x != nil {
return x.AppMangerLevel
}
return 0
}
func (x *UserInfo) GetGlobalRecvMsgOpt() int32 {
if x != nil {
return x.GlobalRecvMsgOpt
}
return 0
}
type FriendInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID"`
Remark string `protobuf:"bytes,2,opt,name=remark,proto3" json:"remark"`
CreateTime int64 `protobuf:"varint,3,opt,name=createTime,proto3" json:"createTime"`
FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser,proto3" json:"friendUser"`
AddSource int32 `protobuf:"varint,5,opt,name=addSource,proto3" json:"addSource"`
OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID,proto3" json:"operatorUserID"`
Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex"`
}
func (x *FriendInfo) Reset() {
*x = FriendInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendInfo) ProtoMessage() {}
func (x *FriendInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendInfo.ProtoReflect.Descriptor instead.
func (*FriendInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{5}
}
func (x *FriendInfo) GetOwnerUserID() string {
if x != nil {
return x.OwnerUserID
}
return ""
}
func (x *FriendInfo) GetRemark() string {
if x != nil {
return x.Remark
}
return ""
}
func (x *FriendInfo) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *FriendInfo) GetFriendUser() *UserInfo {
if x != nil {
return x.FriendUser
}
return nil
}
func (x *FriendInfo) GetAddSource() int32 {
if x != nil {
return x.AddSource
}
return 0
}
func (x *FriendInfo) GetOperatorUserID() string {
if x != nil {
return x.OperatorUserID
}
return ""
}
func (x *FriendInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type BlackInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID"`
CreateTime int64 `protobuf:"varint,2,opt,name=createTime,proto3" json:"createTime"`
BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo,proto3" json:"blackUserInfo"`
AddSource int32 `protobuf:"varint,4,opt,name=addSource,proto3" json:"addSource"`
OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID,proto3" json:"operatorUserID"`
Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex"`
}
func (x *BlackInfo) Reset() {
*x = BlackInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BlackInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BlackInfo) ProtoMessage() {}
func (x *BlackInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BlackInfo.ProtoReflect.Descriptor instead.
func (*BlackInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{6}
}
func (x *BlackInfo) GetOwnerUserID() string {
if x != nil {
return x.OwnerUserID
}
return ""
}
func (x *BlackInfo) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *BlackInfo) GetBlackUserInfo() *PublicUserInfo {
if x != nil {
return x.BlackUserInfo
}
return nil
}
func (x *BlackInfo) GetAddSource() int32 {
if x != nil {
return x.AddSource
}
return 0
}
func (x *BlackInfo) GetOperatorUserID() string {
if x != nil {
return x.OperatorUserID
}
return ""
}
func (x *BlackInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type GroupRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo,proto3" json:"userInfo"`
GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo,proto3" json:"groupInfo"`
HandleResult int32 `protobuf:"varint,3,opt,name=handleResult,proto3" json:"handleResult"`
ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg,proto3" json:"reqMsg"`
HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg,proto3" json:"handleMsg"`
ReqTime int64 `protobuf:"varint,6,opt,name=reqTime,proto3" json:"reqTime"`
HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID,proto3" json:"handleUserID"`
HandleTime int64 `protobuf:"varint,8,opt,name=handleTime,proto3" json:"handleTime"`
Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex"`
JoinSource int32 `protobuf:"varint,10,opt,name=joinSource,proto3" json:"joinSource"`
InviterUserID string `protobuf:"bytes,11,opt,name=inviterUserID,proto3" json:"inviterUserID"`
}
func (x *GroupRequest) Reset() {
*x = GroupRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupRequest) ProtoMessage() {}
func (x *GroupRequest) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupRequest.ProtoReflect.Descriptor instead.
func (*GroupRequest) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{7}
}
func (x *GroupRequest) GetUserInfo() *PublicUserInfo {
if x != nil {
return x.UserInfo
}
return nil
}
func (x *GroupRequest) GetGroupInfo() *GroupInfo {
if x != nil {
return x.GroupInfo
}
return nil
}
func (x *GroupRequest) GetHandleResult() int32 {
if x != nil {
return x.HandleResult
}
return 0
}
func (x *GroupRequest) GetReqMsg() string {
if x != nil {
return x.ReqMsg
}
return ""
}
func (x *GroupRequest) GetHandleMsg() string {
if x != nil {
return x.HandleMsg
}
return ""
}
func (x *GroupRequest) GetReqTime() int64 {
if x != nil {
return x.ReqTime
}
return 0
}
func (x *GroupRequest) GetHandleUserID() string {
if x != nil {
return x.HandleUserID
}
return ""
}
func (x *GroupRequest) GetHandleTime() int64 {
if x != nil {
return x.HandleTime
}
return 0
}
func (x *GroupRequest) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
func (x *GroupRequest) GetJoinSource() int32 {
if x != nil {
return x.JoinSource
}
return 0
}
func (x *GroupRequest) GetInviterUserID() string {
if x != nil {
return x.InviterUserID
}
return ""
}
type FriendRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID"`
FromNickname string `protobuf:"bytes,2,opt,name=fromNickname,proto3" json:"fromNickname"`
FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL,proto3" json:"fromFaceURL"`
ToUserID string `protobuf:"bytes,4,opt,name=toUserID,proto3" json:"toUserID"`
ToNickname string `protobuf:"bytes,5,opt,name=toNickname,proto3" json:"toNickname"`
ToFaceURL string `protobuf:"bytes,6,opt,name=toFaceURL,proto3" json:"toFaceURL"`
HandleResult int32 `protobuf:"varint,7,opt,name=handleResult,proto3" json:"handleResult"`
ReqMsg string `protobuf:"bytes,8,opt,name=reqMsg,proto3" json:"reqMsg"`
CreateTime int64 `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime"`
HandlerUserID string `protobuf:"bytes,10,opt,name=handlerUserID,proto3" json:"handlerUserID"`
HandleMsg string `protobuf:"bytes,11,opt,name=handleMsg,proto3" json:"handleMsg"`
HandleTime int64 `protobuf:"varint,12,opt,name=handleTime,proto3" json:"handleTime"`
Ex string `protobuf:"bytes,13,opt,name=ex,proto3" json:"ex"`
}
func (x *FriendRequest) Reset() {
*x = FriendRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendRequest) ProtoMessage() {}
func (x *FriendRequest) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendRequest.ProtoReflect.Descriptor instead.
func (*FriendRequest) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{8}
}
func (x *FriendRequest) GetFromUserID() string {
if x != nil {
return x.FromUserID
}
return ""
}
func (x *FriendRequest) GetFromNickname() string {
if x != nil {
return x.FromNickname
}
return ""
}
func (x *FriendRequest) GetFromFaceURL() string {
if x != nil {
return x.FromFaceURL
}
return ""
}
func (x *FriendRequest) GetToUserID() string {
if x != nil {
return x.ToUserID
}
return ""
}
func (x *FriendRequest) GetToNickname() string {
if x != nil {
return x.ToNickname
}
return ""
}
func (x *FriendRequest) GetToFaceURL() string {
if x != nil {
return x.ToFaceURL
}
return ""
}
func (x *FriendRequest) GetHandleResult() int32 {
if x != nil {
return x.HandleResult
}
return 0
}
func (x *FriendRequest) GetReqMsg() string {
if x != nil {
return x.ReqMsg
}
return ""
}
func (x *FriendRequest) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *FriendRequest) GetHandlerUserID() string {
if x != nil {
return x.HandlerUserID
}
return ""
}
func (x *FriendRequest) GetHandleMsg() string {
if x != nil {
return x.HandleMsg
}
return ""
}
func (x *FriendRequest) GetHandleTime() int64 {
if x != nil {
return x.HandleTime
}
return 0
}
func (x *FriendRequest) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type PullMessageBySeqsReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
SeqRanges []*SeqRange `protobuf:"bytes,2,rep,name=seqRanges,proto3" json:"seqRanges"`
Order PullOrder `protobuf:"varint,3,opt,name=order,proto3,enum=OpenIMServer.sdkws.PullOrder" json:"order"`
}
func (x *PullMessageBySeqsReq) Reset() {
*x = PullMessageBySeqsReq{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PullMessageBySeqsReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PullMessageBySeqsReq) ProtoMessage() {}
func (x *PullMessageBySeqsReq) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PullMessageBySeqsReq.ProtoReflect.Descriptor instead.
func (*PullMessageBySeqsReq) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{9}
}
func (x *PullMessageBySeqsReq) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *PullMessageBySeqsReq) GetSeqRanges() []*SeqRange {
if x != nil {
return x.SeqRanges
}
return nil
}
func (x *PullMessageBySeqsReq) GetOrder() PullOrder {
if x != nil {
return x.Order
}
return PullOrder_PullOrderAsc
}
type SeqRange struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID"`
Begin int64 `protobuf:"varint,2,opt,name=begin,proto3" json:"begin"`
End int64 `protobuf:"varint,3,opt,name=end,proto3" json:"end"`
Num int64 `protobuf:"varint,4,opt,name=num,proto3" json:"num"`
}
func (x *SeqRange) Reset() {
*x = SeqRange{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SeqRange) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SeqRange) ProtoMessage() {}
func (x *SeqRange) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SeqRange.ProtoReflect.Descriptor instead.
func (*SeqRange) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{10}
}
func (x *SeqRange) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *SeqRange) GetBegin() int64 {
if x != nil {
return x.Begin
}
return 0
}
func (x *SeqRange) GetEnd() int64 {
if x != nil {
return x.End
}
return 0
}
func (x *SeqRange) GetNum() int64 {
if x != nil {
return x.Num
}
return 0
}
type PullMsgs struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Msgs []*MsgData `protobuf:"bytes,1,rep,name=Msgs,proto3" json:"Msgs"`
IsEnd bool `protobuf:"varint,2,opt,name=isEnd,proto3" json:"isEnd"`
}
func (x *PullMsgs) Reset() {
*x = PullMsgs{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PullMsgs) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PullMsgs) ProtoMessage() {}
func (x *PullMsgs) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PullMsgs.ProtoReflect.Descriptor instead.
func (*PullMsgs) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{11}
}
func (x *PullMsgs) GetMsgs() []*MsgData {
if x != nil {
return x.Msgs
}
return nil
}
func (x *PullMsgs) GetIsEnd() bool {
if x != nil {
return x.IsEnd
}
return false
}
type PullMessageBySeqsResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Msgs map[string]*PullMsgs `protobuf:"bytes,1,rep,name=msgs,proto3" json:"msgs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
NotificationMsgs map[string]*PullMsgs `protobuf:"bytes,2,rep,name=notificationMsgs,proto3" json:"notificationMsgs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *PullMessageBySeqsResp) Reset() {
*x = PullMessageBySeqsResp{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PullMessageBySeqsResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PullMessageBySeqsResp) ProtoMessage() {}
func (x *PullMessageBySeqsResp) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PullMessageBySeqsResp.ProtoReflect.Descriptor instead.
func (*PullMessageBySeqsResp) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{12}
}
func (x *PullMessageBySeqsResp) GetMsgs() map[string]*PullMsgs {
if x != nil {
return x.Msgs
}
return nil
}
func (x *PullMessageBySeqsResp) GetNotificationMsgs() map[string]*PullMsgs {
if x != nil {
return x.NotificationMsgs
}
return nil
}
type GetMaxSeqReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
}
func (x *GetMaxSeqReq) Reset() {
*x = GetMaxSeqReq{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetMaxSeqReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMaxSeqReq) ProtoMessage() {}
func (x *GetMaxSeqReq) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetMaxSeqReq.ProtoReflect.Descriptor instead.
func (*GetMaxSeqReq) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{13}
}
func (x *GetMaxSeqReq) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
type GetMaxSeqResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MaxSeqs map[string]int64 `protobuf:"bytes,1,rep,name=maxSeqs,proto3" json:"maxSeqs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
MinSeqs map[string]int64 `protobuf:"bytes,2,rep,name=minSeqs,proto3" json:"minSeqs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}
func (x *GetMaxSeqResp) Reset() {
*x = GetMaxSeqResp{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetMaxSeqResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetMaxSeqResp) ProtoMessage() {}
func (x *GetMaxSeqResp) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetMaxSeqResp.ProtoReflect.Descriptor instead.
func (*GetMaxSeqResp) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{14}
}
func (x *GetMaxSeqResp) GetMaxSeqs() map[string]int64 {
if x != nil {
return x.MaxSeqs
}
return nil
}
func (x *GetMaxSeqResp) GetMinSeqs() map[string]int64 {
if x != nil {
return x.MinSeqs
}
return nil
}
type UserSendMsgResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID,proto3" json:"serverMsgID"`
ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID"`
SendTime int64 `protobuf:"varint,3,opt,name=sendTime,proto3" json:"sendTime"`
}
func (x *UserSendMsgResp) Reset() {
*x = UserSendMsgResp{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserSendMsgResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserSendMsgResp) ProtoMessage() {}
func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead.
func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{15}
}
func (x *UserSendMsgResp) GetServerMsgID() string {
if x != nil {
return x.ServerMsgID
}
return ""
}
func (x *UserSendMsgResp) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *UserSendMsgResp) GetSendTime() int64 {
if x != nil {
return x.SendTime
}
return 0
}
type MsgData struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
SendID string `protobuf:"bytes,1,opt,name=sendID,proto3" json:"sendID"`
RecvID string `protobuf:"bytes,2,opt,name=recvID,proto3" json:"recvID"`
GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID"`
ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID,proto3" json:"clientMsgID"`
ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID,proto3" json:"serverMsgID"`
SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID,proto3" json:"senderPlatformID"`
SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname,proto3" json:"senderNickname"`
SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL,proto3" json:"senderFaceURL"`
SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType"`
MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom,proto3" json:"msgFrom"`
ContentType int32 `protobuf:"varint,11,opt,name=contentType,proto3" json:"contentType"`
Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content"`
Seq int64 `protobuf:"varint,14,opt,name=seq,proto3" json:"seq"`
SendTime int64 `protobuf:"varint,15,opt,name=sendTime,proto3" json:"sendTime"`
CreateTime int64 `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime"`
Status int32 `protobuf:"varint,17,opt,name=status,proto3" json:"status"`
IsRead bool `protobuf:"varint,18,opt,name=isRead,proto3" json:"isRead"`
Options map[string]bool `protobuf:"bytes,19,rep,name=options,proto3" json:"options" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,20,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo"`
AtUserIDList []string `protobuf:"bytes,21,rep,name=atUserIDList,proto3" json:"atUserIDList"`
AttachedInfo string `protobuf:"bytes,22,opt,name=attachedInfo,proto3" json:"attachedInfo"`
Ex string `protobuf:"bytes,23,opt,name=ex,proto3" json:"ex"`
}
func (x *MsgData) Reset() {
*x = MsgData{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MsgData) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MsgData) ProtoMessage() {}
func (x *MsgData) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MsgData.ProtoReflect.Descriptor instead.
func (*MsgData) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{16}
}
func (x *MsgData) GetSendID() string {
if x != nil {
return x.SendID
}
return ""
}
func (x *MsgData) GetRecvID() string {
if x != nil {
return x.RecvID
}
return ""
}
func (x *MsgData) GetGroupID() string {
if x != nil {
return x.GroupID
}
return ""
}
func (x *MsgData) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *MsgData) GetServerMsgID() string {
if x != nil {
return x.ServerMsgID
}
return ""
}
func (x *MsgData) GetSenderPlatformID() int32 {
if x != nil {
return x.SenderPlatformID
}
return 0
}
func (x *MsgData) GetSenderNickname() string {
if x != nil {
return x.SenderNickname
}
return ""
}
func (x *MsgData) GetSenderFaceURL() string {
if x != nil {
return x.SenderFaceURL
}
return ""
}
func (x *MsgData) GetSessionType() int32 {
if x != nil {
return x.SessionType
}
return 0
}
func (x *MsgData) GetMsgFrom() int32 {
if x != nil {
return x.MsgFrom
}
return 0
}
func (x *MsgData) GetContentType() int32 {
if x != nil {
return x.ContentType
}
return 0
}
func (x *MsgData) GetContent() []byte {
if x != nil {
return x.Content
}
return nil
}
func (x *MsgData) GetSeq() int64 {
if x != nil {
return x.Seq
}
return 0
}
func (x *MsgData) GetSendTime() int64 {
if x != nil {
return x.SendTime
}
return 0
}
func (x *MsgData) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
func (x *MsgData) GetStatus() int32 {
if x != nil {
return x.Status
}
return 0
}
func (x *MsgData) GetIsRead() bool {
if x != nil {
return x.IsRead
}
return false
}
func (x *MsgData) GetOptions() map[string]bool {
if x != nil {
return x.Options
}
return nil
}
func (x *MsgData) GetOfflinePushInfo() *OfflinePushInfo {
if x != nil {
return x.OfflinePushInfo
}
return nil
}
func (x *MsgData) GetAtUserIDList() []string {
if x != nil {
return x.AtUserIDList
}
return nil
}
func (x *MsgData) GetAttachedInfo() string {
if x != nil {
return x.AttachedInfo
}
return ""
}
func (x *MsgData) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type PushMessages struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Msgs map[string]*PullMsgs `protobuf:"bytes,1,rep,name=msgs,proto3" json:"msgs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
NotificationMsgs map[string]*PullMsgs `protobuf:"bytes,2,rep,name=notificationMsgs,proto3" json:"notificationMsgs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *PushMessages) Reset() {
*x = PushMessages{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PushMessages) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PushMessages) ProtoMessage() {}
func (x *PushMessages) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use PushMessages.ProtoReflect.Descriptor instead.
func (*PushMessages) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{17}
}
func (x *PushMessages) GetMsgs() map[string]*PullMsgs {
if x != nil {
return x.Msgs
}
return nil
}
func (x *PushMessages) GetNotificationMsgs() map[string]*PullMsgs {
if x != nil {
return x.NotificationMsgs
}
return nil
}
type OfflinePushInfo struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title"`
Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc"`
Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex"`
IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound"`
IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount"`
SignalInfo string `protobuf:"bytes,6,opt,name=signalInfo,proto3" json:"signalInfo"`
}
func (x *OfflinePushInfo) Reset() {
*x = OfflinePushInfo{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *OfflinePushInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*OfflinePushInfo) ProtoMessage() {}
func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead.
func (*OfflinePushInfo) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{18}
}
func (x *OfflinePushInfo) GetTitle() string {
if x != nil {
return x.Title
}
return ""
}
func (x *OfflinePushInfo) GetDesc() string {
if x != nil {
return x.Desc
}
return ""
}
func (x *OfflinePushInfo) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
func (x *OfflinePushInfo) GetIOSPushSound() string {
if x != nil {
return x.IOSPushSound
}
return ""
}
func (x *OfflinePushInfo) GetIOSBadgeCount() bool {
if x != nil {
return x.IOSBadgeCount
}
return false
}
func (x *OfflinePushInfo) GetSignalInfo() string {
if x != nil {
return x.SignalInfo
}
return ""
}
type TipsComm struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail"`
DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips,proto3" json:"defaultTips"`
JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail,proto3" json:"jsonDetail"`
}
func (x *TipsComm) Reset() {
*x = TipsComm{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TipsComm) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TipsComm) ProtoMessage() {}
func (x *TipsComm) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use TipsComm.ProtoReflect.Descriptor instead.
func (*TipsComm) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{19}
}
func (x *TipsComm) GetDetail() []byte {
if x != nil {
return x.Detail
}
return nil
}
func (x *TipsComm) GetDefaultTips() string {
if x != nil {
return x.DefaultTips
}
return ""
}
func (x *TipsComm) GetJsonDetail() string {
if x != nil {
return x.JsonDetail
}
return ""
}
// OnGroupCreated()
type GroupCreatedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList"`
OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime"`
GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser,proto3" json:"groupOwnerUser"`
}
func (x *GroupCreatedTips) Reset() {
*x = GroupCreatedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupCreatedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupCreatedTips) ProtoMessage() {}
func (x *GroupCreatedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupCreatedTips.ProtoReflect.Descriptor instead.
func (*GroupCreatedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{20}
}
func (x *GroupCreatedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo {
if x != nil {
return x.MemberList
}
return nil
}
func (x *GroupCreatedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
func (x *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo {
if x != nil {
return x.GroupOwnerUser
}
return nil
}
// OnGroupInfoSet()
type GroupInfoSetTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser"` //who do this
MuteTime int64 `protobuf:"varint,2,opt,name=muteTime,proto3" json:"muteTime"`
Group *GroupInfo `protobuf:"bytes,3,opt,name=group,proto3" json:"group"`
}
func (x *GroupInfoSetTips) Reset() {
*x = GroupInfoSetTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupInfoSetTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupInfoSetTips) ProtoMessage() {}
func (x *GroupInfoSetTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupInfoSetTips.ProtoReflect.Descriptor instead.
func (*GroupInfoSetTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{21}
}
func (x *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupInfoSetTips) GetMuteTime() int64 {
if x != nil {
return x.MuteTime
}
return 0
}
func (x *GroupInfoSetTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
type GroupInfoSetNameTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser"` //who do this
Group *GroupInfo `protobuf:"bytes,2,opt,name=group,proto3" json:"group"`
}
func (x *GroupInfoSetNameTips) Reset() {
*x = GroupInfoSetNameTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupInfoSetNameTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupInfoSetNameTips) ProtoMessage() {}
func (x *GroupInfoSetNameTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupInfoSetNameTips.ProtoReflect.Descriptor instead.
func (*GroupInfoSetNameTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{22}
}
func (x *GroupInfoSetNameTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupInfoSetNameTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
type GroupInfoSetAnnouncementTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser"` //who do this
Group *GroupInfo `protobuf:"bytes,2,opt,name=group,proto3" json:"group"`
}
func (x *GroupInfoSetAnnouncementTips) Reset() {
*x = GroupInfoSetAnnouncementTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupInfoSetAnnouncementTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupInfoSetAnnouncementTips) ProtoMessage() {}
func (x *GroupInfoSetAnnouncementTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupInfoSetAnnouncementTips.ProtoReflect.Descriptor instead.
func (*GroupInfoSetAnnouncementTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{23}
}
func (x *GroupInfoSetAnnouncementTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupInfoSetAnnouncementTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
// OnJoinGroupApplication()
type JoinGroupApplicationTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant,proto3" json:"applicant"`
ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg,proto3" json:"reqMsg"`
}
func (x *JoinGroupApplicationTips) Reset() {
*x = JoinGroupApplicationTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JoinGroupApplicationTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*JoinGroupApplicationTips) ProtoMessage() {}
func (x *JoinGroupApplicationTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use JoinGroupApplicationTips.ProtoReflect.Descriptor instead.
func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{24}
}
func (x *JoinGroupApplicationTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo {
if x != nil {
return x.Applicant
}
return nil
}
func (x *JoinGroupApplicationTips) GetReqMsg() string {
if x != nil {
return x.ReqMsg
}
return ""
}
// OnQuitGroup()
//
// Actively leave the group
type MemberQuitTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser,proto3" json:"quitUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *MemberQuitTips) Reset() {
*x = MemberQuitTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MemberQuitTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MemberQuitTips) ProtoMessage() {}
func (x *MemberQuitTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MemberQuitTips.ProtoReflect.Descriptor instead.
func (*MemberQuitTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{25}
}
func (x *MemberQuitTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo {
if x != nil {
return x.QuitUser
}
return nil
}
func (x *MemberQuitTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
// OnApplicationGroupAccepted()
type GroupApplicationAcceptedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg"`
ReceiverAs int32 `protobuf:"varint,5,opt,name=receiverAs,proto3" json:"receiverAs"` // admin(==1) or applicant(==0)
}
func (x *GroupApplicationAcceptedTips) Reset() {
*x = GroupApplicationAcceptedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupApplicationAcceptedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupApplicationAcceptedTips) ProtoMessage() {}
func (x *GroupApplicationAcceptedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupApplicationAcceptedTips.ProtoReflect.Descriptor instead.
func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{26}
}
func (x *GroupApplicationAcceptedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupApplicationAcceptedTips) GetHandleMsg() string {
if x != nil {
return x.HandleMsg
}
return ""
}
func (x *GroupApplicationAcceptedTips) GetReceiverAs() int32 {
if x != nil {
return x.ReceiverAs
}
return 0
}
// OnApplicationGroupRejected()
type GroupApplicationRejectedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg"`
ReceiverAs int32 `protobuf:"varint,5,opt,name=receiverAs,proto3" json:"receiverAs"` // admin(==1) or applicant(==0)
}
func (x *GroupApplicationRejectedTips) Reset() {
*x = GroupApplicationRejectedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupApplicationRejectedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupApplicationRejectedTips) ProtoMessage() {}
func (x *GroupApplicationRejectedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupApplicationRejectedTips.ProtoReflect.Descriptor instead.
func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{27}
}
func (x *GroupApplicationRejectedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupApplicationRejectedTips) GetHandleMsg() string {
if x != nil {
return x.HandleMsg
}
return ""
}
func (x *GroupApplicationRejectedTips) GetReceiverAs() int32 {
if x != nil {
return x.ReceiverAs
}
return 0
}
// OnTransferGroupOwner()
type GroupOwnerTransferredTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner,proto3" json:"newGroupOwner"`
OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *GroupOwnerTransferredTips) Reset() {
*x = GroupOwnerTransferredTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupOwnerTransferredTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupOwnerTransferredTips) ProtoMessage() {}
func (x *GroupOwnerTransferredTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupOwnerTransferredTips.ProtoReflect.Descriptor instead.
func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{28}
}
func (x *GroupOwnerTransferredTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo {
if x != nil {
return x.NewGroupOwner
}
return nil
}
func (x *GroupOwnerTransferredTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
// OnMemberKicked()
type MemberKickedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList,proto3" json:"kickedUserList"`
OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *MemberKickedTips) Reset() {
*x = MemberKickedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MemberKickedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MemberKickedTips) ProtoMessage() {}
func (x *MemberKickedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MemberKickedTips.ProtoReflect.Descriptor instead.
func (*MemberKickedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{29}
}
func (x *MemberKickedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *MemberKickedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo {
if x != nil {
return x.KickedUserList
}
return nil
}
func (x *MemberKickedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
// OnMemberInvited()
type MemberInvitedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList,proto3" json:"invitedUserList"`
OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *MemberInvitedTips) Reset() {
*x = MemberInvitedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MemberInvitedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MemberInvitedTips) ProtoMessage() {}
func (x *MemberInvitedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MemberInvitedTips.ProtoReflect.Descriptor instead.
func (*MemberInvitedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{30}
}
func (x *MemberInvitedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo {
if x != nil {
return x.InvitedUserList
}
return nil
}
func (x *MemberInvitedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
// Actively join the group
type MemberEnterTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser,proto3" json:"entrantUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *MemberEnterTips) Reset() {
*x = MemberEnterTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MemberEnterTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MemberEnterTips) ProtoMessage() {}
func (x *MemberEnterTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MemberEnterTips.ProtoReflect.Descriptor instead.
func (*MemberEnterTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{31}
}
func (x *MemberEnterTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo {
if x != nil {
return x.EntrantUser
}
return nil
}
func (x *MemberEnterTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
type GroupDismissedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *GroupDismissedTips) Reset() {
*x = GroupDismissedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupDismissedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupDismissedTips) ProtoMessage() {}
func (x *GroupDismissedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupDismissedTips.ProtoReflect.Descriptor instead.
func (*GroupDismissedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{32}
}
func (x *GroupDismissedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupDismissedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupDismissedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
type GroupMemberMutedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser,proto3" json:"mutedUser"`
MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds,proto3" json:"mutedSeconds"`
}
func (x *GroupMemberMutedTips) Reset() {
*x = GroupMemberMutedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupMemberMutedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupMemberMutedTips) ProtoMessage() {}
func (x *GroupMemberMutedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupMemberMutedTips.ProtoReflect.Descriptor instead.
func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{33}
}
func (x *GroupMemberMutedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupMemberMutedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
func (x *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo {
if x != nil {
return x.MutedUser
}
return nil
}
func (x *GroupMemberMutedTips) GetMutedSeconds() uint32 {
if x != nil {
return x.MutedSeconds
}
return 0
}
type GroupMemberCancelMutedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser,proto3" json:"mutedUser"`
}
func (x *GroupMemberCancelMutedTips) Reset() {
*x = GroupMemberCancelMutedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupMemberCancelMutedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupMemberCancelMutedTips) ProtoMessage() {}
func (x *GroupMemberCancelMutedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupMemberCancelMutedTips.ProtoReflect.Descriptor instead.
func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{34}
}
func (x *GroupMemberCancelMutedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupMemberCancelMutedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
func (x *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo {
if x != nil {
return x.MutedUser
}
return nil
}
type GroupMutedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *GroupMutedTips) Reset() {
*x = GroupMutedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupMutedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupMutedTips) ProtoMessage() {}
func (x *GroupMutedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupMutedTips.ProtoReflect.Descriptor instead.
func (*GroupMutedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{35}
}
func (x *GroupMutedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupMutedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupMutedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
type GroupCancelMutedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
}
func (x *GroupCancelMutedTips) Reset() {
*x = GroupCancelMutedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupCancelMutedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupCancelMutedTips) ProtoMessage() {}
func (x *GroupCancelMutedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupCancelMutedTips.ProtoReflect.Descriptor instead.
func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{36}
}
func (x *GroupCancelMutedTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupCancelMutedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
type GroupMemberInfoSetTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group"`
OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser"`
OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime"`
ChangedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=changedUser,proto3" json:"changedUser"`
}
func (x *GroupMemberInfoSetTips) Reset() {
*x = GroupMemberInfoSetTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GroupMemberInfoSetTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GroupMemberInfoSetTips) ProtoMessage() {}
func (x *GroupMemberInfoSetTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GroupMemberInfoSetTips.ProtoReflect.Descriptor instead.
func (*GroupMemberInfoSetTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{37}
}
func (x *GroupMemberInfoSetTips) GetGroup() *GroupInfo {
if x != nil {
return x.Group
}
return nil
}
func (x *GroupMemberInfoSetTips) GetOpUser() *GroupMemberFullInfo {
if x != nil {
return x.OpUser
}
return nil
}
func (x *GroupMemberInfoSetTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
func (x *GroupMemberInfoSetTips) GetChangedUser() *GroupMemberFullInfo {
if x != nil {
return x.ChangedUser
}
return nil
}
type FriendApplication struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
AddTime int64 `protobuf:"varint,1,opt,name=addTime,proto3" json:"addTime"`
AddSource string `protobuf:"bytes,2,opt,name=addSource,proto3" json:"addSource"`
AddWording string `protobuf:"bytes,3,opt,name=addWording,proto3" json:"addWording"`
}
func (x *FriendApplication) Reset() {
*x = FriendApplication{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendApplication) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendApplication) ProtoMessage() {}
func (x *FriendApplication) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendApplication.ProtoReflect.Descriptor instead.
func (*FriendApplication) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{38}
}
func (x *FriendApplication) GetAddTime() int64 {
if x != nil {
return x.AddTime
}
return 0
}
func (x *FriendApplication) GetAddSource() string {
if x != nil {
return x.AddSource
}
return ""
}
func (x *FriendApplication) GetAddWording() string {
if x != nil {
return x.AddWording
}
return ""
}
type FromToUserID struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID"`
ToUserID string `protobuf:"bytes,2,opt,name=toUserID,proto3" json:"toUserID"`
}
func (x *FromToUserID) Reset() {
*x = FromToUserID{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FromToUserID) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FromToUserID) ProtoMessage() {}
func (x *FromToUserID) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FromToUserID.ProtoReflect.Descriptor instead.
func (*FromToUserID) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{39}
}
func (x *FromToUserID) GetFromUserID() string {
if x != nil {
return x.FromUserID
}
return ""
}
func (x *FromToUserID) GetToUserID() string {
if x != nil {
return x.ToUserID
}
return ""
}
// FromUserID apply to add ToUserID
type FriendApplicationTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //from发起者 to接收者
}
func (x *FriendApplicationTips) Reset() {
*x = FriendApplicationTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendApplicationTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendApplicationTips) ProtoMessage() {}
func (x *FriendApplicationTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendApplicationTips.ProtoReflect.Descriptor instead.
func (*FriendApplicationTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{40}
}
func (x *FriendApplicationTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
// FromUserID accept or reject ToUserID
type FriendApplicationApprovedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //from同意者to请求发起者
HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg"`
}
func (x *FriendApplicationApprovedTips) Reset() {
*x = FriendApplicationApprovedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendApplicationApprovedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendApplicationApprovedTips) ProtoMessage() {}
func (x *FriendApplicationApprovedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendApplicationApprovedTips.ProtoReflect.Descriptor instead.
func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{41}
}
func (x *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
func (x *FriendApplicationApprovedTips) GetHandleMsg() string {
if x != nil {
return x.HandleMsg
}
return ""
}
// FromUserID accept or reject ToUserID
type FriendApplicationRejectedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //from拒绝者to请求发起者
HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg"`
}
func (x *FriendApplicationRejectedTips) Reset() {
*x = FriendApplicationRejectedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendApplicationRejectedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendApplicationRejectedTips) ProtoMessage() {}
func (x *FriendApplicationRejectedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendApplicationRejectedTips.ProtoReflect.Descriptor instead.
func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{42}
}
func (x *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
func (x *FriendApplicationRejectedTips) GetHandleMsg() string {
if x != nil {
return x.HandleMsg
}
return ""
}
// FromUserID Added a friend ToUserID
type FriendAddedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend"`
OperationTime int64 `protobuf:"varint,2,opt,name=operationTime,proto3" json:"operationTime"`
OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser,proto3" json:"opUser"` //who do this
}
func (x *FriendAddedTips) Reset() {
*x = FriendAddedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendAddedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendAddedTips) ProtoMessage() {}
func (x *FriendAddedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendAddedTips.ProtoReflect.Descriptor instead.
func (*FriendAddedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{43}
}
func (x *FriendAddedTips) GetFriend() *FriendInfo {
if x != nil {
return x.Friend
}
return nil
}
func (x *FriendAddedTips) GetOperationTime() int64 {
if x != nil {
return x.OperationTime
}
return 0
}
func (x *FriendAddedTips) GetOpUser() *PublicUserInfo {
if x != nil {
return x.OpUser
}
return nil
}
// FromUserID deleted a friend ToUserID
type FriendDeletedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //fromowner tofriend
}
func (x *FriendDeletedTips) Reset() {
*x = FriendDeletedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendDeletedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendDeletedTips) ProtoMessage() {}
func (x *FriendDeletedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendDeletedTips.ProtoReflect.Descriptor instead.
func (*FriendDeletedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{44}
}
func (x *FriendDeletedTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
type BlackAddedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //fromowner toblack
}
func (x *BlackAddedTips) Reset() {
*x = BlackAddedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BlackAddedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BlackAddedTips) ProtoMessage() {}
func (x *BlackAddedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BlackAddedTips.ProtoReflect.Descriptor instead.
func (*BlackAddedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{45}
}
func (x *BlackAddedTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
type BlackDeletedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //fromowner toblack
}
func (x *BlackDeletedTips) Reset() {
*x = BlackDeletedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BlackDeletedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BlackDeletedTips) ProtoMessage() {}
func (x *BlackDeletedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BlackDeletedTips.ProtoReflect.Descriptor instead.
func (*BlackDeletedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{46}
}
func (x *BlackDeletedTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
type FriendInfoChangedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID"` //fromchanged tofriend
}
func (x *FriendInfoChangedTips) Reset() {
*x = FriendInfoChangedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *FriendInfoChangedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*FriendInfoChangedTips) ProtoMessage() {}
func (x *FriendInfoChangedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use FriendInfoChangedTips.ProtoReflect.Descriptor instead.
func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{47}
}
func (x *FriendInfoChangedTips) GetFromToUserID() *FromToUserID {
if x != nil {
return x.FromToUserID
}
return nil
}
// ////////////////////user/////////////////////
type UserInfoUpdatedTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
}
func (x *UserInfoUpdatedTips) Reset() {
*x = UserInfoUpdatedTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *UserInfoUpdatedTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UserInfoUpdatedTips) ProtoMessage() {}
func (x *UserInfoUpdatedTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UserInfoUpdatedTips.ProtoReflect.Descriptor instead.
func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{48}
}
func (x *UserInfoUpdatedTips) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
// ////////////////////conversation/////////////////////
type ConversationUpdateTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList,proto3" json:"conversationIDList"`
}
func (x *ConversationUpdateTips) Reset() {
*x = ConversationUpdateTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ConversationUpdateTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConversationUpdateTips) ProtoMessage() {}
func (x *ConversationUpdateTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ConversationUpdateTips.ProtoReflect.Descriptor instead.
func (*ConversationUpdateTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{49}
}
func (x *ConversationUpdateTips) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *ConversationUpdateTips) GetConversationIDList() []string {
if x != nil {
return x.ConversationIDList
}
return nil
}
type ConversationSetPrivateTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RecvID string `protobuf:"bytes,1,opt,name=recvID,proto3" json:"recvID"`
SendID string `protobuf:"bytes,2,opt,name=sendID,proto3" json:"sendID"`
IsPrivate bool `protobuf:"varint,3,opt,name=isPrivate,proto3" json:"isPrivate"`
}
func (x *ConversationSetPrivateTips) Reset() {
*x = ConversationSetPrivateTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ConversationSetPrivateTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConversationSetPrivateTips) ProtoMessage() {}
func (x *ConversationSetPrivateTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ConversationSetPrivateTips.ProtoReflect.Descriptor instead.
func (*ConversationSetPrivateTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{50}
}
func (x *ConversationSetPrivateTips) GetRecvID() string {
if x != nil {
return x.RecvID
}
return ""
}
func (x *ConversationSetPrivateTips) GetSendID() string {
if x != nil {
return x.SendID
}
return ""
}
func (x *ConversationSetPrivateTips) GetIsPrivate() bool {
if x != nil {
return x.IsPrivate
}
return false
}
type ConversationHasReadTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID"`
HasReadSeq int64 `protobuf:"varint,3,opt,name=hasReadSeq,proto3" json:"hasReadSeq"`
UnreadCountTime int64 `protobuf:"varint,4,opt,name=unreadCountTime,proto3" json:"unreadCountTime"`
}
func (x *ConversationHasReadTips) Reset() {
*x = ConversationHasReadTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ConversationHasReadTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ConversationHasReadTips) ProtoMessage() {}
func (x *ConversationHasReadTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ConversationHasReadTips.ProtoReflect.Descriptor instead.
func (*ConversationHasReadTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{51}
}
func (x *ConversationHasReadTips) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *ConversationHasReadTips) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *ConversationHasReadTips) GetHasReadSeq() int64 {
if x != nil {
return x.HasReadSeq
}
return 0
}
func (x *ConversationHasReadTips) GetUnreadCountTime() int64 {
if x != nil {
return x.UnreadCountTime
}
return 0
}
type NotificationElem struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Detail string `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail"`
}
func (x *NotificationElem) Reset() {
*x = NotificationElem{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[52]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *NotificationElem) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*NotificationElem) ProtoMessage() {}
func (x *NotificationElem) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[52]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use NotificationElem.ProtoReflect.Descriptor instead.
func (*NotificationElem) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{52}
}
func (x *NotificationElem) GetDetail() string {
if x != nil {
return x.Detail
}
return ""
}
// //////////////////message///////////////////////
type Seqs struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Seqs []int64 `protobuf:"varint,1,rep,packed,name=seqs,proto3" json:"seqs"`
}
func (x *Seqs) Reset() {
*x = Seqs{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[53]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Seqs) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Seqs) ProtoMessage() {}
func (x *Seqs) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[53]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Seqs.ProtoReflect.Descriptor instead.
func (*Seqs) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{53}
}
func (x *Seqs) GetSeqs() []int64 {
if x != nil {
return x.Seqs
}
return nil
}
type DeleteMessageTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID"`
UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID"`
Seqs []int64 `protobuf:"varint,3,rep,packed,name=seqs,proto3" json:"seqs"`
}
func (x *DeleteMessageTips) Reset() {
*x = DeleteMessageTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[54]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteMessageTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteMessageTips) ProtoMessage() {}
func (x *DeleteMessageTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[54]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteMessageTips.ProtoReflect.Descriptor instead.
func (*DeleteMessageTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{54}
}
func (x *DeleteMessageTips) GetOpUserID() string {
if x != nil {
return x.OpUserID
}
return ""
}
func (x *DeleteMessageTips) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *DeleteMessageTips) GetSeqs() []int64 {
if x != nil {
return x.Seqs
}
return nil
}
type RevokeMsgTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RevokerUserID string `protobuf:"bytes,1,opt,name=revokerUserID,proto3" json:"revokerUserID"`
ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID"`
RevokeTime int64 `protobuf:"varint,3,opt,name=revokeTime,proto3" json:"revokeTime"`
SesstionType int32 `protobuf:"varint,5,opt,name=sesstionType,proto3" json:"sesstionType"`
Seq int64 `protobuf:"varint,6,opt,name=seq,proto3" json:"seq"`
ConversationID string `protobuf:"bytes,7,opt,name=conversationID,proto3" json:"conversationID"`
}
func (x *RevokeMsgTips) Reset() {
*x = RevokeMsgTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[55]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RevokeMsgTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RevokeMsgTips) ProtoMessage() {}
func (x *RevokeMsgTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[55]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RevokeMsgTips.ProtoReflect.Descriptor instead.
func (*RevokeMsgTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{55}
}
func (x *RevokeMsgTips) GetRevokerUserID() string {
if x != nil {
return x.RevokerUserID
}
return ""
}
func (x *RevokeMsgTips) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *RevokeMsgTips) GetRevokeTime() int64 {
if x != nil {
return x.RevokeTime
}
return 0
}
func (x *RevokeMsgTips) GetSesstionType() int32 {
if x != nil {
return x.SesstionType
}
return 0
}
func (x *RevokeMsgTips) GetSeq() int64 {
if x != nil {
return x.Seq
}
return 0
}
func (x *RevokeMsgTips) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
type MessageRevokedContent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
RevokerID string `protobuf:"bytes,1,opt,name=revokerID,proto3" json:"revokerID"`
RevokerRole int32 `protobuf:"varint,2,opt,name=revokerRole,proto3" json:"revokerRole"`
ClientMsgID string `protobuf:"bytes,3,opt,name=clientMsgID,proto3" json:"clientMsgID"`
RevokerNickname string `protobuf:"bytes,4,opt,name=revokerNickname,proto3" json:"revokerNickname"`
RevokeTime int64 `protobuf:"varint,5,opt,name=revokeTime,proto3" json:"revokeTime"`
SourceMessageSendTime int64 `protobuf:"varint,6,opt,name=sourceMessageSendTime,proto3" json:"sourceMessageSendTime"`
SourceMessageSendID string `protobuf:"bytes,7,opt,name=sourceMessageSendID,proto3" json:"sourceMessageSendID"`
SourceMessageSenderNickname string `protobuf:"bytes,8,opt,name=sourceMessageSenderNickname,proto3" json:"sourceMessageSenderNickname"`
SessionType int32 `protobuf:"varint,10,opt,name=sessionType,proto3" json:"sessionType"`
Seq int64 `protobuf:"varint,11,opt,name=seq,proto3" json:"seq"`
Ex string `protobuf:"bytes,12,opt,name=ex,proto3" json:"ex"`
}
func (x *MessageRevokedContent) Reset() {
*x = MessageRevokedContent{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[56]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MessageRevokedContent) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MessageRevokedContent) ProtoMessage() {}
func (x *MessageRevokedContent) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[56]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MessageRevokedContent.ProtoReflect.Descriptor instead.
func (*MessageRevokedContent) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{56}
}
func (x *MessageRevokedContent) GetRevokerID() string {
if x != nil {
return x.RevokerID
}
return ""
}
func (x *MessageRevokedContent) GetRevokerRole() int32 {
if x != nil {
return x.RevokerRole
}
return 0
}
func (x *MessageRevokedContent) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *MessageRevokedContent) GetRevokerNickname() string {
if x != nil {
return x.RevokerNickname
}
return ""
}
func (x *MessageRevokedContent) GetRevokeTime() int64 {
if x != nil {
return x.RevokeTime
}
return 0
}
func (x *MessageRevokedContent) GetSourceMessageSendTime() int64 {
if x != nil {
return x.SourceMessageSendTime
}
return 0
}
func (x *MessageRevokedContent) GetSourceMessageSendID() string {
if x != nil {
return x.SourceMessageSendID
}
return ""
}
func (x *MessageRevokedContent) GetSourceMessageSenderNickname() string {
if x != nil {
return x.SourceMessageSenderNickname
}
return ""
}
func (x *MessageRevokedContent) GetSessionType() int32 {
if x != nil {
return x.SessionType
}
return 0
}
func (x *MessageRevokedContent) GetSeq() int64 {
if x != nil {
return x.Seq
}
return 0
}
func (x *MessageRevokedContent) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type ClearConversationTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
ConversationIDs []string `protobuf:"bytes,2,rep,name=conversationIDs,proto3" json:"conversationIDs"`
}
func (x *ClearConversationTips) Reset() {
*x = ClearConversationTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[57]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ClearConversationTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ClearConversationTips) ProtoMessage() {}
func (x *ClearConversationTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[57]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ClearConversationTips.ProtoReflect.Descriptor instead.
func (*ClearConversationTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{57}
}
func (x *ClearConversationTips) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *ClearConversationTips) GetConversationIDs() []string {
if x != nil {
return x.ConversationIDs
}
return nil
}
type DeleteMsgsTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID"`
Seqs []int64 `protobuf:"varint,3,rep,packed,name=seqs,proto3" json:"seqs"`
}
func (x *DeleteMsgsTips) Reset() {
*x = DeleteMsgsTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *DeleteMsgsTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*DeleteMsgsTips) ProtoMessage() {}
func (x *DeleteMsgsTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[58]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use DeleteMsgsTips.ProtoReflect.Descriptor instead.
func (*DeleteMsgsTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{58}
}
func (x *DeleteMsgsTips) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *DeleteMsgsTips) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *DeleteMsgsTips) GetSeqs() []int64 {
if x != nil {
return x.Seqs
}
return nil
}
type MarkAsReadTips struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
MarkAsReadUserID string `protobuf:"bytes,1,opt,name=markAsReadUserID,proto3" json:"markAsReadUserID"`
ConversationID string `protobuf:"bytes,2,opt,name=conversationID,proto3" json:"conversationID"`
Seqs []int64 `protobuf:"varint,3,rep,packed,name=seqs,proto3" json:"seqs"`
HasReadSeq int64 `protobuf:"varint,4,opt,name=hasReadSeq,proto3" json:"hasReadSeq"`
}
func (x *MarkAsReadTips) Reset() {
*x = MarkAsReadTips{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[59]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *MarkAsReadTips) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*MarkAsReadTips) ProtoMessage() {}
func (x *MarkAsReadTips) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[59]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use MarkAsReadTips.ProtoReflect.Descriptor instead.
func (*MarkAsReadTips) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{59}
}
func (x *MarkAsReadTips) GetMarkAsReadUserID() string {
if x != nil {
return x.MarkAsReadUserID
}
return ""
}
func (x *MarkAsReadTips) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *MarkAsReadTips) GetSeqs() []int64 {
if x != nil {
return x.Seqs
}
return nil
}
func (x *MarkAsReadTips) GetHasReadSeq() int64 {
if x != nil {
return x.HasReadSeq
}
return 0
}
type SetAppBackgroundStatusReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID"`
IsBackground bool `protobuf:"varint,2,opt,name=isBackground,proto3" json:"isBackground"`
}
func (x *SetAppBackgroundStatusReq) Reset() {
*x = SetAppBackgroundStatusReq{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[60]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetAppBackgroundStatusReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetAppBackgroundStatusReq) ProtoMessage() {}
func (x *SetAppBackgroundStatusReq) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[60]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SetAppBackgroundStatusReq.ProtoReflect.Descriptor instead.
func (*SetAppBackgroundStatusReq) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{60}
}
func (x *SetAppBackgroundStatusReq) GetUserID() string {
if x != nil {
return x.UserID
}
return ""
}
func (x *SetAppBackgroundStatusReq) GetIsBackground() bool {
if x != nil {
return x.IsBackground
}
return false
}
type SetAppBackgroundStatusResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *SetAppBackgroundStatusResp) Reset() {
*x = SetAppBackgroundStatusResp{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[61]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SetAppBackgroundStatusResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SetAppBackgroundStatusResp) ProtoMessage() {}
func (x *SetAppBackgroundStatusResp) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[61]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use SetAppBackgroundStatusResp.ProtoReflect.Descriptor instead.
func (*SetAppBackgroundStatusResp) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{61}
}
type ExtendMsgSet struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID"`
SessionType int32 `protobuf:"varint,2,opt,name=sessionType,proto3" json:"sessionType"`
ExtendMsgs map[string]*ExtendMsg `protobuf:"bytes,3,rep,name=extendMsgs,proto3" json:"extendMsgs" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
MaxMsgUpdateTime int64 `protobuf:"varint,4,opt,name=MaxMsgUpdateTime,proto3" json:"MaxMsgUpdateTime"`
ExtendMsgNum int32 `protobuf:"varint,5,opt,name=extendMsgNum,proto3" json:"extendMsgNum"`
CreateTime int64 `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime"`
}
func (x *ExtendMsgSet) Reset() {
*x = ExtendMsgSet{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[62]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExtendMsgSet) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExtendMsgSet) ProtoMessage() {}
func (x *ExtendMsgSet) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[62]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExtendMsgSet.ProtoReflect.Descriptor instead.
func (*ExtendMsgSet) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{62}
}
func (x *ExtendMsgSet) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *ExtendMsgSet) GetSessionType() int32 {
if x != nil {
return x.SessionType
}
return 0
}
func (x *ExtendMsgSet) GetExtendMsgs() map[string]*ExtendMsg {
if x != nil {
return x.ExtendMsgs
}
return nil
}
func (x *ExtendMsgSet) GetMaxMsgUpdateTime() int64 {
if x != nil {
return x.MaxMsgUpdateTime
}
return 0
}
func (x *ExtendMsgSet) GetExtendMsgNum() int32 {
if x != nil {
return x.ExtendMsgNum
}
return 0
}
func (x *ExtendMsgSet) GetCreateTime() int64 {
if x != nil {
return x.CreateTime
}
return 0
}
type ExtendMsg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ReactionExtensionList map[string]*KeyValue `protobuf:"bytes,1,rep,name=reactionExtensionList,proto3" json:"reactionExtensionList" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID"`
MsgFirstModifyTime int64 `protobuf:"varint,3,opt,name=msgFirstModifyTime,proto3" json:"msgFirstModifyTime"`
AttachedInfo string `protobuf:"bytes,4,opt,name=attachedInfo,proto3" json:"attachedInfo"`
Ex string `protobuf:"bytes,5,opt,name=ex,proto3" json:"ex"`
}
func (x *ExtendMsg) Reset() {
*x = ExtendMsg{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[63]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExtendMsg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExtendMsg) ProtoMessage() {}
func (x *ExtendMsg) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[63]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ExtendMsg.ProtoReflect.Descriptor instead.
func (*ExtendMsg) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{63}
}
func (x *ExtendMsg) GetReactionExtensionList() map[string]*KeyValue {
if x != nil {
return x.ReactionExtensionList
}
return nil
}
func (x *ExtendMsg) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *ExtendMsg) GetMsgFirstModifyTime() int64 {
if x != nil {
return x.MsgFirstModifyTime
}
return 0
}
func (x *ExtendMsg) GetAttachedInfo() string {
if x != nil {
return x.AttachedInfo
}
return ""
}
func (x *ExtendMsg) GetEx() string {
if x != nil {
return x.Ex
}
return ""
}
type KeyValue struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
TypeKey string `protobuf:"bytes,1,opt,name=typeKey,proto3" json:"typeKey"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value"`
LatestUpdateTime int64 `protobuf:"varint,3,opt,name=latestUpdateTime,proto3" json:"latestUpdateTime"`
}
func (x *KeyValue) Reset() {
*x = KeyValue{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[64]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *KeyValue) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*KeyValue) ProtoMessage() {}
func (x *KeyValue) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[64]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use KeyValue.ProtoReflect.Descriptor instead.
func (*KeyValue) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{64}
}
func (x *KeyValue) GetTypeKey() string {
if x != nil {
return x.TypeKey
}
return ""
}
func (x *KeyValue) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
func (x *KeyValue) GetLatestUpdateTime() int64 {
if x != nil {
return x.LatestUpdateTime
}
return 0
}
type ReactionMessageModifierNotification struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID"`
OpUserID string `protobuf:"bytes,2,opt,name=opUserID,proto3" json:"opUserID"`
SessionType int32 `protobuf:"varint,3,opt,name=sessionType,proto3" json:"sessionType"`
SuccessReactionExtensions map[string]*KeyValue `protobuf:"bytes,4,rep,name=successReactionExtensions,proto3" json:"successReactionExtensions" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
ClientMsgID string `protobuf:"bytes,5,opt,name=clientMsgID,proto3" json:"clientMsgID"`
IsReact bool `protobuf:"varint,6,opt,name=isReact,proto3" json:"isReact"`
IsExternalExtensions bool `protobuf:"varint,7,opt,name=isExternalExtensions,proto3" json:"isExternalExtensions"`
MsgFirstModifyTime int64 `protobuf:"varint,8,opt,name=msgFirstModifyTime,proto3" json:"msgFirstModifyTime"`
}
func (x *ReactionMessageModifierNotification) Reset() {
*x = ReactionMessageModifierNotification{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[65]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReactionMessageModifierNotification) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReactionMessageModifierNotification) ProtoMessage() {}
func (x *ReactionMessageModifierNotification) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[65]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReactionMessageModifierNotification.ProtoReflect.Descriptor instead.
func (*ReactionMessageModifierNotification) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{65}
}
func (x *ReactionMessageModifierNotification) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *ReactionMessageModifierNotification) GetOpUserID() string {
if x != nil {
return x.OpUserID
}
return ""
}
func (x *ReactionMessageModifierNotification) GetSessionType() int32 {
if x != nil {
return x.SessionType
}
return 0
}
func (x *ReactionMessageModifierNotification) GetSuccessReactionExtensions() map[string]*KeyValue {
if x != nil {
return x.SuccessReactionExtensions
}
return nil
}
func (x *ReactionMessageModifierNotification) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *ReactionMessageModifierNotification) GetIsReact() bool {
if x != nil {
return x.IsReact
}
return false
}
func (x *ReactionMessageModifierNotification) GetIsExternalExtensions() bool {
if x != nil {
return x.IsExternalExtensions
}
return false
}
func (x *ReactionMessageModifierNotification) GetMsgFirstModifyTime() int64 {
if x != nil {
return x.MsgFirstModifyTime
}
return 0
}
type ReactionMessageDeleteNotification struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID"`
OpUserID string `protobuf:"bytes,2,opt,name=opUserID,proto3" json:"opUserID"`
SessionType int32 `protobuf:"varint,3,opt,name=sessionType,proto3" json:"sessionType"`
SuccessReactionExtensions map[string]*KeyValue `protobuf:"bytes,4,rep,name=successReactionExtensions,proto3" json:"successReactionExtensions" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
ClientMsgID string `protobuf:"bytes,5,opt,name=clientMsgID,proto3" json:"clientMsgID"`
MsgFirstModifyTime int64 `protobuf:"varint,6,opt,name=msgFirstModifyTime,proto3" json:"msgFirstModifyTime"`
}
func (x *ReactionMessageDeleteNotification) Reset() {
*x = ReactionMessageDeleteNotification{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[66]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ReactionMessageDeleteNotification) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ReactionMessageDeleteNotification) ProtoMessage() {}
func (x *ReactionMessageDeleteNotification) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[66]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ReactionMessageDeleteNotification.ProtoReflect.Descriptor instead.
func (*ReactionMessageDeleteNotification) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{66}
}
func (x *ReactionMessageDeleteNotification) GetConversationID() string {
if x != nil {
return x.ConversationID
}
return ""
}
func (x *ReactionMessageDeleteNotification) GetOpUserID() string {
if x != nil {
return x.OpUserID
}
return ""
}
func (x *ReactionMessageDeleteNotification) GetSessionType() int32 {
if x != nil {
return x.SessionType
}
return 0
}
func (x *ReactionMessageDeleteNotification) GetSuccessReactionExtensions() map[string]*KeyValue {
if x != nil {
return x.SuccessReactionExtensions
}
return nil
}
func (x *ReactionMessageDeleteNotification) GetClientMsgID() string {
if x != nil {
return x.ClientMsgID
}
return ""
}
func (x *ReactionMessageDeleteNotification) GetMsgFirstModifyTime() int64 {
if x != nil {
return x.MsgFirstModifyTime
}
return 0
}
type RequestPagination struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber"`
ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber"`
}
func (x *RequestPagination) Reset() {
*x = RequestPagination{}
if protoimpl.UnsafeEnabled {
mi := &file_sdkws_sdkws_proto_msgTypes[67]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *RequestPagination) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*RequestPagination) ProtoMessage() {}
func (x *RequestPagination) ProtoReflect() protoreflect.Message {
mi := &file_sdkws_sdkws_proto_msgTypes[67]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use RequestPagination.ProtoReflect.Descriptor instead.
func (*RequestPagination) Descriptor() ([]byte, []int) {
return file_sdkws_sdkws_proto_rawDescGZIP(), []int{67}
}
func (x *RequestPagination) GetPageNumber() int32 {
if x != nil {
return x.PageNumber
}
return 0
}
func (x *RequestPagination) GetShowNumber() int32 {
if x != nil {
return x.ShowNumber
}
return 0
}
var File_sdkws_sdkws_proto protoreflect.FileDescriptor
var file_sdkws_sdkws_proto_rawDesc = []byte{
0x0a, 0x11, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2f, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x12, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x1a, 0x1b, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
0x73, 0x70, 0x62, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x70, 0x62, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdf, 0x04, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e,
0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f,
0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22,
0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69,
0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b,
0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e,
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01,
0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20,
0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78,
0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05,
0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61,
0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c,
0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28,
0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10,
0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69,
0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x61, 0x70, 0x70,
0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x36,
0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70,
0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16,
0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61,
0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01,
0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0xa6, 0x03, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x6e, 0x66, 0x6f, 0x46, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61,
0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64,
0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e,
0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61,
0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63,
0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x65, 0x78, 0x12, 0x4d, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69,
0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75,
0x65, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e,
0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4f,
0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x61, 0x70,
0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22,
0xff, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46,
0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c,
0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f,
0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54,
0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70,
0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65,
0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18,
0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65,
0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61,
0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18,
0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x75, 0x74,
0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b,
0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69,
0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49,
0x44, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49,
0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55,
0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52,
0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65,
0x78, 0x22, 0xdc, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16,
0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61,
0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, 0x02,
0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a,
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e,
0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c,
0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65,
0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10,
0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74,
0x22, 0xfa, 0x01, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12,
0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49,
0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0a, 0x66, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, 0x69,
0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f,
0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a,
0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xed, 0x01,
0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f,
0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a,
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a,
0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55,
0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53,
0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f,
0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a,
0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x99, 0x03,
0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e,
0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x22, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b,
0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c,
0x65, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64,
0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65,
0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73,
0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69,
0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9f, 0x03, 0x0a, 0x0d, 0x46, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66,
0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66,
0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52,
0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20,
0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a,
0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a,
0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x22, 0x0a, 0x0c, 0x68,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c,
0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a,
0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x68,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65,
0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x9f, 0x01, 0x0a, 0x14,
0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71,
0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x09,
0x73, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73,
0x64, 0x6b, 0x77, 0x73, 0x2e, 0x53, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x09, 0x73,
0x65, 0x71, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65,
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x6c,
0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x6c, 0x0a,
0x08, 0x53, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e,
0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x44, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03,
0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x75, 0x6d,
0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6e, 0x75, 0x6d, 0x22, 0x51, 0x0a, 0x08, 0x50,
0x75, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x4d, 0x73, 0x67, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61,
0x74, 0x61, 0x52, 0x04, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x45, 0x6e,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x45, 0x6e, 0x64, 0x22, 0x87,
0x03, 0x0a, 0x15, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79,
0x53, 0x65, 0x71, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x47, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73,
0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c,
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x73, 0x52, 0x65, 0x73,
0x70, 0x2e, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d, 0x73, 0x67,
0x73, 0x12, 0x6b, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x4d, 0x73, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65,
0x71, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6e, 0x6f,
0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x73, 0x1a, 0x55,
0x0a, 0x09, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77,
0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61, 0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73,
0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x26, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4d,
0x61, 0x78, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72,
0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44,
0x22, 0x9b, 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x52, 0x65,
0x73, 0x70, 0x12, 0x48, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x73, 0x18, 0x01, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53,
0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x73, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x73, 0x12, 0x48, 0x0a, 0x07,
0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70,
0x2e, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6d,
0x69, 0x6e, 0x53, 0x65, 0x71, 0x73, 0x1a, 0x3a, 0x0a, 0x0c, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x73, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x71,
0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73,
0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73,
0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67,
0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
0x65, 0x22, 0xae, 0x06, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a,
0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73,
0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a,
0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e,
0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c,
0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72,
0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x73,
0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18,
0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65,
0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c,
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61,
0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72,
0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f,
0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54,
0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c,
0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a,
0x03, 0x73, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12,
0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61,
0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x12, 0x20,
0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x65, 0x61, 0x64, 0x12, 0x42, 0x0a, 0x07, 0x6f,
0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77,
0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
0x4d, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x4f, 0x66,
0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f,
0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22,
0x0a, 0x0c, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15,
0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69,
0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e,
0x66, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x17, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
0x38, 0x01, 0x22, 0xec, 0x02, 0x0a, 0x0c, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x2a, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x6d,
0x73, 0x67, 0x73, 0x12, 0x62, 0x0a, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e,
0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x73, 0x1a, 0x55, 0x0a, 0x09, 0x4d, 0x73, 0x67, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d,
0x73, 0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x61,
0x0a, 0x15, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73,
0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x50, 0x75,
0x6c, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73,
0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64,
0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12,
0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12,
0x22, 0x0a, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f,
0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42,
0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67,
0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x64, 0x0a, 0x08, 0x54, 0x69, 0x70,
0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a,
0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12,
0x1e, 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22,
0xc8, 0x02, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64,
0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55,
0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0a, 0x6d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64,
0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46,
0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c,
0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12,
0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73,
0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72,
0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x05,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x22, 0x8c, 0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53,
0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70,
0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49,
0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x67,
0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x22, 0x94, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65,
0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x70,
0x73, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73,
0x65, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xa9, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x69, 0x6e,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x40, 0x0a, 0x09, 0x61, 0x70, 0x70,
0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77,
0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72,
0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71,
0x4d, 0x73, 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, 0x75,
0x69, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x43, 0x0a, 0x08, 0x71,
0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75,
0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72,
0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x70,
0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06,
0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77,
0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c,
0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a,
0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x72,
0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x1c,
0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73,
0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18,
0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67,
0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x73, 0x18, 0x05,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x41, 0x73,
0x22, 0x86, 0x02, 0x0a, 0x19, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54,
0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33,
0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70,
0x55, 0x73, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77,
0x6e, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x10, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33,
0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70,
0x55, 0x73, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73,
0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77,
0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c,
0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65,
0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x11,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70,
0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74,
0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65,
0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74,
0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72,
0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e,
0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x49, 0x0a, 0x0b, 0x65, 0x6e, 0x74,
0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27,
0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64,
0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46,
0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74,
0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x44, 0x69, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x54, 0x69, 0x70,
0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d,
0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x9d, 0x02,
0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x75, 0x74,
0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f,
0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d,
0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69,
0x6d, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70,
0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09,
0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x74,
0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52,
0x0c, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xff, 0x01,
0x0a, 0x1a, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x61, 0x6e,
0x63, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05,
0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75,
0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62,
0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73,
0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65,
0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x22,
0xac, 0x01, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x54, 0x69,
0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65,
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d,
0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f,
0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52,
0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb2,
0x01, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x4d, 0x75,
0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53,
0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06,
0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77,
0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c,
0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a,
0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
0x69, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x16, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d,
0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x33,
0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72,
0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65,
0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70,
0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x63, 0x68,
0x61, 0x6e, 0x67, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x27, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73,
0x64, 0x6b, 0x77, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72,
0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
0x64, 0x55, 0x73, 0x65, 0x72, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41,
0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64,
0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x64,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72,
0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69,
0x6e, 0x67, 0x22, 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72,
0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72,
0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5d,
0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54,
0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52,
0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x83, 0x01,
0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12,
0x44, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65,
0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54,
0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55,
0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d,
0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65,
0x4d, 0x73, 0x67, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70,
0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65,
0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55,
0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66,
0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68,
0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xab, 0x01, 0x0a, 0x0f, 0x46, 0x72,
0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x36, 0x0a,
0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e,
0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b,
0x77, 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x66,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70,
0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x6f,
0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x22, 0x59, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e,
0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0c,
0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73,
0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72,
0x49, 0x44, 0x22, 0x56, 0x0a, 0x0e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64,
0x54, 0x69, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73,
0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e,
0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72,
0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x58, 0x0a, 0x10, 0x42, 0x6c,
0x61, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x44,
0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f,
0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73,
0x65, 0x72, 0x49, 0x44, 0x22, 0x5d, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e,
0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x44, 0x0a,
0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76,
0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55,
0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65,
0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
0x49, 0x44, 0x22, 0x60, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06,
0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73,
0x65, 0x72, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09,
0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44,
0x4c, 0x69, 0x73, 0x74, 0x22, 0x6a, 0x0a, 0x1a, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x69,
0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65,
0x6e, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64,
0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x18,
0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65,
0x22, 0xa3, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x48, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06,
0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73,
0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f,
0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a,
0x68, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x0f,
0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18,
0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x75,
0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65,
0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x22, 0x1a, 0x0a, 0x04, 0x73, 0x65, 0x71, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65,
0x71, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x73, 0x65, 0x71, 0x73, 0x22, 0x5b,
0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54,
0x69, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12,
0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x71, 0x73, 0x18,
0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x73, 0x65, 0x71, 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x0d,
0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x70, 0x73, 0x12, 0x24, 0x0a,
0x0d, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x55, 0x73, 0x65,
0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67,
0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x76, 0x6f, 0x6b,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x74, 0x69, 0x6f,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x65, 0x73,
0x73, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71,
0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x26, 0x0a, 0x0e, 0x63,
0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x44, 0x22, 0xb1, 0x03, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a,
0x09, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72,
0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x52, 0x0b, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x20, 0x0a,
0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12,
0x28, 0x0a, 0x0f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61,
0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65,
0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x76,
0x6f, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72,
0x65, 0x76, 0x6f, 0x6b, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x73, 0x6f, 0x75,
0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69,
0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x30, 0x0a, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6f,
0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x49,
0x44, 0x12, 0x40, 0x0a, 0x1b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x65,
0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79,
0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01,
0x28, 0x03, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0c, 0x20,
0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x59, 0x0a, 0x15, 0x43, 0x6c, 0x65, 0x61, 0x72,
0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73,
0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x76,
0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x44, 0x73, 0x22, 0x64, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x73,
0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e,
0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x71, 0x73, 0x18, 0x03, 0x20, 0x03,
0x28, 0x03, 0x52, 0x04, 0x73, 0x65, 0x71, 0x73, 0x22, 0x98, 0x01, 0x0a, 0x0e, 0x4d, 0x61, 0x72,
0x6b, 0x41, 0x73, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d,
0x61, 0x72, 0x6b, 0x41, 0x73, 0x52, 0x65, 0x61, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x72, 0x6b, 0x41, 0x73, 0x52, 0x65, 0x61,
0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65,
0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12,
0x12, 0x0a, 0x04, 0x73, 0x65, 0x71, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x73,
0x65, 0x71, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64, 0x53, 0x65,
0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x68, 0x61, 0x73, 0x52, 0x65, 0x61, 0x64,
0x53, 0x65, 0x71, 0x22, 0x57, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x61, 0x63,
0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71,
0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x42, 0x61,
0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c,
0x69, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x1c, 0x0a, 0x1a,
0x53, 0x65, 0x74, 0x41, 0x70, 0x70, 0x42, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64,
0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xf8, 0x02, 0x0a, 0x0c, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63,
0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79,
0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4d,
0x73, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x4f, 0x70, 0x65, 0x6e,
0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x65,
0x6e, 0x64, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x78, 0x74,
0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x4d, 0x61, 0x78, 0x4d, 0x73,
0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
0x03, 0x52, 0x10, 0x4d, 0x61, 0x78, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67,
0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x6e,
0x64, 0x4d, 0x73, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65,
0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x5c, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x64, 0x4d, 0x73, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
0x4d, 0x73, 0x67, 0x12, 0x6e, 0x0a, 0x15, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45,
0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x38, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65,
0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x4d, 0x73,
0x67, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x72, 0x65,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c,
0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67,
0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x73, 0x67, 0x46, 0x69, 0x72, 0x73,
0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x03, 0x52, 0x12, 0x6d, 0x73, 0x67, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66,
0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65,
0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x74, 0x74,
0x61, 0x63, 0x68, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18,
0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x1a, 0x66, 0x0a, 0x1a, 0x52, 0x65, 0x61,
0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49,
0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x4b, 0x65,
0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x22, 0x66, 0x0a, 0x08, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a,
0x07, 0x74, 0x79, 0x70, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
0x74, 0x79, 0x70, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a,
0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x55,
0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xae, 0x04, 0x0a, 0x23, 0x52, 0x65,
0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x6f, 0x64,
0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65,
0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55,
0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55,
0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73,
0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x19, 0x73, 0x75, 0x63, 0x63,
0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e,
0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x4f, 0x70,
0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73,
0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e,
0x74, 0x72, 0x79, 0x52, 0x19, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63,
0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20,
0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44,
0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x14, 0x69, 0x73,
0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65,
0x72, 0x6e, 0x61, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e,
0x0a, 0x12, 0x6d, 0x73, 0x67, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79,
0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x73, 0x67, 0x46,
0x69, 0x72, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x6a,
0x0a, 0x1e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x03, 0x0a, 0x21, 0x52,
0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x65,
0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72,
0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x55, 0x73,
0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x55, 0x73,
0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54,
0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69,
0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x19, 0x73, 0x75, 0x63, 0x63, 0x65,
0x73, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x4f, 0x70, 0x65,
0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e,
0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44,
0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x2e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x19, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f,
0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x2e, 0x0a,
0x12, 0x6d, 0x73, 0x67, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54,
0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x6d, 0x73, 0x67, 0x46, 0x69,
0x72, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x6a, 0x0a,
0x1e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
0x79, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1c, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e,
0x73, 0x64, 0x6b, 0x77, 0x73, 0x2e, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e,
0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e,
0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2a, 0x30,
0x0a, 0x09, 0x50, 0x75, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x0c, 0x50,
0x75, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x41, 0x73, 0x63, 0x10, 0x00, 0x12, 0x11, 0x0a,
0x0d, 0x50, 0x75, 0x6c, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x10, 0x01,
0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f,
0x70, 0x65, 0x6e, 0x49, 0x4d, 0x53, 0x44, 0x4b, 0x2f, 0x4f, 0x70, 0x65, 0x6e, 0x2d, 0x49, 0x4d,
0x2d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x77, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_sdkws_sdkws_proto_rawDescOnce sync.Once
file_sdkws_sdkws_proto_rawDescData = file_sdkws_sdkws_proto_rawDesc
)
func file_sdkws_sdkws_proto_rawDescGZIP() []byte {
file_sdkws_sdkws_proto_rawDescOnce.Do(func() {
file_sdkws_sdkws_proto_rawDescData = protoimpl.X.CompressGZIP(file_sdkws_sdkws_proto_rawDescData)
})
return file_sdkws_sdkws_proto_rawDescData
}
var file_sdkws_sdkws_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_sdkws_sdkws_proto_msgTypes = make([]protoimpl.MessageInfo, 79)
var file_sdkws_sdkws_proto_goTypes = []interface{}{
(PullOrder)(0), // 0: OpenIMServer.sdkws.PullOrder
(*GroupInfo)(nil), // 1: OpenIMServer.sdkws.GroupInfo
(*GroupInfoForSet)(nil), // 2: OpenIMServer.sdkws.GroupInfoForSet
(*GroupMemberFullInfo)(nil), // 3: OpenIMServer.sdkws.GroupMemberFullInfo
(*PublicUserInfo)(nil), // 4: OpenIMServer.sdkws.PublicUserInfo
(*UserInfo)(nil), // 5: OpenIMServer.sdkws.UserInfo
(*FriendInfo)(nil), // 6: OpenIMServer.sdkws.FriendInfo
(*BlackInfo)(nil), // 7: OpenIMServer.sdkws.BlackInfo
(*GroupRequest)(nil), // 8: OpenIMServer.sdkws.GroupRequest
(*FriendRequest)(nil), // 9: OpenIMServer.sdkws.FriendRequest
(*PullMessageBySeqsReq)(nil), // 10: OpenIMServer.sdkws.PullMessageBySeqsReq
(*SeqRange)(nil), // 11: OpenIMServer.sdkws.SeqRange
(*PullMsgs)(nil), // 12: OpenIMServer.sdkws.PullMsgs
(*PullMessageBySeqsResp)(nil), // 13: OpenIMServer.sdkws.PullMessageBySeqsResp
(*GetMaxSeqReq)(nil), // 14: OpenIMServer.sdkws.GetMaxSeqReq
(*GetMaxSeqResp)(nil), // 15: OpenIMServer.sdkws.GetMaxSeqResp
(*UserSendMsgResp)(nil), // 16: OpenIMServer.sdkws.UserSendMsgResp
(*MsgData)(nil), // 17: OpenIMServer.sdkws.MsgData
(*PushMessages)(nil), // 18: OpenIMServer.sdkws.PushMessages
(*OfflinePushInfo)(nil), // 19: OpenIMServer.sdkws.OfflinePushInfo
(*TipsComm)(nil), // 20: OpenIMServer.sdkws.TipsComm
(*GroupCreatedTips)(nil), // 21: OpenIMServer.sdkws.GroupCreatedTips
(*GroupInfoSetTips)(nil), // 22: OpenIMServer.sdkws.GroupInfoSetTips
(*GroupInfoSetNameTips)(nil), // 23: OpenIMServer.sdkws.GroupInfoSetNameTips
(*GroupInfoSetAnnouncementTips)(nil), // 24: OpenIMServer.sdkws.GroupInfoSetAnnouncementTips
(*JoinGroupApplicationTips)(nil), // 25: OpenIMServer.sdkws.JoinGroupApplicationTips
(*MemberQuitTips)(nil), // 26: OpenIMServer.sdkws.MemberQuitTips
(*GroupApplicationAcceptedTips)(nil), // 27: OpenIMServer.sdkws.GroupApplicationAcceptedTips
(*GroupApplicationRejectedTips)(nil), // 28: OpenIMServer.sdkws.GroupApplicationRejectedTips
(*GroupOwnerTransferredTips)(nil), // 29: OpenIMServer.sdkws.GroupOwnerTransferredTips
(*MemberKickedTips)(nil), // 30: OpenIMServer.sdkws.MemberKickedTips
(*MemberInvitedTips)(nil), // 31: OpenIMServer.sdkws.MemberInvitedTips
(*MemberEnterTips)(nil), // 32: OpenIMServer.sdkws.MemberEnterTips
(*GroupDismissedTips)(nil), // 33: OpenIMServer.sdkws.GroupDismissedTips
(*GroupMemberMutedTips)(nil), // 34: OpenIMServer.sdkws.GroupMemberMutedTips
(*GroupMemberCancelMutedTips)(nil), // 35: OpenIMServer.sdkws.GroupMemberCancelMutedTips
(*GroupMutedTips)(nil), // 36: OpenIMServer.sdkws.GroupMutedTips
(*GroupCancelMutedTips)(nil), // 37: OpenIMServer.sdkws.GroupCancelMutedTips
(*GroupMemberInfoSetTips)(nil), // 38: OpenIMServer.sdkws.GroupMemberInfoSetTips
(*FriendApplication)(nil), // 39: OpenIMServer.sdkws.FriendApplication
(*FromToUserID)(nil), // 40: OpenIMServer.sdkws.FromToUserID
(*FriendApplicationTips)(nil), // 41: OpenIMServer.sdkws.FriendApplicationTips
(*FriendApplicationApprovedTips)(nil), // 42: OpenIMServer.sdkws.FriendApplicationApprovedTips
(*FriendApplicationRejectedTips)(nil), // 43: OpenIMServer.sdkws.FriendApplicationRejectedTips
(*FriendAddedTips)(nil), // 44: OpenIMServer.sdkws.FriendAddedTips
(*FriendDeletedTips)(nil), // 45: OpenIMServer.sdkws.FriendDeletedTips
(*BlackAddedTips)(nil), // 46: OpenIMServer.sdkws.BlackAddedTips
(*BlackDeletedTips)(nil), // 47: OpenIMServer.sdkws.BlackDeletedTips
(*FriendInfoChangedTips)(nil), // 48: OpenIMServer.sdkws.FriendInfoChangedTips
(*UserInfoUpdatedTips)(nil), // 49: OpenIMServer.sdkws.UserInfoUpdatedTips
(*ConversationUpdateTips)(nil), // 50: OpenIMServer.sdkws.ConversationUpdateTips
(*ConversationSetPrivateTips)(nil), // 51: OpenIMServer.sdkws.ConversationSetPrivateTips
(*ConversationHasReadTips)(nil), // 52: OpenIMServer.sdkws.ConversationHasReadTips
(*NotificationElem)(nil), // 53: OpenIMServer.sdkws.NotificationElem
(*Seqs)(nil), // 54: OpenIMServer.sdkws.seqs
(*DeleteMessageTips)(nil), // 55: OpenIMServer.sdkws.DeleteMessageTips
(*RevokeMsgTips)(nil), // 56: OpenIMServer.sdkws.RevokeMsgTips
(*MessageRevokedContent)(nil), // 57: OpenIMServer.sdkws.MessageRevokedContent
(*ClearConversationTips)(nil), // 58: OpenIMServer.sdkws.ClearConversationTips
(*DeleteMsgsTips)(nil), // 59: OpenIMServer.sdkws.DeleteMsgsTips
(*MarkAsReadTips)(nil), // 60: OpenIMServer.sdkws.MarkAsReadTips
(*SetAppBackgroundStatusReq)(nil), // 61: OpenIMServer.sdkws.SetAppBackgroundStatusReq
(*SetAppBackgroundStatusResp)(nil), // 62: OpenIMServer.sdkws.SetAppBackgroundStatusResp
(*ExtendMsgSet)(nil), // 63: OpenIMServer.sdkws.ExtendMsgSet
(*ExtendMsg)(nil), // 64: OpenIMServer.sdkws.ExtendMsg
(*KeyValue)(nil), // 65: OpenIMServer.sdkws.KeyValue
(*ReactionMessageModifierNotification)(nil), // 66: OpenIMServer.sdkws.ReactionMessageModifierNotification
(*ReactionMessageDeleteNotification)(nil), // 67: OpenIMServer.sdkws.ReactionMessageDeleteNotification
(*RequestPagination)(nil), // 68: OpenIMServer.sdkws.RequestPagination
nil, // 69: OpenIMServer.sdkws.PullMessageBySeqsResp.MsgsEntry
nil, // 70: OpenIMServer.sdkws.PullMessageBySeqsResp.NotificationMsgsEntry
nil, // 71: OpenIMServer.sdkws.GetMaxSeqResp.MaxSeqsEntry
nil, // 72: OpenIMServer.sdkws.GetMaxSeqResp.MinSeqsEntry
nil, // 73: OpenIMServer.sdkws.MsgData.OptionsEntry
nil, // 74: OpenIMServer.sdkws.PushMessages.MsgsEntry
nil, // 75: OpenIMServer.sdkws.PushMessages.NotificationMsgsEntry
nil, // 76: OpenIMServer.sdkws.ExtendMsgSet.ExtendMsgsEntry
nil, // 77: OpenIMServer.sdkws.ExtendMsg.ReactionExtensionListEntry
nil, // 78: OpenIMServer.sdkws.ReactionMessageModifierNotification.SuccessReactionExtensionsEntry
nil, // 79: OpenIMServer.sdkws.ReactionMessageDeleteNotification.SuccessReactionExtensionsEntry
(*wrapperspb.Int32Value)(nil), // 80: OpenIMServer.protobuf.Int32Value
}
var file_sdkws_sdkws_proto_depIdxs = []int32{
80, // 0: OpenIMServer.sdkws.GroupInfoForSet.needVerification:type_name -> OpenIMServer.protobuf.Int32Value
80, // 1: OpenIMServer.sdkws.GroupInfoForSet.lookMemberInfo:type_name -> OpenIMServer.protobuf.Int32Value
80, // 2: OpenIMServer.sdkws.GroupInfoForSet.applyMemberFriend:type_name -> OpenIMServer.protobuf.Int32Value
5, // 3: OpenIMServer.sdkws.FriendInfo.friendUser:type_name -> OpenIMServer.sdkws.UserInfo
4, // 4: OpenIMServer.sdkws.BlackInfo.blackUserInfo:type_name -> OpenIMServer.sdkws.PublicUserInfo
4, // 5: OpenIMServer.sdkws.GroupRequest.userInfo:type_name -> OpenIMServer.sdkws.PublicUserInfo
1, // 6: OpenIMServer.sdkws.GroupRequest.groupInfo:type_name -> OpenIMServer.sdkws.GroupInfo
11, // 7: OpenIMServer.sdkws.PullMessageBySeqsReq.seqRanges:type_name -> OpenIMServer.sdkws.SeqRange
0, // 8: OpenIMServer.sdkws.PullMessageBySeqsReq.order:type_name -> OpenIMServer.sdkws.PullOrder
17, // 9: OpenIMServer.sdkws.PullMsgs.Msgs:type_name -> OpenIMServer.sdkws.MsgData
69, // 10: OpenIMServer.sdkws.PullMessageBySeqsResp.msgs:type_name -> OpenIMServer.sdkws.PullMessageBySeqsResp.MsgsEntry
70, // 11: OpenIMServer.sdkws.PullMessageBySeqsResp.notificationMsgs:type_name -> OpenIMServer.sdkws.PullMessageBySeqsResp.NotificationMsgsEntry
71, // 12: OpenIMServer.sdkws.GetMaxSeqResp.maxSeqs:type_name -> OpenIMServer.sdkws.GetMaxSeqResp.MaxSeqsEntry
72, // 13: OpenIMServer.sdkws.GetMaxSeqResp.minSeqs:type_name -> OpenIMServer.sdkws.GetMaxSeqResp.MinSeqsEntry
73, // 14: OpenIMServer.sdkws.MsgData.options:type_name -> OpenIMServer.sdkws.MsgData.OptionsEntry
19, // 15: OpenIMServer.sdkws.MsgData.offlinePushInfo:type_name -> OpenIMServer.sdkws.OfflinePushInfo
74, // 16: OpenIMServer.sdkws.PushMessages.msgs:type_name -> OpenIMServer.sdkws.PushMessages.MsgsEntry
75, // 17: OpenIMServer.sdkws.PushMessages.notificationMsgs:type_name -> OpenIMServer.sdkws.PushMessages.NotificationMsgsEntry
1, // 18: OpenIMServer.sdkws.GroupCreatedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 19: OpenIMServer.sdkws.GroupCreatedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 20: OpenIMServer.sdkws.GroupCreatedTips.memberList:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 21: OpenIMServer.sdkws.GroupCreatedTips.groupOwnerUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 22: OpenIMServer.sdkws.GroupInfoSetTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 23: OpenIMServer.sdkws.GroupInfoSetTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 24: OpenIMServer.sdkws.GroupInfoSetNameTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 25: OpenIMServer.sdkws.GroupInfoSetNameTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 26: OpenIMServer.sdkws.GroupInfoSetAnnouncementTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 27: OpenIMServer.sdkws.GroupInfoSetAnnouncementTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
1, // 28: OpenIMServer.sdkws.JoinGroupApplicationTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
4, // 29: OpenIMServer.sdkws.JoinGroupApplicationTips.applicant:type_name -> OpenIMServer.sdkws.PublicUserInfo
1, // 30: OpenIMServer.sdkws.MemberQuitTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 31: OpenIMServer.sdkws.MemberQuitTips.quitUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 32: OpenIMServer.sdkws.GroupApplicationAcceptedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 33: OpenIMServer.sdkws.GroupApplicationAcceptedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 34: OpenIMServer.sdkws.GroupApplicationRejectedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 35: OpenIMServer.sdkws.GroupApplicationRejectedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 36: OpenIMServer.sdkws.GroupOwnerTransferredTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 37: OpenIMServer.sdkws.GroupOwnerTransferredTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 38: OpenIMServer.sdkws.GroupOwnerTransferredTips.newGroupOwner:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 39: OpenIMServer.sdkws.MemberKickedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 40: OpenIMServer.sdkws.MemberKickedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 41: OpenIMServer.sdkws.MemberKickedTips.kickedUserList:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 42: OpenIMServer.sdkws.MemberInvitedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 43: OpenIMServer.sdkws.MemberInvitedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 44: OpenIMServer.sdkws.MemberInvitedTips.invitedUserList:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 45: OpenIMServer.sdkws.MemberEnterTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 46: OpenIMServer.sdkws.MemberEnterTips.entrantUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 47: OpenIMServer.sdkws.GroupDismissedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 48: OpenIMServer.sdkws.GroupDismissedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 49: OpenIMServer.sdkws.GroupMemberMutedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 50: OpenIMServer.sdkws.GroupMemberMutedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 51: OpenIMServer.sdkws.GroupMemberMutedTips.mutedUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 52: OpenIMServer.sdkws.GroupMemberCancelMutedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 53: OpenIMServer.sdkws.GroupMemberCancelMutedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 54: OpenIMServer.sdkws.GroupMemberCancelMutedTips.mutedUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 55: OpenIMServer.sdkws.GroupMutedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 56: OpenIMServer.sdkws.GroupMutedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 57: OpenIMServer.sdkws.GroupCancelMutedTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 58: OpenIMServer.sdkws.GroupCancelMutedTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
1, // 59: OpenIMServer.sdkws.GroupMemberInfoSetTips.group:type_name -> OpenIMServer.sdkws.GroupInfo
3, // 60: OpenIMServer.sdkws.GroupMemberInfoSetTips.opUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
3, // 61: OpenIMServer.sdkws.GroupMemberInfoSetTips.changedUser:type_name -> OpenIMServer.sdkws.GroupMemberFullInfo
40, // 62: OpenIMServer.sdkws.FriendApplicationTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
40, // 63: OpenIMServer.sdkws.FriendApplicationApprovedTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
40, // 64: OpenIMServer.sdkws.FriendApplicationRejectedTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
6, // 65: OpenIMServer.sdkws.FriendAddedTips.friend:type_name -> OpenIMServer.sdkws.FriendInfo
4, // 66: OpenIMServer.sdkws.FriendAddedTips.opUser:type_name -> OpenIMServer.sdkws.PublicUserInfo
40, // 67: OpenIMServer.sdkws.FriendDeletedTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
40, // 68: OpenIMServer.sdkws.BlackAddedTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
40, // 69: OpenIMServer.sdkws.BlackDeletedTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
40, // 70: OpenIMServer.sdkws.FriendInfoChangedTips.fromToUserID:type_name -> OpenIMServer.sdkws.FromToUserID
76, // 71: OpenIMServer.sdkws.ExtendMsgSet.extendMsgs:type_name -> OpenIMServer.sdkws.ExtendMsgSet.ExtendMsgsEntry
77, // 72: OpenIMServer.sdkws.ExtendMsg.reactionExtensionList:type_name -> OpenIMServer.sdkws.ExtendMsg.ReactionExtensionListEntry
78, // 73: OpenIMServer.sdkws.ReactionMessageModifierNotification.successReactionExtensions:type_name -> OpenIMServer.sdkws.ReactionMessageModifierNotification.SuccessReactionExtensionsEntry
79, // 74: OpenIMServer.sdkws.ReactionMessageDeleteNotification.successReactionExtensions:type_name -> OpenIMServer.sdkws.ReactionMessageDeleteNotification.SuccessReactionExtensionsEntry
12, // 75: OpenIMServer.sdkws.PullMessageBySeqsResp.MsgsEntry.value:type_name -> OpenIMServer.sdkws.PullMsgs
12, // 76: OpenIMServer.sdkws.PullMessageBySeqsResp.NotificationMsgsEntry.value:type_name -> OpenIMServer.sdkws.PullMsgs
12, // 77: OpenIMServer.sdkws.PushMessages.MsgsEntry.value:type_name -> OpenIMServer.sdkws.PullMsgs
12, // 78: OpenIMServer.sdkws.PushMessages.NotificationMsgsEntry.value:type_name -> OpenIMServer.sdkws.PullMsgs
64, // 79: OpenIMServer.sdkws.ExtendMsgSet.ExtendMsgsEntry.value:type_name -> OpenIMServer.sdkws.ExtendMsg
65, // 80: OpenIMServer.sdkws.ExtendMsg.ReactionExtensionListEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
65, // 81: OpenIMServer.sdkws.ReactionMessageModifierNotification.SuccessReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
65, // 82: OpenIMServer.sdkws.ReactionMessageDeleteNotification.SuccessReactionExtensionsEntry.value:type_name -> OpenIMServer.sdkws.KeyValue
83, // [83:83] is the sub-list for method output_type
83, // [83:83] is the sub-list for method input_type
83, // [83:83] is the sub-list for extension type_name
83, // [83:83] is the sub-list for extension extendee
0, // [0:83] is the sub-list for field type_name
}
func init() { file_sdkws_sdkws_proto_init() }
func file_sdkws_sdkws_proto_init() {
if File_sdkws_sdkws_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_sdkws_sdkws_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupInfoForSet); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupMemberFullInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PublicUserInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BlackInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PullMessageBySeqsReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SeqRange); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PullMsgs); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PullMessageBySeqsResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetMaxSeqReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetMaxSeqResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserSendMsgResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MsgData); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PushMessages); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*OfflinePushInfo); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TipsComm); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupCreatedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupInfoSetTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupInfoSetNameTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupInfoSetAnnouncementTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JoinGroupApplicationTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemberQuitTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupApplicationAcceptedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupApplicationRejectedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupOwnerTransferredTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemberKickedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemberInvitedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MemberEnterTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupDismissedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupMemberMutedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupMemberCancelMutedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupMutedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupCancelMutedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GroupMemberInfoSetTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendApplication); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FromToUserID); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendApplicationTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendApplicationApprovedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendApplicationRejectedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendAddedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendDeletedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BlackAddedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BlackDeletedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendInfoChangedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*UserInfoUpdatedTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConversationUpdateTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConversationSetPrivateTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ConversationHasReadTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*NotificationElem); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Seqs); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteMessageTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RevokeMsgTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MessageRevokedContent); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ClearConversationTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*DeleteMsgsTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*MarkAsReadTips); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetAppBackgroundStatusReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SetAppBackgroundStatusResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExtendMsgSet); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExtendMsg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*KeyValue); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReactionMessageModifierNotification); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ReactionMessageDeleteNotification); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_sdkws_sdkws_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RequestPagination); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_sdkws_sdkws_proto_rawDesc,
NumEnums: 1,
NumMessages: 79,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_sdkws_sdkws_proto_goTypes,
DependencyIndexes: file_sdkws_sdkws_proto_depIdxs,
EnumInfos: file_sdkws_sdkws_proto_enumTypes,
MessageInfos: file_sdkws_sdkws_proto_msgTypes,
}.Build()
File_sdkws_sdkws_proto = out.File
file_sdkws_sdkws_proto_rawDesc = nil
file_sdkws_sdkws_proto_goTypes = nil
file_sdkws_sdkws_proto_depIdxs = nil
}