// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.28.0
// 	protoc        v3.21.12
// source: conversation.proto

package pb

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

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)
)

//FriendApplyStatus 好友申请状态
type FriendApplyStatus int32

const (
	//Applying 申请中
	FriendApplyStatus_Applying FriendApplyStatus = 0
	//Accepted 已同意
	FriendApplyStatus_Accepted FriendApplyStatus = 1
	//Rejected 已拒绝
	FriendApplyStatus_Rejected FriendApplyStatus = 2
)

// Enum value maps for FriendApplyStatus.
var (
	FriendApplyStatus_name = map[int32]string{
		0: "Applying",
		1: "Accepted",
		2: "Rejected",
	}
	FriendApplyStatus_value = map[string]int32{
		"Applying": 0,
		"Accepted": 1,
		"Rejected": 2,
	}
)

func (x FriendApplyStatus) Enum() *FriendApplyStatus {
	p := new(FriendApplyStatus)
	*p = x
	return p
}

func (x FriendApplyStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (FriendApplyStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_conversation_proto_enumTypes[0].Descriptor()
}

func (FriendApplyStatus) Type() protoreflect.EnumType {
	return &file_conversation_proto_enumTypes[0]
}

func (x FriendApplyStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use FriendApplyStatus.Descriptor instead.
func (FriendApplyStatus) EnumDescriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{0}
}

type ListJoinedConversationsReq_Filter_SettingKV_Operator int32

const (
	// 等于
	ListJoinedConversationsReq_Filter_SettingKV_Equal ListJoinedConversationsReq_Filter_SettingKV_Operator = 0
	// 不等于
	ListJoinedConversationsReq_Filter_SettingKV_NotEqual ListJoinedConversationsReq_Filter_SettingKV_Operator = 1
)

// Enum value maps for ListJoinedConversationsReq_Filter_SettingKV_Operator.
var (
	ListJoinedConversationsReq_Filter_SettingKV_Operator_name = map[int32]string{
		0: "Equal",
		1: "NotEqual",
	}
	ListJoinedConversationsReq_Filter_SettingKV_Operator_value = map[string]int32{
		"Equal":    0,
		"NotEqual": 1,
	}
)

func (x ListJoinedConversationsReq_Filter_SettingKV_Operator) Enum() *ListJoinedConversationsReq_Filter_SettingKV_Operator {
	p := new(ListJoinedConversationsReq_Filter_SettingKV_Operator)
	*p = x
	return p
}

func (x ListJoinedConversationsReq_Filter_SettingKV_Operator) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ListJoinedConversationsReq_Filter_SettingKV_Operator) Descriptor() protoreflect.EnumDescriptor {
	return file_conversation_proto_enumTypes[1].Descriptor()
}

func (ListJoinedConversationsReq_Filter_SettingKV_Operator) Type() protoreflect.EnumType {
	return &file_conversation_proto_enumTypes[1]
}

func (x ListJoinedConversationsReq_Filter_SettingKV_Operator) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ListJoinedConversationsReq_Filter_SettingKV_Operator.Descriptor instead.
func (ListJoinedConversationsReq_Filter_SettingKV_Operator) EnumDescriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{20, 0, 0, 0}
}

type GroupCreateReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header     *RequestHeader    `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	Name       *string           `protobuf:"bytes,2,opt,name=name,proto3,oneof" json:"name"`
	Avatar     *string           `protobuf:"bytes,3,opt,name=avatar,proto3,oneof" json:"avatar"`
	MemberList []string          `protobuf:"bytes,4,rep,name=memberList,proto3" json:"memberList"`
	InfoMap    map[string]string `protobuf:"bytes,5,rep,name=infoMap,proto3" json:"infoMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	ExtraMap   map[string]string `protobuf:"bytes,6,rep,name=extraMap,proto3" json:"extraMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *GroupCreateReq) Reset() {
	*x = GroupCreateReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupCreateReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupCreateReq) ProtoMessage() {}

func (x *GroupCreateReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 GroupCreateReq.ProtoReflect.Descriptor instead.
func (*GroupCreateReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{0}
}

func (x *GroupCreateReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GroupCreateReq) GetName() string {
	if x != nil && x.Name != nil {
		return *x.Name
	}
	return ""
}

func (x *GroupCreateReq) GetAvatar() string {
	if x != nil && x.Avatar != nil {
		return *x.Avatar
	}
	return ""
}

func (x *GroupCreateReq) GetMemberList() []string {
	if x != nil {
		return x.MemberList
	}
	return nil
}

func (x *GroupCreateReq) GetInfoMap() map[string]string {
	if x != nil {
		return x.InfoMap
	}
	return nil
}

func (x *GroupCreateReq) GetExtraMap() map[string]string {
	if x != nil {
		return x.ExtraMap
	}
	return nil
}

type GroupCreateResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header  *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	GroupId string          `protobuf:"bytes,2,opt,name=groupId,proto3" json:"groupId"`
}

func (x *GroupCreateResp) Reset() {
	*x = GroupCreateResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupCreateResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupCreateResp) ProtoMessage() {}

func (x *GroupCreateResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 GroupCreateResp.ProtoReflect.Descriptor instead.
func (*GroupCreateResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{1}
}

func (x *GroupCreateResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *GroupCreateResp) GetGroupId() string {
	if x != nil {
		return x.GroupId
	}
	return ""
}

//CountJoinGroupReq 统计加入的群组数量
type CountJoinGroupReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *CountJoinGroupReq) Reset() {
	*x = CountJoinGroupReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountJoinGroupReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountJoinGroupReq) ProtoMessage() {}

func (x *CountJoinGroupReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 CountJoinGroupReq.ProtoReflect.Descriptor instead.
func (*CountJoinGroupReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{2}
}

func (x *CountJoinGroupReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type CountJoinGroupResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	Count  int64           `protobuf:"varint,2,opt,name=count,proto3" json:"count"`
}

func (x *CountJoinGroupResp) Reset() {
	*x = CountJoinGroupResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountJoinGroupResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountJoinGroupResp) ProtoMessage() {}

func (x *CountJoinGroupResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 CountJoinGroupResp.ProtoReflect.Descriptor instead.
func (*CountJoinGroupResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{3}
}

func (x *CountJoinGroupResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *CountJoinGroupResp) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

//CountCreateGroupReq 统计创建的群组数量
type CountCreateGroupReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *CountCreateGroupReq) Reset() {
	*x = CountCreateGroupReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountCreateGroupReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountCreateGroupReq) ProtoMessage() {}

func (x *CountCreateGroupReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 CountCreateGroupReq.ProtoReflect.Descriptor instead.
func (*CountCreateGroupReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{4}
}

func (x *CountCreateGroupReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type CountCreateGroupResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	Count  int64           `protobuf:"varint,2,opt,name=count,proto3" json:"count"`
}

func (x *CountCreateGroupResp) Reset() {
	*x = CountCreateGroupResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountCreateGroupResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountCreateGroupResp) ProtoMessage() {}

func (x *CountCreateGroupResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 CountCreateGroupResp.ProtoReflect.Descriptor instead.
func (*CountCreateGroupResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{5}
}

func (x *CountCreateGroupResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *CountCreateGroupResp) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

type GroupSubscribeReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *GroupSubscribeReq) Reset() {
	*x = GroupSubscribeReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupSubscribeReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupSubscribeReq) ProtoMessage() {}

func (x *GroupSubscribeReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 GroupSubscribeReq.ProtoReflect.Descriptor instead.
func (*GroupSubscribeReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{6}
}

func (x *GroupSubscribeReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type GroupSubscribeResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *GroupSubscribeResp) Reset() {
	*x = GroupSubscribeResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GroupSubscribeResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupSubscribeResp) ProtoMessage() {}

func (x *GroupSubscribeResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 GroupSubscribeResp.ProtoReflect.Descriptor instead.
func (*GroupSubscribeResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{7}
}

func (x *GroupSubscribeResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//ListGroupSubscribersReq 列出群组订阅者
type ListGroupSubscribersReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	//GroupId 群组id
	GroupId string `protobuf:"bytes,2,opt,name=groupId,proto3" json:"groupId"`
	//Cursor 游标
	Cursor int64 `protobuf:"varint,3,opt,name=cursor,proto3" json:"cursor"`
	//Limit 限制
	Limit  int64                           `protobuf:"varint,4,opt,name=limit,proto3" json:"limit"`
	Filter *ListGroupSubscribersReq_Filter `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter"`
	Option *ListGroupSubscribersReq_Option `protobuf:"bytes,6,opt,name=option,proto3" json:"option"`
}

func (x *ListGroupSubscribersReq) Reset() {
	*x = ListGroupSubscribersReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListGroupSubscribersReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListGroupSubscribersReq) ProtoMessage() {}

func (x *ListGroupSubscribersReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListGroupSubscribersReq.ProtoReflect.Descriptor instead.
func (*ListGroupSubscribersReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{8}
}

func (x *ListGroupSubscribersReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListGroupSubscribersReq) GetGroupId() string {
	if x != nil {
		return x.GroupId
	}
	return ""
}

func (x *ListGroupSubscribersReq) GetCursor() int64 {
	if x != nil {
		return x.Cursor
	}
	return 0
}

func (x *ListGroupSubscribersReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListGroupSubscribersReq) GetFilter() *ListGroupSubscribersReq_Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ListGroupSubscribersReq) GetOption() *ListGroupSubscribersReq_Option {
	if x != nil {
		return x.Option
	}
	return nil
}

type ListGroupSubscribersResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header         *ResponseHeader                        `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	SubscriberList []*ListGroupSubscribersResp_Subscriber `protobuf:"bytes,2,rep,name=subscriberList,proto3" json:"subscriberList"`
}

func (x *ListGroupSubscribersResp) Reset() {
	*x = ListGroupSubscribersResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListGroupSubscribersResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListGroupSubscribersResp) ProtoMessage() {}

func (x *ListGroupSubscribersResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListGroupSubscribersResp.ProtoReflect.Descriptor instead.
func (*ListGroupSubscribersResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{9}
}

func (x *ListGroupSubscribersResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListGroupSubscribersResp) GetSubscriberList() []*ListGroupSubscribersResp_Subscriber {
	if x != nil {
		return x.SubscriberList
	}
	return nil
}

type FriendApplyReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header   *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	ToUserId string         `protobuf:"bytes,2,opt,name=toUserId,proto3" json:"toUserId"`
	//Message 附加消息
	Message *string `protobuf:"bytes,3,opt,name=message,proto3,oneof" json:"message"`
	//Answer 附加回答
	Answer *string `protobuf:"bytes,4,opt,name=answer,proto3,oneof" json:"answer"`
}

func (x *FriendApplyReq) Reset() {
	*x = FriendApplyReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FriendApplyReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FriendApplyReq) ProtoMessage() {}

func (x *FriendApplyReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 FriendApplyReq.ProtoReflect.Descriptor instead.
func (*FriendApplyReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{10}
}

func (x *FriendApplyReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *FriendApplyReq) GetToUserId() string {
	if x != nil {
		return x.ToUserId
	}
	return ""
}

func (x *FriendApplyReq) GetMessage() string {
	if x != nil && x.Message != nil {
		return *x.Message
	}
	return ""
}

func (x *FriendApplyReq) GetAnswer() string {
	if x != nil && x.Answer != nil {
		return *x.Answer
	}
	return ""
}

type FriendApplyResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *FriendApplyResp) Reset() {
	*x = FriendApplyResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FriendApplyResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FriendApplyResp) ProtoMessage() {}

func (x *FriendApplyResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 FriendApplyResp.ProtoReflect.Descriptor instead.
func (*FriendApplyResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{11}
}

func (x *FriendApplyResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type FriendApplyHandleReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header  *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	ApplyId string         `protobuf:"bytes,2,opt,name=applyId,proto3" json:"applyId"`
	//Agree 是否同意
	Agree bool `protobuf:"varint,3,opt,name=agree,proto3" json:"agree"`
	//同意后发送的第一条消息
	FirstMessage *string `protobuf:"bytes,4,opt,name=firstMessage,proto3,oneof" json:"firstMessage"`
}

func (x *FriendApplyHandleReq) Reset() {
	*x = FriendApplyHandleReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FriendApplyHandleReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FriendApplyHandleReq) ProtoMessage() {}

func (x *FriendApplyHandleReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 FriendApplyHandleReq.ProtoReflect.Descriptor instead.
func (*FriendApplyHandleReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{12}
}

func (x *FriendApplyHandleReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *FriendApplyHandleReq) GetApplyId() string {
	if x != nil {
		return x.ApplyId
	}
	return ""
}

func (x *FriendApplyHandleReq) GetAgree() bool {
	if x != nil {
		return x.Agree
	}
	return false
}

func (x *FriendApplyHandleReq) GetFirstMessage() string {
	if x != nil && x.FirstMessage != nil {
		return *x.FirstMessage
	}
	return ""
}

type FriendApplyHandleResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *FriendApplyHandleResp) Reset() {
	*x = FriendApplyHandleResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FriendApplyHandleResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FriendApplyHandleResp) ProtoMessage() {}

func (x *FriendApplyHandleResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 FriendApplyHandleResp.ProtoReflect.Descriptor instead.
func (*FriendApplyHandleResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{13}
}

func (x *FriendApplyHandleResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type ListFriendApplyReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	//Cursor 游标
	Cursor int64 `protobuf:"varint,2,opt,name=cursor,proto3" json:"cursor"`
	//Limit 限制
	Limit  int64                      `protobuf:"varint,3,opt,name=limit,proto3" json:"limit"`
	Filter *ListFriendApplyReq_Filter `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter"`
	Option *ListFriendApplyReq_Option `protobuf:"bytes,5,opt,name=option,proto3" json:"option"`
}

func (x *ListFriendApplyReq) Reset() {
	*x = ListFriendApplyReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListFriendApplyReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFriendApplyReq) ProtoMessage() {}

func (x *ListFriendApplyReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListFriendApplyReq.ProtoReflect.Descriptor instead.
func (*ListFriendApplyReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{14}
}

func (x *ListFriendApplyReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListFriendApplyReq) GetCursor() int64 {
	if x != nil {
		return x.Cursor
	}
	return 0
}

func (x *ListFriendApplyReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListFriendApplyReq) GetFilter() *ListFriendApplyReq_Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ListFriendApplyReq) GetOption() *ListFriendApplyReq_Option {
	if x != nil {
		return x.Option
	}
	return nil
}

type ListFriendApplyResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	//Cursor 游标
	Cursor          int64                              `protobuf:"varint,2,opt,name=cursor,proto3" json:"cursor"`
	FriendApplyList []*ListFriendApplyResp_FriendApply `protobuf:"bytes,3,rep,name=friendApplyList,proto3" json:"friendApplyList"`
}

func (x *ListFriendApplyResp) Reset() {
	*x = ListFriendApplyResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListFriendApplyResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFriendApplyResp) ProtoMessage() {}

func (x *ListFriendApplyResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListFriendApplyResp.ProtoReflect.Descriptor instead.
func (*ListFriendApplyResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{15}
}

func (x *ListFriendApplyResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListFriendApplyResp) GetCursor() int64 {
	if x != nil {
		return x.Cursor
	}
	return 0
}

func (x *ListFriendApplyResp) GetFriendApplyList() []*ListFriendApplyResp_FriendApply {
	if x != nil {
		return x.FriendApplyList
	}
	return nil
}

//CountFriendReq 统计好友数量
type CountFriendReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *CountFriendReq) Reset() {
	*x = CountFriendReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountFriendReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountFriendReq) ProtoMessage() {}

func (x *CountFriendReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 CountFriendReq.ProtoReflect.Descriptor instead.
func (*CountFriendReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{16}
}

func (x *CountFriendReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type CountFriendResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	Count  int64           `protobuf:"varint,2,opt,name=count,proto3" json:"count"`
}

func (x *CountFriendResp) Reset() {
	*x = CountFriendResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CountFriendResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CountFriendResp) ProtoMessage() {}

func (x *CountFriendResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 CountFriendResp.ProtoReflect.Descriptor instead.
func (*CountFriendResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{17}
}

func (x *CountFriendResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *CountFriendResp) GetCount() int64 {
	if x != nil {
		return x.Count
	}
	return 0
}

type ConversationSettingUpdateReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *ConversationSettingUpdateReq) Reset() {
	*x = ConversationSettingUpdateReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConversationSettingUpdateReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConversationSettingUpdateReq) ProtoMessage() {}

func (x *ConversationSettingUpdateReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ConversationSettingUpdateReq.ProtoReflect.Descriptor instead.
func (*ConversationSettingUpdateReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{18}
}

func (x *ConversationSettingUpdateReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type ConversationSettingUpdateResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *ConversationSettingUpdateResp) Reset() {
	*x = ConversationSettingUpdateResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ConversationSettingUpdateResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ConversationSettingUpdateResp) ProtoMessage() {}

func (x *ConversationSettingUpdateResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ConversationSettingUpdateResp.ProtoReflect.Descriptor instead.
func (*ConversationSettingUpdateResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{19}
}

func (x *ConversationSettingUpdateResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type ListJoinedConversationsReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header           *RequestHeader   `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	ConversationType ConversationType `protobuf:"varint,2,opt,name=conversationType,proto3,enum=pb.ConversationType" json:"conversationType"`
	//Cursor 游标
	Cursor int64 `protobuf:"varint,3,opt,name=cursor,proto3" json:"cursor"`
	//Limit 限制
	Limit  int64                              `protobuf:"varint,4,opt,name=limit,proto3" json:"limit"`
	Filter *ListJoinedConversationsReq_Filter `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter"`
	Option *ListJoinedConversationsReq_Option `protobuf:"bytes,6,opt,name=option,proto3" json:"option"`
}

func (x *ListJoinedConversationsReq) Reset() {
	*x = ListJoinedConversationsReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsReq) ProtoMessage() {}

func (x *ListJoinedConversationsReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsReq.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{20}
}

func (x *ListJoinedConversationsReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListJoinedConversationsReq) GetConversationType() ConversationType {
	if x != nil {
		return x.ConversationType
	}
	return ConversationType_Single
}

func (x *ListJoinedConversationsReq) GetCursor() int64 {
	if x != nil {
		return x.Cursor
	}
	return 0
}

func (x *ListJoinedConversationsReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListJoinedConversationsReq) GetFilter() *ListJoinedConversationsReq_Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ListJoinedConversationsReq) GetOption() *ListJoinedConversationsReq_Option {
	if x != nil {
		return x.Option
	}
	return nil
}

type ListJoinedConversationsResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header           *ResponseHeader                             `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	ConversationList []*ListJoinedConversationsResp_Conversation `protobuf:"bytes,3,rep,name=conversationList,proto3" json:"conversationList"`
}

func (x *ListJoinedConversationsResp) Reset() {
	*x = ListJoinedConversationsResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsResp) ProtoMessage() {}

func (x *ListJoinedConversationsResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsResp.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{21}
}

func (x *ListJoinedConversationsResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListJoinedConversationsResp) GetConversationList() []*ListJoinedConversationsResp_Conversation {
	if x != nil {
		return x.ConversationList
	}
	return nil
}

type SubscriptionSubscribeReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *SubscriptionSubscribeReq) Reset() {
	*x = SubscriptionSubscribeReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionSubscribeReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionSubscribeReq) ProtoMessage() {}

func (x *SubscriptionSubscribeReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 SubscriptionSubscribeReq.ProtoReflect.Descriptor instead.
func (*SubscriptionSubscribeReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{22}
}

func (x *SubscriptionSubscribeReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type SubscriptionSubscribeResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *SubscriptionSubscribeResp) Reset() {
	*x = SubscriptionSubscribeResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionSubscribeResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionSubscribeResp) ProtoMessage() {}

func (x *SubscriptionSubscribeResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 SubscriptionSubscribeResp.ProtoReflect.Descriptor instead.
func (*SubscriptionSubscribeResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{23}
}

func (x *SubscriptionSubscribeResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type SubscriptionAfterOnlineReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *SubscriptionAfterOnlineReq) Reset() {
	*x = SubscriptionAfterOnlineReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionAfterOnlineReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionAfterOnlineReq) ProtoMessage() {}

func (x *SubscriptionAfterOnlineReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 SubscriptionAfterOnlineReq.ProtoReflect.Descriptor instead.
func (*SubscriptionAfterOnlineReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{24}
}

func (x *SubscriptionAfterOnlineReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type SubscriptionAfterOnlineResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *SubscriptionAfterOnlineResp) Reset() {
	*x = SubscriptionAfterOnlineResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionAfterOnlineResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionAfterOnlineResp) ProtoMessage() {}

func (x *SubscriptionAfterOnlineResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 SubscriptionAfterOnlineResp.ProtoReflect.Descriptor instead.
func (*SubscriptionAfterOnlineResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{25}
}

func (x *SubscriptionAfterOnlineResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//SubscriptionAfterOffline 订阅号在做用户下线后的操作
type SubscriptionAfterOfflineReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	UserId string         `protobuf:"bytes,2,opt,name=userId,proto3" json:"userId"`
}

func (x *SubscriptionAfterOfflineReq) Reset() {
	*x = SubscriptionAfterOfflineReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionAfterOfflineReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionAfterOfflineReq) ProtoMessage() {}

func (x *SubscriptionAfterOfflineReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 SubscriptionAfterOfflineReq.ProtoReflect.Descriptor instead.
func (*SubscriptionAfterOfflineReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{26}
}

func (x *SubscriptionAfterOfflineReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *SubscriptionAfterOfflineReq) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

type SubscriptionAfterOfflineResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *SubscriptionAfterOfflineResp) Reset() {
	*x = SubscriptionAfterOfflineResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SubscriptionAfterOfflineResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SubscriptionAfterOfflineResp) ProtoMessage() {}

func (x *SubscriptionAfterOfflineResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 SubscriptionAfterOfflineResp.ProtoReflect.Descriptor instead.
func (*SubscriptionAfterOfflineResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{27}
}

func (x *SubscriptionAfterOfflineResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

//UserSubscription 用户订阅的订阅号
type UserSubscription struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SubscriptionId string            `protobuf:"bytes,1,opt,name=subscriptionId,proto3" json:"subscriptionId"`
	Subscriber     string            `protobuf:"bytes,2,opt,name=Subscriber,proto3" json:"Subscriber"`
	SubscribeTime  int64             `protobuf:"varint,3,opt,name=subscribeTime,proto3" json:"subscribeTime"`
	ExtraMap       map[string]string `protobuf:"bytes,6,rep,name=extraMap,proto3" json:"extraMap" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *UserSubscription) Reset() {
	*x = UserSubscription{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UserSubscription) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserSubscription) ProtoMessage() {}

func (x *UserSubscription) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 UserSubscription.ProtoReflect.Descriptor instead.
func (*UserSubscription) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{28}
}

func (x *UserSubscription) GetSubscriptionId() string {
	if x != nil {
		return x.SubscriptionId
	}
	return ""
}

func (x *UserSubscription) GetSubscriber() string {
	if x != nil {
		return x.Subscriber
	}
	return ""
}

func (x *UserSubscription) GetSubscribeTime() int64 {
	if x != nil {
		return x.SubscribeTime
	}
	return 0
}

func (x *UserSubscription) GetExtraMap() map[string]string {
	if x != nil {
		return x.ExtraMap
	}
	return nil
}

type UpsertUserSubscriptionReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	//SubscriptionId 订阅号id
	SubscriptionId   string            `protobuf:"bytes,2,opt,name=subscriptionId,proto3" json:"subscriptionId"`
	UserSubscription *UserSubscription `protobuf:"bytes,3,opt,name=userSubscription,proto3" json:"userSubscription"`
}

func (x *UpsertUserSubscriptionReq) Reset() {
	*x = UpsertUserSubscriptionReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpsertUserSubscriptionReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpsertUserSubscriptionReq) ProtoMessage() {}

func (x *UpsertUserSubscriptionReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 UpsertUserSubscriptionReq.ProtoReflect.Descriptor instead.
func (*UpsertUserSubscriptionReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{29}
}

func (x *UpsertUserSubscriptionReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *UpsertUserSubscriptionReq) GetSubscriptionId() string {
	if x != nil {
		return x.SubscriptionId
	}
	return ""
}

func (x *UpsertUserSubscriptionReq) GetUserSubscription() *UserSubscription {
	if x != nil {
		return x.UserSubscription
	}
	return nil
}

type UpsertUserSubscriptionResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *UpsertUserSubscriptionResp) Reset() {
	*x = UpsertUserSubscriptionResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpsertUserSubscriptionResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpsertUserSubscriptionResp) ProtoMessage() {}

func (x *UpsertUserSubscriptionResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 UpsertUserSubscriptionResp.ProtoReflect.Descriptor instead.
func (*UpsertUserSubscriptionResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{30}
}

func (x *UpsertUserSubscriptionResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type DeleteUserSubscriptionReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	//SubscriptionId 订阅号id
	SubscriptionId string `protobuf:"bytes,2,opt,name=subscriptionId,proto3" json:"subscriptionId"`
}

func (x *DeleteUserSubscriptionReq) Reset() {
	*x = DeleteUserSubscriptionReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteUserSubscriptionReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteUserSubscriptionReq) ProtoMessage() {}

func (x *DeleteUserSubscriptionReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 DeleteUserSubscriptionReq.ProtoReflect.Descriptor instead.
func (*DeleteUserSubscriptionReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{31}
}

func (x *DeleteUserSubscriptionReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *DeleteUserSubscriptionReq) GetSubscriptionId() string {
	if x != nil {
		return x.SubscriptionId
	}
	return ""
}

type DeleteUserSubscriptionResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *ResponseHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
}

func (x *DeleteUserSubscriptionResp) Reset() {
	*x = DeleteUserSubscriptionResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteUserSubscriptionResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteUserSubscriptionResp) ProtoMessage() {}

func (x *DeleteUserSubscriptionResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 DeleteUserSubscriptionResp.ProtoReflect.Descriptor instead.
func (*DeleteUserSubscriptionResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{32}
}

func (x *DeleteUserSubscriptionResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

type ListSubscriptionSubscribersReq struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header *RequestHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	//SubscriptionId 订阅号id
	SubscriptionId string `protobuf:"bytes,2,opt,name=subscriptionId,proto3" json:"subscriptionId"`
	//Cursor 游标
	Cursor int64 `protobuf:"varint,3,opt,name=cursor,proto3" json:"cursor"`
	//Limit 限制
	Limit  int64                                  `protobuf:"varint,4,opt,name=limit,proto3" json:"limit"`
	Filter *ListSubscriptionSubscribersReq_Filter `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter"`
	Option *ListSubscriptionSubscribersReq_Option `protobuf:"bytes,6,opt,name=option,proto3" json:"option"`
}

func (x *ListSubscriptionSubscribersReq) Reset() {
	*x = ListSubscriptionSubscribersReq{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSubscriptionSubscribersReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionSubscribersReq) ProtoMessage() {}

func (x *ListSubscriptionSubscribersReq) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListSubscriptionSubscribersReq.ProtoReflect.Descriptor instead.
func (*ListSubscriptionSubscribersReq) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{33}
}

func (x *ListSubscriptionSubscribersReq) GetHeader() *RequestHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListSubscriptionSubscribersReq) GetSubscriptionId() string {
	if x != nil {
		return x.SubscriptionId
	}
	return ""
}

func (x *ListSubscriptionSubscribersReq) GetCursor() int64 {
	if x != nil {
		return x.Cursor
	}
	return 0
}

func (x *ListSubscriptionSubscribersReq) GetLimit() int64 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *ListSubscriptionSubscribersReq) GetFilter() *ListSubscriptionSubscribersReq_Filter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (x *ListSubscriptionSubscribersReq) GetOption() *ListSubscriptionSubscribersReq_Option {
	if x != nil {
		return x.Option
	}
	return nil
}

type ListSubscriptionSubscribersResp struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Header         *ResponseHeader                               `protobuf:"bytes,1,opt,name=header,proto3" json:"header"`
	SubscriberList []*ListSubscriptionSubscribersResp_Subscriber `protobuf:"bytes,2,rep,name=subscriberList,proto3" json:"subscriberList"`
}

func (x *ListSubscriptionSubscribersResp) Reset() {
	*x = ListSubscriptionSubscribersResp{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSubscriptionSubscribersResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionSubscribersResp) ProtoMessage() {}

func (x *ListSubscriptionSubscribersResp) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListSubscriptionSubscribersResp.ProtoReflect.Descriptor instead.
func (*ListSubscriptionSubscribersResp) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{34}
}

func (x *ListSubscriptionSubscribersResp) GetHeader() *ResponseHeader {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *ListSubscriptionSubscribersResp) GetSubscriberList() []*ListSubscriptionSubscribersResp_Subscriber {
	if x != nil {
		return x.SubscriberList
	}
	return nil
}

//Filter 过滤器
type ListGroupSubscribersReq_Filter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//subscribeTimeGte 订阅时间大于等于
	SubscribeTimeGte int64 `protobuf:"varint,1,opt,name=subscribeTimeGte,proto3" json:"subscribeTimeGte"`
}

func (x *ListGroupSubscribersReq_Filter) Reset() {
	*x = ListGroupSubscribersReq_Filter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListGroupSubscribersReq_Filter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListGroupSubscribersReq_Filter) ProtoMessage() {}

func (x *ListGroupSubscribersReq_Filter) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListGroupSubscribersReq_Filter.ProtoReflect.Descriptor instead.
func (*ListGroupSubscribersReq_Filter) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{8, 0}
}

func (x *ListGroupSubscribersReq_Filter) GetSubscribeTimeGte() int64 {
	if x != nil {
		return x.SubscribeTimeGte
	}
	return 0
}

//Option 选项
type ListGroupSubscribersReq_Option struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ListGroupSubscribersReq_Option) Reset() {
	*x = ListGroupSubscribersReq_Option{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListGroupSubscribersReq_Option) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListGroupSubscribersReq_Option) ProtoMessage() {}

func (x *ListGroupSubscribersReq_Option) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListGroupSubscribersReq_Option.ProtoReflect.Descriptor instead.
func (*ListGroupSubscribersReq_Option) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{8, 1}
}

//Cursor 游标
//List 列表
type ListGroupSubscribersResp_Subscriber struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//UserId 用户id
	UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"`
	//SubscribeTime 订阅时间
	SubscribeTime int64 `protobuf:"varint,2,opt,name=subscribeTime,proto3" json:"subscribeTime"`
}

func (x *ListGroupSubscribersResp_Subscriber) Reset() {
	*x = ListGroupSubscribersResp_Subscriber{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListGroupSubscribersResp_Subscriber) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListGroupSubscribersResp_Subscriber) ProtoMessage() {}

func (x *ListGroupSubscribersResp_Subscriber) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListGroupSubscribersResp_Subscriber.ProtoReflect.Descriptor instead.
func (*ListGroupSubscribersResp_Subscriber) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{9, 0}
}

func (x *ListGroupSubscribersResp_Subscriber) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *ListGroupSubscribersResp_Subscriber) GetSubscribeTime() int64 {
	if x != nil {
		return x.SubscribeTime
	}
	return 0
}

//Filter 过滤器
type ListFriendApplyReq_Filter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Status *FriendApplyStatus `protobuf:"varint,1,opt,name=status,proto3,enum=pb.FriendApplyStatus,oneof" json:"status"`
}

func (x *ListFriendApplyReq_Filter) Reset() {
	*x = ListFriendApplyReq_Filter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListFriendApplyReq_Filter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFriendApplyReq_Filter) ProtoMessage() {}

func (x *ListFriendApplyReq_Filter) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListFriendApplyReq_Filter.ProtoReflect.Descriptor instead.
func (*ListFriendApplyReq_Filter) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{14, 0}
}

func (x *ListFriendApplyReq_Filter) GetStatus() FriendApplyStatus {
	if x != nil && x.Status != nil {
		return *x.Status
	}
	return FriendApplyStatus_Applying
}

//Option 选项
type ListFriendApplyReq_Option struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	IncludeApplyByMe bool `protobuf:"varint,1,opt,name=includeApplyByMe,proto3" json:"includeApplyByMe"` //包含我发出的申请
}

func (x *ListFriendApplyReq_Option) Reset() {
	*x = ListFriendApplyReq_Option{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListFriendApplyReq_Option) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFriendApplyReq_Option) ProtoMessage() {}

func (x *ListFriendApplyReq_Option) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListFriendApplyReq_Option.ProtoReflect.Descriptor instead.
func (*ListFriendApplyReq_Option) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{14, 1}
}

func (x *ListFriendApplyReq_Option) GetIncludeApplyByMe() bool {
	if x != nil {
		return x.IncludeApplyByMe
	}
	return false
}

//List 列表
type ListFriendApplyResp_FriendApply struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//ApplyId 申请id
	ApplyId string `protobuf:"bytes,1,opt,name=applyId,proto3" json:"applyId"`
	//FromUserId 申请人id
	FromUserId string `protobuf:"bytes,2,opt,name=fromUserId,proto3" json:"fromUserId"`
	//ToUserId 被申请人id
	ToUserId string `protobuf:"bytes,3,opt,name=toUserId,proto3" json:"toUserId"`
	//Message 附加消息
	Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message"`
	//Answer 附加回答
	Answer string `protobuf:"bytes,5,opt,name=answer,proto3" json:"answer"`
}

func (x *ListFriendApplyResp_FriendApply) Reset() {
	*x = ListFriendApplyResp_FriendApply{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListFriendApplyResp_FriendApply) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListFriendApplyResp_FriendApply) ProtoMessage() {}

func (x *ListFriendApplyResp_FriendApply) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListFriendApplyResp_FriendApply.ProtoReflect.Descriptor instead.
func (*ListFriendApplyResp_FriendApply) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{15, 0}
}

func (x *ListFriendApplyResp_FriendApply) GetApplyId() string {
	if x != nil {
		return x.ApplyId
	}
	return ""
}

func (x *ListFriendApplyResp_FriendApply) GetFromUserId() string {
	if x != nil {
		return x.FromUserId
	}
	return ""
}

func (x *ListFriendApplyResp_FriendApply) GetToUserId() string {
	if x != nil {
		return x.ToUserId
	}
	return ""
}

func (x *ListFriendApplyResp_FriendApply) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

func (x *ListFriendApplyResp_FriendApply) GetAnswer() string {
	if x != nil {
		return x.Answer
	}
	return ""
}

//Filter 过滤器
type ListJoinedConversationsReq_Filter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//使用setting中的字段过滤
	SettingList []*ListJoinedConversationsReq_Filter_SettingKV `protobuf:"bytes,1,rep,name=settingList,proto3" json:"settingList"`
}

func (x *ListJoinedConversationsReq_Filter) Reset() {
	*x = ListJoinedConversationsReq_Filter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsReq_Filter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsReq_Filter) ProtoMessage() {}

func (x *ListJoinedConversationsReq_Filter) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsReq_Filter.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsReq_Filter) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{20, 0}
}

func (x *ListJoinedConversationsReq_Filter) GetSettingList() []*ListJoinedConversationsReq_Filter_SettingKV {
	if x != nil {
		return x.SettingList
	}
	return nil
}

//Option 选项
type ListJoinedConversationsReq_Option struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//IncludeSelfMemberInfo 是否包含自己的成员信息
	IncludeSelfMemberInfo bool `protobuf:"varint,2,opt,name=includeSelfMemberInfo,proto3" json:"includeSelfMemberInfo"`
}

func (x *ListJoinedConversationsReq_Option) Reset() {
	*x = ListJoinedConversationsReq_Option{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsReq_Option) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsReq_Option) ProtoMessage() {}

func (x *ListJoinedConversationsReq_Option) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsReq_Option.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsReq_Option) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{20, 1}
}

func (x *ListJoinedConversationsReq_Option) GetIncludeSelfMemberInfo() bool {
	if x != nil {
		return x.IncludeSelfMemberInfo
	}
	return false
}

type ListJoinedConversationsReq_Filter_SettingKV struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key         ConversationSettingKey                               `protobuf:"varint,1,opt,name=key,proto3,enum=pb.ConversationSettingKey" json:"key"`
	Value       string                                               `protobuf:"bytes,2,opt,name=value,proto3" json:"value"`
	Operator    ListJoinedConversationsReq_Filter_SettingKV_Operator `protobuf:"varint,3,opt,name=operator,proto3,enum=pb.ListJoinedConversationsReq_Filter_SettingKV_Operator" json:"operator"`
	OrNotExists bool                                                 `protobuf:"varint,4,opt,name=orNotExists,proto3" json:"orNotExists"`
	OrExists    bool                                                 `protobuf:"varint,5,opt,name=orExists,proto3" json:"orExists"`
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) Reset() {
	*x = ListJoinedConversationsReq_Filter_SettingKV{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsReq_Filter_SettingKV) ProtoMessage() {}

func (x *ListJoinedConversationsReq_Filter_SettingKV) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsReq_Filter_SettingKV.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsReq_Filter_SettingKV) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{20, 0, 0}
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) GetKey() ConversationSettingKey {
	if x != nil {
		return x.Key
	}
	return ConversationSettingKey_IsPinned
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) GetOperator() ListJoinedConversationsReq_Filter_SettingKV_Operator {
	if x != nil {
		return x.Operator
	}
	return ListJoinedConversationsReq_Filter_SettingKV_Equal
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) GetOrNotExists() bool {
	if x != nil {
		return x.OrNotExists
	}
	return false
}

func (x *ListJoinedConversationsReq_Filter_SettingKV) GetOrExists() bool {
	if x != nil {
		return x.OrExists
	}
	return false
}

//List 列表
type ListJoinedConversationsResp_Conversation struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//ConversationId 会话id
	ConversationId   string                                                   `protobuf:"bytes,1,opt,name=conversationId,proto3" json:"conversationId"`
	ConversationType ConversationType                                         `protobuf:"varint,2,opt,name=conversationType,proto3,enum=pb.ConversationType" json:"conversationType"`
	SelfMemberInfo   *ListJoinedConversationsResp_Conversation_SelfMemberInfo `protobuf:"bytes,31,opt,name=selfMemberInfo,proto3,oneof" json:"selfMemberInfo"`
}

func (x *ListJoinedConversationsResp_Conversation) Reset() {
	*x = ListJoinedConversationsResp_Conversation{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsResp_Conversation) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsResp_Conversation) ProtoMessage() {}

func (x *ListJoinedConversationsResp_Conversation) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsResp_Conversation.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsResp_Conversation) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{21, 0}
}

func (x *ListJoinedConversationsResp_Conversation) GetConversationId() string {
	if x != nil {
		return x.ConversationId
	}
	return ""
}

func (x *ListJoinedConversationsResp_Conversation) GetConversationType() ConversationType {
	if x != nil {
		return x.ConversationType
	}
	return ConversationType_Single
}

func (x *ListJoinedConversationsResp_Conversation) GetSelfMemberInfo() *ListJoinedConversationsResp_Conversation_SelfMemberInfo {
	if x != nil {
		return x.SelfMemberInfo
	}
	return nil
}

type ListJoinedConversationsResp_Conversation_SelfMemberInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	JoinTime int64 `protobuf:"varint,1,opt,name=joinTime,proto3" json:"joinTime"`
}

func (x *ListJoinedConversationsResp_Conversation_SelfMemberInfo) Reset() {
	*x = ListJoinedConversationsResp_Conversation_SelfMemberInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListJoinedConversationsResp_Conversation_SelfMemberInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListJoinedConversationsResp_Conversation_SelfMemberInfo) ProtoMessage() {}

func (x *ListJoinedConversationsResp_Conversation_SelfMemberInfo) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListJoinedConversationsResp_Conversation_SelfMemberInfo.ProtoReflect.Descriptor instead.
func (*ListJoinedConversationsResp_Conversation_SelfMemberInfo) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{21, 0, 0}
}

func (x *ListJoinedConversationsResp_Conversation_SelfMemberInfo) GetJoinTime() int64 {
	if x != nil {
		return x.JoinTime
	}
	return 0
}

//Filter 过滤器
type ListSubscriptionSubscribersReq_Filter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//subscribeTimeGte 订阅时间大于等于
	SubscribeTimeGte int64 `protobuf:"varint,1,opt,name=subscribeTimeGte,proto3" json:"subscribeTimeGte"`
}

func (x *ListSubscriptionSubscribersReq_Filter) Reset() {
	*x = ListSubscriptionSubscribersReq_Filter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSubscriptionSubscribersReq_Filter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionSubscribersReq_Filter) ProtoMessage() {}

func (x *ListSubscriptionSubscribersReq_Filter) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListSubscriptionSubscribersReq_Filter.ProtoReflect.Descriptor instead.
func (*ListSubscriptionSubscribersReq_Filter) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{33, 0}
}

func (x *ListSubscriptionSubscribersReq_Filter) GetSubscribeTimeGte() int64 {
	if x != nil {
		return x.SubscribeTimeGte
	}
	return 0
}

//Option 选项
type ListSubscriptionSubscribersReq_Option struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ListSubscriptionSubscribersReq_Option) Reset() {
	*x = ListSubscriptionSubscribersReq_Option{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSubscriptionSubscribersReq_Option) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionSubscribersReq_Option) ProtoMessage() {}

func (x *ListSubscriptionSubscribersReq_Option) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListSubscriptionSubscribersReq_Option.ProtoReflect.Descriptor instead.
func (*ListSubscriptionSubscribersReq_Option) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{33, 1}
}

//Cursor 游标
//List 列表
type ListSubscriptionSubscribersResp_Subscriber struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	//UserId 用户id
	UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"`
	//SubscribeTime 订阅时间
	SubscribeTime int64 `protobuf:"varint,2,opt,name=subscribeTime,proto3" json:"subscribeTime"`
}

func (x *ListSubscriptionSubscribersResp_Subscriber) Reset() {
	*x = ListSubscriptionSubscribersResp_Subscriber{}
	if protoimpl.UnsafeEnabled {
		mi := &file_conversation_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListSubscriptionSubscribersResp_Subscriber) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListSubscriptionSubscribersResp_Subscriber) ProtoMessage() {}

func (x *ListSubscriptionSubscribersResp_Subscriber) ProtoReflect() protoreflect.Message {
	mi := &file_conversation_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 ListSubscriptionSubscribersResp_Subscriber.ProtoReflect.Descriptor instead.
func (*ListSubscriptionSubscribersResp_Subscriber) Descriptor() ([]byte, []int) {
	return file_conversation_proto_rawDescGZIP(), []int{34, 0}
}

func (x *ListSubscriptionSubscribersResp_Subscriber) GetUserId() string {
	if x != nil {
		return x.UserId
	}
	return ""
}

func (x *ListSubscriptionSubscribersResp_Subscriber) GetSubscribeTime() int64 {
	if x != nil {
		return x.SubscribeTime
	}
	return 0
}

var File_conversation_proto protoreflect.FileDescriptor

var file_conversation_proto_rawDesc = []byte{
	0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x03, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a,
	0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52,
	0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65,
	0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a,
	0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x69, 0x6e,
	0x66, 0x6f, 0x4d, 0x61, 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x62,
	0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x2e,
	0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x69, 0x6e,
	0x66, 0x6f, 0x4d, 0x61, 0x70, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61,
	0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x2e, 0x45, 0x78, 0x74, 0x72,
	0x61, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61,
	0x4d, 0x61, 0x70, 0x1a, 0x3a, 0x0a, 0x0c, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a,
	0x3b, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 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,
	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x07, 0x0a, 0x05,
	0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72,
	0x22, 0x57, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
	0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x11, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x29,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, 0x43, 0x6f, 0x75,
	0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e,
	0x74, 0x22, 0x40, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x22, 0x58, 0x0a, 0x14, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3e, 0x0a,
	0x11, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52,
	0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x40, 0x0a,
	0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22,
	0xc4, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
	0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
	0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03,
	0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69,
	0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x3a,
	0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22,
	0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x46, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x06, 0x6f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x62, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06,
	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x34, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x12, 0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x69, 0x6d,
	0x65, 0x47, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x47, 0x74, 0x65, 0x1a, 0x08, 0x0a, 0x06,
	0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x47,
	0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
	0x4f, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73,
	0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73,
	0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72,
	0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74,
	0x1a, 0x4a, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, 0x16,
	0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x01, 0x0a,
	0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12,
	0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x88,
	0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x09,
	0x0a, 0x07, 0x5f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x3d, 0x0a, 0x0f, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70,
	0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xab, 0x01, 0x0a, 0x14, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65,
	0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07,
	0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61,
	0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x72, 0x65, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x67, 0x72, 0x65, 0x65, 0x12, 0x27, 0x0a, 0x0c,
	0x66, 0x69, 0x72, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
	0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x43, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
	0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xda, 0x02, 0x0a, 0x12,
	0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52,
	0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a,
	0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63,
	0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x66,
	0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62,
	0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79,
	0x52, 0x65, 0x71, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x12, 0x35, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x47, 0x0a, 0x06, 0x46, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41,
	0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74,
	0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x1a, 0x34, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10,
	0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x79, 0x4d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x41,
	0x70, 0x70, 0x6c, 0x79, 0x42, 0x79, 0x4d, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73,
	0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06,
	0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x75,
	0x72, 0x73, 0x6f, 0x72, 0x12, 0x4d, 0x0a, 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70,
	0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e,
	0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x52, 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c,
	0x69, 0x73, 0x74, 0x1a, 0x95, 0x01, 0x0a, 0x0b, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70,
	0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a,
	0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a,
	0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
	0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0x3b, 0x0a, 0x0e, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x0f, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62,
	0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x49, 0x0a,
	0x1c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74,
	0x74, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a,
	0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
	0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x4b, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x76,
	0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xde, 0x05, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f,
	0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
	0x40, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x43,
	0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d,
	0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12,
	0x3d, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x25, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43,
	0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x2e,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3d,
	0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
	0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f,
	0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xe6, 0x02,
	0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0b, 0x73, 0x65, 0x74, 0x74,
	0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
	0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e,
	0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x46, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x56, 0x52, 0x0b,
	0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x88, 0x02, 0x0a, 0x09,
	0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x56, 0x12, 0x2c, 0x0a, 0x03, 0x6b, 0x65, 0x79,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x76,
	0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b,
	0x65, 0x79, 0x52, 0x03, 0x6b, 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, 0x54, 0x0a,
	0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x38, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43,
	0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x2e,
	0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x4b, 0x56,
	0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61,
	0x74, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73,
	0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x72, 0x4e, 0x6f, 0x74, 0x45,
	0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x45, 0x78, 0x69, 0x73, 0x74,
	0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6f, 0x72, 0x45, 0x78, 0x69, 0x73, 0x74,
	0x73, 0x22, 0x23, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x09, 0x0a,
	0x05, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x45,
	0x71, 0x75, 0x61, 0x6c, 0x10, 0x01, 0x1a, 0x3e, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x66, 0x4d,
	0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xc9, 0x03, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4a,
	0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x12, 0x58, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x70,
	0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76,
	0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x43, 0x6f,
	0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76,
	0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xa3, 0x02, 0x0a,
	0x0c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a,
	0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x14, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x73, 0x65, 0x6c, 0x66, 0x4d,
	0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x3b, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43,
	0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65,
	0x6c, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0e,
	0x73, 0x65, 0x6c, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x88, 0x01,
	0x01, 0x1a, 0x2c, 0x0a, 0x0e, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49,
	0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x42,
	0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e,
	0x66, 0x6f, 0x22, 0x45, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x47, 0x0a, 0x19, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x22, 0x47, 0x0a, 0x1a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71,
	0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x49, 0x0a, 0x1b, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72,
	0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
	0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x60, 0x0a, 0x1b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69,
	0x6e, 0x65, 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
	0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66,
	0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
	0x61, 0x64, 0x65, 0x72, 0x22, 0xfd, 0x01, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x72, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x72, 0x61,
	0x4d, 0x61, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x45, 0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65,
	0x78, 0x74, 0x72, 0x61, 0x4d, 0x61, 0x70, 0x1a, 0x3b, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x72, 0x61,
	0x4d, 0x61, 0x70, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0xb0, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x55,
	0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52,
	0x65, 0x71, 0x12, 0x29, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a,
	0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x75, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x1a, 0x55, 0x70, 0x73, 0x65, 0x72,
	0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x22, 0x6e, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x29,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x22, 0x48, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12,
	0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xe7, 0x02, 0x0a, 0x1e,
	0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x29,
	0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65,
	0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d,
	0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12,
	0x41, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x29, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73,
	0x52, 0x65, 0x71, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x12, 0x41, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x34, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
	0x2a, 0x0a, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x47, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x47, 0x74, 0x65, 0x1a, 0x08, 0x0a, 0x06, 0x4f,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf1, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x06, 0x68, 0x65, 0x61,
	0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68,
	0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e,
	0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x52, 0x0e, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x4a, 0x0a,
	0x0a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
	0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2a, 0x3d, 0x0a, 0x11, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0c,
	0x0a, 0x08, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08,
	0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x65,
	0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x02, 0x32, 0xec, 0x02, 0x0a, 0x0c, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x47, 0x72, 0x6f,
	0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70,
	0x62, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x0e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70,
	0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x10, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e,
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12,
	0x41, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62,
	0x65, 0x12, 0x15, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x47, 0x72,
	0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x22, 0x00, 0x12, 0x53, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x62, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73,
	0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x32, 0x95, 0x02, 0x0a, 0x0d, 0x66, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x0b, 0x46, 0x72, 0x69,
	0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x72,
	0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70,
	0x62, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x72,
	0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52,
	0x65, 0x71, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70,
	0x70, 0x6c, 0x79, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12,
	0x44, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70,
	0x6c, 0x79, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65,
	0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x2e,
	0x4c, 0x69, 0x73, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52,
	0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x38, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x46, 0x72,
	0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x46,
	0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x32,
	0xd7, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x62, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x76, 0x65,
	0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72,
	0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6e, 0x76,
	0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x55,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x17, 0x4c,
	0x69, 0x73, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
	0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x32, 0xcc, 0x04, 0x0a, 0x13, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
	0x65, 0x12, 0x56, 0x0a, 0x15, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e,
	0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x62, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x17, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x6e,
	0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e,
	0x65, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c,
	0x69, 0x6e, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e,
	0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x6c, 0x69,
	0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x16, 0x55, 0x70, 0x73, 0x65,
	0x72, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x55, 0x73,
	0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
	0x71, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x70, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65,
	0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e,
	0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x70,
	0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x12, 0x68,
	0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x12, 0x22, 0x2e,
	0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x72, 0x73, 0x52, 0x65,
	0x71, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65,
	0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x00, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62,
	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_conversation_proto_rawDescOnce sync.Once
	file_conversation_proto_rawDescData = file_conversation_proto_rawDesc
)

func file_conversation_proto_rawDescGZIP() []byte {
	file_conversation_proto_rawDescOnce.Do(func() {
		file_conversation_proto_rawDescData = protoimpl.X.CompressGZIP(file_conversation_proto_rawDescData)
	})
	return file_conversation_proto_rawDescData
}

var file_conversation_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_conversation_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
var file_conversation_proto_goTypes = []interface{}{
	(FriendApplyStatus)(0), // 0: pb.FriendApplyStatus
	(ListJoinedConversationsReq_Filter_SettingKV_Operator)(0), // 1: pb.ListJoinedConversationsReq.Filter.SettingKV.Operator
	(*GroupCreateReq)(nil),                                          // 2: pb.GroupCreateReq
	(*GroupCreateResp)(nil),                                         // 3: pb.GroupCreateResp
	(*CountJoinGroupReq)(nil),                                       // 4: pb.CountJoinGroupReq
	(*CountJoinGroupResp)(nil),                                      // 5: pb.CountJoinGroupResp
	(*CountCreateGroupReq)(nil),                                     // 6: pb.CountCreateGroupReq
	(*CountCreateGroupResp)(nil),                                    // 7: pb.CountCreateGroupResp
	(*GroupSubscribeReq)(nil),                                       // 8: pb.GroupSubscribeReq
	(*GroupSubscribeResp)(nil),                                      // 9: pb.GroupSubscribeResp
	(*ListGroupSubscribersReq)(nil),                                 // 10: pb.ListGroupSubscribersReq
	(*ListGroupSubscribersResp)(nil),                                // 11: pb.ListGroupSubscribersResp
	(*FriendApplyReq)(nil),                                          // 12: pb.FriendApplyReq
	(*FriendApplyResp)(nil),                                         // 13: pb.FriendApplyResp
	(*FriendApplyHandleReq)(nil),                                    // 14: pb.FriendApplyHandleReq
	(*FriendApplyHandleResp)(nil),                                   // 15: pb.FriendApplyHandleResp
	(*ListFriendApplyReq)(nil),                                      // 16: pb.ListFriendApplyReq
	(*ListFriendApplyResp)(nil),                                     // 17: pb.ListFriendApplyResp
	(*CountFriendReq)(nil),                                          // 18: pb.CountFriendReq
	(*CountFriendResp)(nil),                                         // 19: pb.CountFriendResp
	(*ConversationSettingUpdateReq)(nil),                            // 20: pb.ConversationSettingUpdateReq
	(*ConversationSettingUpdateResp)(nil),                           // 21: pb.ConversationSettingUpdateResp
	(*ListJoinedConversationsReq)(nil),                              // 22: pb.ListJoinedConversationsReq
	(*ListJoinedConversationsResp)(nil),                             // 23: pb.ListJoinedConversationsResp
	(*SubscriptionSubscribeReq)(nil),                                // 24: pb.SubscriptionSubscribeReq
	(*SubscriptionSubscribeResp)(nil),                               // 25: pb.SubscriptionSubscribeResp
	(*SubscriptionAfterOnlineReq)(nil),                              // 26: pb.SubscriptionAfterOnlineReq
	(*SubscriptionAfterOnlineResp)(nil),                             // 27: pb.SubscriptionAfterOnlineResp
	(*SubscriptionAfterOfflineReq)(nil),                             // 28: pb.SubscriptionAfterOfflineReq
	(*SubscriptionAfterOfflineResp)(nil),                            // 29: pb.SubscriptionAfterOfflineResp
	(*UserSubscription)(nil),                                        // 30: pb.UserSubscription
	(*UpsertUserSubscriptionReq)(nil),                               // 31: pb.UpsertUserSubscriptionReq
	(*UpsertUserSubscriptionResp)(nil),                              // 32: pb.UpsertUserSubscriptionResp
	(*DeleteUserSubscriptionReq)(nil),                               // 33: pb.DeleteUserSubscriptionReq
	(*DeleteUserSubscriptionResp)(nil),                              // 34: pb.DeleteUserSubscriptionResp
	(*ListSubscriptionSubscribersReq)(nil),                          // 35: pb.ListSubscriptionSubscribersReq
	(*ListSubscriptionSubscribersResp)(nil),                         // 36: pb.ListSubscriptionSubscribersResp
	nil,                                                             // 37: pb.GroupCreateReq.InfoMapEntry
	nil,                                                             // 38: pb.GroupCreateReq.ExtraMapEntry
	(*ListGroupSubscribersReq_Filter)(nil),                          // 39: pb.ListGroupSubscribersReq.Filter
	(*ListGroupSubscribersReq_Option)(nil),                          // 40: pb.ListGroupSubscribersReq.Option
	(*ListGroupSubscribersResp_Subscriber)(nil),                     // 41: pb.ListGroupSubscribersResp.Subscriber
	(*ListFriendApplyReq_Filter)(nil),                               // 42: pb.ListFriendApplyReq.Filter
	(*ListFriendApplyReq_Option)(nil),                               // 43: pb.ListFriendApplyReq.Option
	(*ListFriendApplyResp_FriendApply)(nil),                         // 44: pb.ListFriendApplyResp.FriendApply
	(*ListJoinedConversationsReq_Filter)(nil),                       // 45: pb.ListJoinedConversationsReq.Filter
	(*ListJoinedConversationsReq_Option)(nil),                       // 46: pb.ListJoinedConversationsReq.Option
	(*ListJoinedConversationsReq_Filter_SettingKV)(nil),             // 47: pb.ListJoinedConversationsReq.Filter.SettingKV
	(*ListJoinedConversationsResp_Conversation)(nil),                // 48: pb.ListJoinedConversationsResp.Conversation
	(*ListJoinedConversationsResp_Conversation_SelfMemberInfo)(nil), // 49: pb.ListJoinedConversationsResp.Conversation.SelfMemberInfo
	nil, // 50: pb.UserSubscription.ExtraMapEntry
	(*ListSubscriptionSubscribersReq_Filter)(nil),      // 51: pb.ListSubscriptionSubscribersReq.Filter
	(*ListSubscriptionSubscribersReq_Option)(nil),      // 52: pb.ListSubscriptionSubscribersReq.Option
	(*ListSubscriptionSubscribersResp_Subscriber)(nil), // 53: pb.ListSubscriptionSubscribersResp.Subscriber
	(*RequestHeader)(nil),                              // 54: pb.RequestHeader
	(*ResponseHeader)(nil),                             // 55: pb.ResponseHeader
	(ConversationType)(0),                              // 56: pb.ConversationType
	(ConversationSettingKey)(0),                        // 57: pb.ConversationSettingKey
}
var file_conversation_proto_depIdxs = []int32{
	54, // 0: pb.GroupCreateReq.header:type_name -> pb.RequestHeader
	37, // 1: pb.GroupCreateReq.infoMap:type_name -> pb.GroupCreateReq.InfoMapEntry
	38, // 2: pb.GroupCreateReq.extraMap:type_name -> pb.GroupCreateReq.ExtraMapEntry
	55, // 3: pb.GroupCreateResp.header:type_name -> pb.ResponseHeader
	54, // 4: pb.CountJoinGroupReq.header:type_name -> pb.RequestHeader
	55, // 5: pb.CountJoinGroupResp.header:type_name -> pb.ResponseHeader
	54, // 6: pb.CountCreateGroupReq.header:type_name -> pb.RequestHeader
	55, // 7: pb.CountCreateGroupResp.header:type_name -> pb.ResponseHeader
	54, // 8: pb.GroupSubscribeReq.header:type_name -> pb.RequestHeader
	55, // 9: pb.GroupSubscribeResp.header:type_name -> pb.ResponseHeader
	54, // 10: pb.ListGroupSubscribersReq.header:type_name -> pb.RequestHeader
	39, // 11: pb.ListGroupSubscribersReq.filter:type_name -> pb.ListGroupSubscribersReq.Filter
	40, // 12: pb.ListGroupSubscribersReq.option:type_name -> pb.ListGroupSubscribersReq.Option
	55, // 13: pb.ListGroupSubscribersResp.header:type_name -> pb.ResponseHeader
	41, // 14: pb.ListGroupSubscribersResp.subscriberList:type_name -> pb.ListGroupSubscribersResp.Subscriber
	54, // 15: pb.FriendApplyReq.header:type_name -> pb.RequestHeader
	55, // 16: pb.FriendApplyResp.header:type_name -> pb.ResponseHeader
	54, // 17: pb.FriendApplyHandleReq.header:type_name -> pb.RequestHeader
	55, // 18: pb.FriendApplyHandleResp.header:type_name -> pb.ResponseHeader
	54, // 19: pb.ListFriendApplyReq.header:type_name -> pb.RequestHeader
	42, // 20: pb.ListFriendApplyReq.filter:type_name -> pb.ListFriendApplyReq.Filter
	43, // 21: pb.ListFriendApplyReq.option:type_name -> pb.ListFriendApplyReq.Option
	55, // 22: pb.ListFriendApplyResp.header:type_name -> pb.ResponseHeader
	44, // 23: pb.ListFriendApplyResp.friendApplyList:type_name -> pb.ListFriendApplyResp.FriendApply
	54, // 24: pb.CountFriendReq.header:type_name -> pb.RequestHeader
	55, // 25: pb.CountFriendResp.header:type_name -> pb.ResponseHeader
	54, // 26: pb.ConversationSettingUpdateReq.header:type_name -> pb.RequestHeader
	55, // 27: pb.ConversationSettingUpdateResp.header:type_name -> pb.ResponseHeader
	54, // 28: pb.ListJoinedConversationsReq.header:type_name -> pb.RequestHeader
	56, // 29: pb.ListJoinedConversationsReq.conversationType:type_name -> pb.ConversationType
	45, // 30: pb.ListJoinedConversationsReq.filter:type_name -> pb.ListJoinedConversationsReq.Filter
	46, // 31: pb.ListJoinedConversationsReq.option:type_name -> pb.ListJoinedConversationsReq.Option
	55, // 32: pb.ListJoinedConversationsResp.header:type_name -> pb.ResponseHeader
	48, // 33: pb.ListJoinedConversationsResp.conversationList:type_name -> pb.ListJoinedConversationsResp.Conversation
	54, // 34: pb.SubscriptionSubscribeReq.header:type_name -> pb.RequestHeader
	55, // 35: pb.SubscriptionSubscribeResp.header:type_name -> pb.ResponseHeader
	54, // 36: pb.SubscriptionAfterOnlineReq.header:type_name -> pb.RequestHeader
	55, // 37: pb.SubscriptionAfterOnlineResp.header:type_name -> pb.ResponseHeader
	54, // 38: pb.SubscriptionAfterOfflineReq.header:type_name -> pb.RequestHeader
	55, // 39: pb.SubscriptionAfterOfflineResp.header:type_name -> pb.ResponseHeader
	50, // 40: pb.UserSubscription.extraMap:type_name -> pb.UserSubscription.ExtraMapEntry
	54, // 41: pb.UpsertUserSubscriptionReq.header:type_name -> pb.RequestHeader
	30, // 42: pb.UpsertUserSubscriptionReq.userSubscription:type_name -> pb.UserSubscription
	55, // 43: pb.UpsertUserSubscriptionResp.header:type_name -> pb.ResponseHeader
	54, // 44: pb.DeleteUserSubscriptionReq.header:type_name -> pb.RequestHeader
	55, // 45: pb.DeleteUserSubscriptionResp.header:type_name -> pb.ResponseHeader
	54, // 46: pb.ListSubscriptionSubscribersReq.header:type_name -> pb.RequestHeader
	51, // 47: pb.ListSubscriptionSubscribersReq.filter:type_name -> pb.ListSubscriptionSubscribersReq.Filter
	52, // 48: pb.ListSubscriptionSubscribersReq.option:type_name -> pb.ListSubscriptionSubscribersReq.Option
	55, // 49: pb.ListSubscriptionSubscribersResp.header:type_name -> pb.ResponseHeader
	53, // 50: pb.ListSubscriptionSubscribersResp.subscriberList:type_name -> pb.ListSubscriptionSubscribersResp.Subscriber
	0,  // 51: pb.ListFriendApplyReq.Filter.status:type_name -> pb.FriendApplyStatus
	47, // 52: pb.ListJoinedConversationsReq.Filter.settingList:type_name -> pb.ListJoinedConversationsReq.Filter.SettingKV
	57, // 53: pb.ListJoinedConversationsReq.Filter.SettingKV.key:type_name -> pb.ConversationSettingKey
	1,  // 54: pb.ListJoinedConversationsReq.Filter.SettingKV.operator:type_name -> pb.ListJoinedConversationsReq.Filter.SettingKV.Operator
	56, // 55: pb.ListJoinedConversationsResp.Conversation.conversationType:type_name -> pb.ConversationType
	49, // 56: pb.ListJoinedConversationsResp.Conversation.selfMemberInfo:type_name -> pb.ListJoinedConversationsResp.Conversation.SelfMemberInfo
	2,  // 57: pb.groupService.GroupCreate:input_type -> pb.GroupCreateReq
	4,  // 58: pb.groupService.CountJoinGroup:input_type -> pb.CountJoinGroupReq
	6,  // 59: pb.groupService.CountCreateGroup:input_type -> pb.CountCreateGroupReq
	8,  // 60: pb.groupService.GroupSubscribe:input_type -> pb.GroupSubscribeReq
	10, // 61: pb.groupService.ListGroupSubscribers:input_type -> pb.ListGroupSubscribersReq
	12, // 62: pb.friendService.FriendApply:input_type -> pb.FriendApplyReq
	14, // 63: pb.friendService.FriendApplyHandle:input_type -> pb.FriendApplyHandleReq
	16, // 64: pb.friendService.ListFriendApply:input_type -> pb.ListFriendApplyReq
	18, // 65: pb.friendService.CountFriend:input_type -> pb.CountFriendReq
	20, // 66: pb.conversationService.ConversationSettingUpdate:input_type -> pb.ConversationSettingUpdateReq
	22, // 67: pb.conversationService.ListJoinedConversations:input_type -> pb.ListJoinedConversationsReq
	24, // 68: pb.subscriptionService.SubscriptionSubscribe:input_type -> pb.SubscriptionSubscribeReq
	26, // 69: pb.subscriptionService.SubscriptionAfterOnline:input_type -> pb.SubscriptionAfterOnlineReq
	28, // 70: pb.subscriptionService.SubscriptionAfterOffline:input_type -> pb.SubscriptionAfterOfflineReq
	31, // 71: pb.subscriptionService.UpsertUserSubscription:input_type -> pb.UpsertUserSubscriptionReq
	33, // 72: pb.subscriptionService.DeleteUserSubscription:input_type -> pb.DeleteUserSubscriptionReq
	35, // 73: pb.subscriptionService.ListSubscriptionSubscribers:input_type -> pb.ListSubscriptionSubscribersReq
	3,  // 74: pb.groupService.GroupCreate:output_type -> pb.GroupCreateResp
	5,  // 75: pb.groupService.CountJoinGroup:output_type -> pb.CountJoinGroupResp
	7,  // 76: pb.groupService.CountCreateGroup:output_type -> pb.CountCreateGroupResp
	9,  // 77: pb.groupService.GroupSubscribe:output_type -> pb.GroupSubscribeResp
	11, // 78: pb.groupService.ListGroupSubscribers:output_type -> pb.ListGroupSubscribersResp
	13, // 79: pb.friendService.FriendApply:output_type -> pb.FriendApplyResp
	15, // 80: pb.friendService.FriendApplyHandle:output_type -> pb.FriendApplyHandleResp
	17, // 81: pb.friendService.ListFriendApply:output_type -> pb.ListFriendApplyResp
	19, // 82: pb.friendService.CountFriend:output_type -> pb.CountFriendResp
	21, // 83: pb.conversationService.ConversationSettingUpdate:output_type -> pb.ConversationSettingUpdateResp
	23, // 84: pb.conversationService.ListJoinedConversations:output_type -> pb.ListJoinedConversationsResp
	25, // 85: pb.subscriptionService.SubscriptionSubscribe:output_type -> pb.SubscriptionSubscribeResp
	27, // 86: pb.subscriptionService.SubscriptionAfterOnline:output_type -> pb.SubscriptionAfterOnlineResp
	29, // 87: pb.subscriptionService.SubscriptionAfterOffline:output_type -> pb.SubscriptionAfterOfflineResp
	32, // 88: pb.subscriptionService.UpsertUserSubscription:output_type -> pb.UpsertUserSubscriptionResp
	34, // 89: pb.subscriptionService.DeleteUserSubscription:output_type -> pb.DeleteUserSubscriptionResp
	36, // 90: pb.subscriptionService.ListSubscriptionSubscribers:output_type -> pb.ListSubscriptionSubscribersResp
	74, // [74:91] is the sub-list for method output_type
	57, // [57:74] is the sub-list for method input_type
	57, // [57:57] is the sub-list for extension type_name
	57, // [57:57] is the sub-list for extension extendee
	0,  // [0:57] is the sub-list for field type_name
}

func init() { file_conversation_proto_init() }
func file_conversation_proto_init() {
	if File_conversation_proto != nil {
		return
	}
	file_common_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_conversation_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupCreateReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupCreateResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountJoinGroupReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountJoinGroupResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountCreateGroupReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountCreateGroupResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupSubscribeReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GroupSubscribeResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListGroupSubscribersReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListGroupSubscribersResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FriendApplyReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FriendApplyResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FriendApplyHandleReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FriendApplyHandleResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFriendApplyReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFriendApplyResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountFriendReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CountFriendResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConversationSettingUpdateReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ConversationSettingUpdateResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionSubscribeReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionSubscribeResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionAfterOnlineReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionAfterOnlineResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionAfterOfflineReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*SubscriptionAfterOfflineResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UserSubscription); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpsertUserSubscriptionReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpsertUserSubscriptionResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserSubscriptionReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteUserSubscriptionResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSubscriptionSubscribersReq); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSubscriptionSubscribersResp); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListGroupSubscribersReq_Filter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListGroupSubscribersReq_Option); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListGroupSubscribersResp_Subscriber); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFriendApplyReq_Filter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFriendApplyReq_Option); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListFriendApplyResp_FriendApply); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsReq_Filter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsReq_Option); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsReq_Filter_SettingKV); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsResp_Conversation); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListJoinedConversationsResp_Conversation_SelfMemberInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSubscriptionSubscribersReq_Filter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSubscriptionSubscribersReq_Option); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_conversation_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListSubscriptionSubscribersResp_Subscriber); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_conversation_proto_msgTypes[0].OneofWrappers = []interface{}{}
	file_conversation_proto_msgTypes[10].OneofWrappers = []interface{}{}
	file_conversation_proto_msgTypes[12].OneofWrappers = []interface{}{}
	file_conversation_proto_msgTypes[40].OneofWrappers = []interface{}{}
	file_conversation_proto_msgTypes[46].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_conversation_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   52,
			NumExtensions: 0,
			NumServices:   4,
		},
		GoTypes:           file_conversation_proto_goTypes,
		DependencyIndexes: file_conversation_proto_depIdxs,
		EnumInfos:         file_conversation_proto_enumTypes,
		MessageInfos:      file_conversation_proto_msgTypes,
	}.Build()
	File_conversation_proto = out.File
	file_conversation_proto_rawDesc = nil
	file_conversation_proto_goTypes = nil
	file_conversation_proto_depIdxs = nil
}
