From a5e4c30a2cb30f1ee821f23b7c22d3d64496db18 Mon Sep 17 00:00:00 2001 From: zero <108243503+0xzer@users.noreply.github.com> Date: Sun, 9 Jul 2023 20:35:29 +0300 Subject: [PATCH] Add conversation thumbnail fetching and other library updates --- libgm/binary/conversations.pb.go | 1673 ++++++++++++++------------ libgm/binary/messages.pb.go | 93 +- libgm/binary/raw/conversations.proto | 16 +- libgm/binary/raw/messages.proto | 2 + libgm/binary/raw/responses.proto | 19 +- libgm/binary/responses.pb.go | 637 ++++++---- libgm/conversations.go | 50 + libgm/routes/conversations.go | 18 + libgm/routes/mapped.go | 21 +- 9 files changed, 1465 insertions(+), 1064 deletions(-) diff --git a/libgm/binary/conversations.pb.go b/libgm/binary/conversations.pb.go index a39b9a1..d46bbf4 100644 --- a/libgm/binary/conversations.pb.go +++ b/libgm/binary/conversations.pb.go @@ -20,6 +20,55 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type ConversationType int32 + +const ( + ConversationType_UNKNOWN_CONVERSATION_TYPE ConversationType = 0 + ConversationType_SMS ConversationType = 1 + ConversationType_RCS ConversationType = 2 +) + +// Enum value maps for ConversationType. +var ( + ConversationType_name = map[int32]string{ + 0: "UNKNOWN_CONVERSATION_TYPE", + 1: "SMS", + 2: "RCS", + } + ConversationType_value = map[string]int32{ + "UNKNOWN_CONVERSATION_TYPE": 0, + "SMS": 1, + "RCS": 2, + } +) + +func (x ConversationType) Enum() *ConversationType { + p := new(ConversationType) + *p = x + return p +} + +func (x ConversationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConversationType) Descriptor() protoreflect.EnumDescriptor { + return file_conversations_proto_enumTypes[0].Descriptor() +} + +func (ConversationType) Type() protoreflect.EnumType { + return &file_conversations_proto_enumTypes[0] +} + +func (x ConversationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConversationType.Descriptor instead. +func (ConversationType) EnumDescriptor() ([]byte, []int) { + return file_conversations_proto_rawDescGZIP(), []int{0} +} + type MessageStatusType int32 const ( @@ -273,11 +322,11 @@ func (x MessageStatusType) String() string { } func (MessageStatusType) Descriptor() protoreflect.EnumDescriptor { - return file_conversations_proto_enumTypes[0].Descriptor() + return file_conversations_proto_enumTypes[1].Descriptor() } func (MessageStatusType) Type() protoreflect.EnumType { - return &file_conversations_proto_enumTypes[0] + return &file_conversations_proto_enumTypes[1] } func (x MessageStatusType) Number() protoreflect.EnumNumber { @@ -286,7 +335,7 @@ func (x MessageStatusType) Number() protoreflect.EnumNumber { // Deprecated: Use MessageStatusType.Descriptor instead. func (MessageStatusType) EnumDescriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{0} + return file_conversations_proto_rawDescGZIP(), []int{1} } type ConversationStatus int32 @@ -325,11 +374,11 @@ func (x ConversationStatus) String() string { } func (ConversationStatus) Descriptor() protoreflect.EnumDescriptor { - return file_conversations_proto_enumTypes[1].Descriptor() + return file_conversations_proto_enumTypes[2].Descriptor() } func (ConversationStatus) Type() protoreflect.EnumType { - return &file_conversations_proto_enumTypes[1] + return &file_conversations_proto_enumTypes[2] } func (x ConversationStatus) Number() protoreflect.EnumNumber { @@ -338,7 +387,7 @@ func (x ConversationStatus) Number() protoreflect.EnumNumber { // Deprecated: Use ConversationStatus.Descriptor instead. func (ConversationStatus) EnumDescriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{1} + return file_conversations_proto_rawDescGZIP(), []int{2} } type ConversationActionStatus int32 @@ -377,11 +426,11 @@ func (x ConversationActionStatus) String() string { } func (ConversationActionStatus) Descriptor() protoreflect.EnumDescriptor { - return file_conversations_proto_enumTypes[2].Descriptor() + return file_conversations_proto_enumTypes[3].Descriptor() } func (ConversationActionStatus) Type() protoreflect.EnumType { - return &file_conversations_proto_enumTypes[2] + return &file_conversations_proto_enumTypes[3] } func (x ConversationActionStatus) Number() protoreflect.EnumNumber { @@ -390,7 +439,7 @@ func (x ConversationActionStatus) Number() protoreflect.EnumNumber { // Deprecated: Use ConversationActionStatus.Descriptor instead. func (ConversationActionStatus) EnumDescriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{2} + return file_conversations_proto_rawDescGZIP(), []int{3} } type ConversationMuteStatus int32 @@ -423,11 +472,11 @@ func (x ConversationMuteStatus) String() string { } func (ConversationMuteStatus) Descriptor() protoreflect.EnumDescriptor { - return file_conversations_proto_enumTypes[3].Descriptor() + return file_conversations_proto_enumTypes[4].Descriptor() } func (ConversationMuteStatus) Type() protoreflect.EnumType { - return &file_conversations_proto_enumTypes[3] + return &file_conversations_proto_enumTypes[4] } func (x ConversationMuteStatus) Number() protoreflect.EnumNumber { @@ -436,7 +485,7 @@ func (x ConversationMuteStatus) Number() protoreflect.EnumNumber { // Deprecated: Use ConversationMuteStatus.Descriptor instead. func (ConversationMuteStatus) EnumDescriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{3} + return file_conversations_proto_rawDescGZIP(), []int{4} } type ConvUpdateTypes int32 @@ -481,11 +530,11 @@ func (x ConvUpdateTypes) String() string { } func (ConvUpdateTypes) Descriptor() protoreflect.EnumDescriptor { - return file_conversations_proto_enumTypes[4].Descriptor() + return file_conversations_proto_enumTypes[5].Descriptor() } func (ConvUpdateTypes) Type() protoreflect.EnumType { - return &file_conversations_proto_enumTypes[4] + return &file_conversations_proto_enumTypes[5] } func (x ConvUpdateTypes) Number() protoreflect.EnumNumber { @@ -494,7 +543,7 @@ func (x ConvUpdateTypes) Number() protoreflect.EnumNumber { // Deprecated: Use ConvUpdateTypes.Descriptor instead. func (ConvUpdateTypes) EnumDescriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{4} + return file_conversations_proto_rawDescGZIP(), []int{5} } type MediaFormats int32 @@ -611,11 +660,11 @@ func (x MediaFormats) String() string { } func (MediaFormats) Descriptor() protoreflect.EnumDescriptor { - return file_conversations_proto_enumTypes[5].Descriptor() + return file_conversations_proto_enumTypes[6].Descriptor() } func (MediaFormats) Type() protoreflect.EnumType { - return &file_conversations_proto_enumTypes[5] + return &file_conversations_proto_enumTypes[6] } func (x MediaFormats) Number() protoreflect.EnumNumber { @@ -624,7 +673,54 @@ func (x MediaFormats) Number() protoreflect.EnumNumber { // Deprecated: Use MediaFormats.Descriptor instead. func (MediaFormats) EnumDescriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{5} + return file_conversations_proto_rawDescGZIP(), []int{6} +} + +type GetParticipantThumbnailPayload struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` +} + +func (x *GetParticipantThumbnailPayload) Reset() { + *x = GetParticipantThumbnailPayload{} + if protoimpl.UnsafeEnabled { + mi := &file_conversations_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetParticipantThumbnailPayload) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetParticipantThumbnailPayload) ProtoMessage() {} + +func (x *GetParticipantThumbnailPayload) ProtoReflect() protoreflect.Message { + mi := &file_conversations_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 GetParticipantThumbnailPayload.ProtoReflect.Descriptor instead. +func (*GetParticipantThumbnailPayload) Descriptor() ([]byte, []int) { + return file_conversations_proto_rawDescGZIP(), []int{0} +} + +func (x *GetParticipantThumbnailPayload) GetConversationID() string { + if x != nil { + return x.ConversationID + } + return "" } type ResendMessagePayload struct { @@ -638,7 +734,7 @@ type ResendMessagePayload struct { func (x *ResendMessagePayload) Reset() { *x = ResendMessagePayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[0] + mi := &file_conversations_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -651,7 +747,7 @@ func (x *ResendMessagePayload) String() string { func (*ResendMessagePayload) ProtoMessage() {} func (x *ResendMessagePayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[0] + mi := &file_conversations_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -664,7 +760,7 @@ func (x *ResendMessagePayload) ProtoReflect() protoreflect.Message { // Deprecated: Use ResendMessagePayload.ProtoReflect.Descriptor instead. func (*ResendMessagePayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{0} + return file_conversations_proto_rawDescGZIP(), []int{1} } func (x *ResendMessagePayload) GetMessageID() string { @@ -685,7 +781,7 @@ type ConversationTypePayload struct { func (x *ConversationTypePayload) Reset() { *x = ConversationTypePayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[1] + mi := &file_conversations_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -698,7 +794,7 @@ func (x *ConversationTypePayload) String() string { func (*ConversationTypePayload) ProtoMessage() {} func (x *ConversationTypePayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[1] + mi := &file_conversations_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -711,7 +807,7 @@ func (x *ConversationTypePayload) ProtoReflect() protoreflect.Message { // Deprecated: Use ConversationTypePayload.ProtoReflect.Descriptor instead. func (*ConversationTypePayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{1} + return file_conversations_proto_rawDescGZIP(), []int{2} } func (x *ConversationTypePayload) GetConversationID() string { @@ -735,7 +831,7 @@ type UpdateConversationPayload struct { func (x *UpdateConversationPayload) Reset() { *x = UpdateConversationPayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[2] + mi := &file_conversations_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -748,7 +844,7 @@ func (x *UpdateConversationPayload) String() string { func (*UpdateConversationPayload) ProtoMessage() {} func (x *UpdateConversationPayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[2] + mi := &file_conversations_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -761,7 +857,7 @@ func (x *UpdateConversationPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateConversationPayload.ProtoReflect.Descriptor instead. func (*UpdateConversationPayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{2} + return file_conversations_proto_rawDescGZIP(), []int{3} } func (x *UpdateConversationPayload) GetData() *UpdateConversationData { @@ -803,7 +899,7 @@ type ConversationAction5 struct { func (x *ConversationAction5) Reset() { *x = ConversationAction5{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[3] + mi := &file_conversations_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -816,7 +912,7 @@ func (x *ConversationAction5) String() string { func (*ConversationAction5) ProtoMessage() {} func (x *ConversationAction5) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[3] + mi := &file_conversations_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -829,7 +925,7 @@ func (x *ConversationAction5) ProtoReflect() protoreflect.Message { // Deprecated: Use ConversationAction5.ProtoReflect.Descriptor instead. func (*ConversationAction5) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{3} + return file_conversations_proto_rawDescGZIP(), []int{4} } func (x *ConversationAction5) GetField2() bool { @@ -855,7 +951,7 @@ type UpdateConversationData struct { func (x *UpdateConversationData) Reset() { *x = UpdateConversationData{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[4] + mi := &file_conversations_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -868,7 +964,7 @@ func (x *UpdateConversationData) String() string { func (*UpdateConversationData) ProtoMessage() {} func (x *UpdateConversationData) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[4] + mi := &file_conversations_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -881,7 +977,7 @@ func (x *UpdateConversationData) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateConversationData.ProtoReflect.Descriptor instead. func (*UpdateConversationData) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{4} + return file_conversations_proto_rawDescGZIP(), []int{5} } func (x *UpdateConversationData) GetConversationID() string { @@ -939,7 +1035,7 @@ type DeleteMessagePayload struct { func (x *DeleteMessagePayload) Reset() { *x = DeleteMessagePayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[5] + mi := &file_conversations_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -952,7 +1048,7 @@ func (x *DeleteMessagePayload) String() string { func (*DeleteMessagePayload) ProtoMessage() {} func (x *DeleteMessagePayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[5] + mi := &file_conversations_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -965,7 +1061,7 @@ func (x *DeleteMessagePayload) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMessagePayload.ProtoReflect.Descriptor instead. func (*DeleteMessagePayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{5} + return file_conversations_proto_rawDescGZIP(), []int{6} } func (x *DeleteMessagePayload) GetMessageID() string { @@ -990,7 +1086,7 @@ type SendMessagePayload struct { func (x *SendMessagePayload) Reset() { *x = SendMessagePayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[6] + mi := &file_conversations_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1003,7 +1099,7 @@ func (x *SendMessagePayload) String() string { func (*SendMessagePayload) ProtoMessage() {} func (x *SendMessagePayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[6] + mi := &file_conversations_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1016,7 +1112,7 @@ func (x *SendMessagePayload) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessagePayload.ProtoReflect.Descriptor instead. func (*SendMessagePayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{6} + return file_conversations_proto_rawDescGZIP(), []int{7} } func (x *SendMessagePayload) GetConversationID() string { @@ -1065,7 +1161,7 @@ type ReplyPayload struct { func (x *ReplyPayload) Reset() { *x = ReplyPayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[7] + mi := &file_conversations_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1078,7 +1174,7 @@ func (x *ReplyPayload) String() string { func (*ReplyPayload) ProtoMessage() {} func (x *ReplyPayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[7] + mi := &file_conversations_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1091,7 +1187,7 @@ func (x *ReplyPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplyPayload.ProtoReflect.Descriptor instead. func (*ReplyPayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{7} + return file_conversations_proto_rawDescGZIP(), []int{8} } func (x *ReplyPayload) GetMessageID() string { @@ -1117,7 +1213,7 @@ type MessagePayload struct { func (x *MessagePayload) Reset() { *x = MessagePayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[8] + mi := &file_conversations_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1130,7 +1226,7 @@ func (x *MessagePayload) String() string { func (*MessagePayload) ProtoMessage() {} func (x *MessagePayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[8] + mi := &file_conversations_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1143,7 +1239,7 @@ func (x *MessagePayload) ProtoReflect() protoreflect.Message { // Deprecated: Use MessagePayload.ProtoReflect.Descriptor instead. func (*MessagePayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{8} + return file_conversations_proto_rawDescGZIP(), []int{9} } func (x *MessagePayload) GetTmpID() string { @@ -1199,7 +1295,7 @@ type MessagePayloadContent struct { func (x *MessagePayloadContent) Reset() { *x = MessagePayloadContent{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[9] + mi := &file_conversations_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1212,7 +1308,7 @@ func (x *MessagePayloadContent) String() string { func (*MessagePayloadContent) ProtoMessage() {} func (x *MessagePayloadContent) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[9] + mi := &file_conversations_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1225,7 +1321,7 @@ func (x *MessagePayloadContent) ProtoReflect() protoreflect.Message { // Deprecated: Use MessagePayloadContent.ProtoReflect.Descriptor instead. func (*MessagePayloadContent) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{9} + return file_conversations_proto_rawDescGZIP(), []int{10} } func (x *MessagePayloadContent) GetMessageContent() *MessageContent { @@ -1246,7 +1342,7 @@ type OpenConversationPayload struct { func (x *OpenConversationPayload) Reset() { *x = OpenConversationPayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[10] + mi := &file_conversations_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1259,7 +1355,7 @@ func (x *OpenConversationPayload) String() string { func (*OpenConversationPayload) ProtoMessage() {} func (x *OpenConversationPayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[10] + mi := &file_conversations_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,7 +1368,7 @@ func (x *OpenConversationPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use OpenConversationPayload.ProtoReflect.Descriptor instead. func (*OpenConversationPayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{10} + return file_conversations_proto_rawDescGZIP(), []int{11} } func (x *OpenConversationPayload) GetConversationID() string { @@ -1293,7 +1389,7 @@ type PrepareOpenConversationPayload struct { func (x *PrepareOpenConversationPayload) Reset() { *x = PrepareOpenConversationPayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[11] + mi := &file_conversations_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1306,7 +1402,7 @@ func (x *PrepareOpenConversationPayload) String() string { func (*PrepareOpenConversationPayload) ProtoMessage() {} func (x *PrepareOpenConversationPayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[11] + mi := &file_conversations_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1319,7 +1415,7 @@ func (x *PrepareOpenConversationPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use PrepareOpenConversationPayload.ProtoReflect.Descriptor instead. func (*PrepareOpenConversationPayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{11} + return file_conversations_proto_rawDescGZIP(), []int{12} } func (x *PrepareOpenConversationPayload) GetField2() int64 { @@ -1342,7 +1438,7 @@ type FetchConversationMessagesPayload struct { func (x *FetchConversationMessagesPayload) Reset() { *x = FetchConversationMessagesPayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[12] + mi := &file_conversations_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1355,7 +1451,7 @@ func (x *FetchConversationMessagesPayload) String() string { func (*FetchConversationMessagesPayload) ProtoMessage() {} func (x *FetchConversationMessagesPayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[12] + mi := &file_conversations_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1368,7 +1464,7 @@ func (x *FetchConversationMessagesPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use FetchConversationMessagesPayload.ProtoReflect.Descriptor instead. func (*FetchConversationMessagesPayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{12} + return file_conversations_proto_rawDescGZIP(), []int{13} } func (x *FetchConversationMessagesPayload) GetConversationID() string { @@ -1404,7 +1500,7 @@ type ListCoversationsPayload struct { func (x *ListCoversationsPayload) Reset() { *x = ListCoversationsPayload{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[13] + mi := &file_conversations_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1417,7 +1513,7 @@ func (x *ListCoversationsPayload) String() string { func (*ListCoversationsPayload) ProtoMessage() {} func (x *ListCoversationsPayload) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[13] + mi := &file_conversations_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1430,7 +1526,7 @@ func (x *ListCoversationsPayload) ProtoReflect() protoreflect.Message { // Deprecated: Use ListCoversationsPayload.ProtoReflect.Descriptor instead. func (*ListCoversationsPayload) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{13} + return file_conversations_proto_rawDescGZIP(), []int{14} } func (x *ListCoversationsPayload) GetCount() int64 { @@ -1459,7 +1555,7 @@ type Cursor struct { func (x *Cursor) Reset() { *x = Cursor{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[14] + mi := &file_conversations_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1472,7 +1568,7 @@ func (x *Cursor) String() string { func (*Cursor) ProtoMessage() {} func (x *Cursor) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[14] + mi := &file_conversations_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1485,7 +1581,7 @@ func (x *Cursor) ProtoReflect() protoreflect.Message { // Deprecated: Use Cursor.ProtoReflect.Descriptor instead. func (*Cursor) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{14} + return file_conversations_proto_rawDescGZIP(), []int{15} } func (x *Cursor) GetSomeStr() string { @@ -1523,7 +1619,7 @@ type Message struct { func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[15] + mi := &file_conversations_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1536,7 +1632,7 @@ func (x *Message) String() string { func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[15] + mi := &file_conversations_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1549,7 +1645,7 @@ func (x *Message) ProtoReflect() protoreflect.Message { // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{15} + return file_conversations_proto_rawDescGZIP(), []int{16} } func (x *Message) GetMessageID() string { @@ -1642,7 +1738,7 @@ type ReplyMessage struct { func (x *ReplyMessage) Reset() { *x = ReplyMessage{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[16] + mi := &file_conversations_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1655,7 +1751,7 @@ func (x *ReplyMessage) String() string { func (*ReplyMessage) ProtoMessage() {} func (x *ReplyMessage) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[16] + mi := &file_conversations_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1668,7 +1764,7 @@ func (x *ReplyMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplyMessage.ProtoReflect.Descriptor instead. func (*ReplyMessage) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{16} + return file_conversations_proto_rawDescGZIP(), []int{17} } func (x *ReplyMessage) GetMessageID() string { @@ -1701,7 +1797,7 @@ type ReplyMessageData struct { func (x *ReplyMessageData) Reset() { *x = ReplyMessageData{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[17] + mi := &file_conversations_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1714,7 +1810,7 @@ func (x *ReplyMessageData) String() string { func (*ReplyMessageData) ProtoMessage() {} func (x *ReplyMessageData) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[17] + mi := &file_conversations_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1727,7 +1823,7 @@ func (x *ReplyMessageData) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplyMessageData.ProtoReflect.Descriptor instead. func (*ReplyMessageData) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{17} + return file_conversations_proto_rawDescGZIP(), []int{18} } type MessageInfo struct { @@ -1746,7 +1842,7 @@ type MessageInfo struct { func (x *MessageInfo) Reset() { *x = MessageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[18] + mi := &file_conversations_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1759,7 +1855,7 @@ func (x *MessageInfo) String() string { func (*MessageInfo) ProtoMessage() {} func (x *MessageInfo) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[18] + mi := &file_conversations_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1772,7 +1868,7 @@ func (x *MessageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageInfo.ProtoReflect.Descriptor instead. func (*MessageInfo) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{18} + return file_conversations_proto_rawDescGZIP(), []int{19} } func (x *MessageInfo) GetActionMessageID() string { @@ -1838,7 +1934,7 @@ type MediaContent struct { func (x *MediaContent) Reset() { *x = MediaContent{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[19] + mi := &file_conversations_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1851,7 +1947,7 @@ func (x *MediaContent) String() string { func (*MediaContent) ProtoMessage() {} func (x *MediaContent) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[19] + mi := &file_conversations_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1864,7 +1960,7 @@ func (x *MediaContent) ProtoReflect() protoreflect.Message { // Deprecated: Use MediaContent.ProtoReflect.Descriptor instead. func (*MediaContent) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{19} + return file_conversations_proto_rawDescGZIP(), []int{20} } func (x *MediaContent) GetFormat() MediaFormats { @@ -1942,7 +2038,7 @@ type Pixels struct { func (x *Pixels) Reset() { *x = Pixels{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[20] + mi := &file_conversations_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1955,7 +2051,7 @@ func (x *Pixels) String() string { func (*Pixels) ProtoMessage() {} func (x *Pixels) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[20] + mi := &file_conversations_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1968,7 +2064,7 @@ func (x *Pixels) ProtoReflect() protoreflect.Message { // Deprecated: Use Pixels.ProtoReflect.Descriptor instead. func (*Pixels) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{20} + return file_conversations_proto_rawDescGZIP(), []int{21} } func (x *Pixels) GetWidth() int64 { @@ -1996,7 +2092,7 @@ type MessageContent struct { func (x *MessageContent) Reset() { *x = MessageContent{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[21] + mi := &file_conversations_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2009,7 +2105,7 @@ func (x *MessageContent) String() string { func (*MessageContent) ProtoMessage() {} func (x *MessageContent) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[21] + mi := &file_conversations_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2022,7 +2118,7 @@ func (x *MessageContent) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageContent.ProtoReflect.Descriptor instead. func (*MessageContent) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{21} + return file_conversations_proto_rawDescGZIP(), []int{22} } func (x *MessageContent) GetContent() string { @@ -2043,7 +2139,7 @@ type MsgType struct { func (x *MsgType) Reset() { *x = MsgType{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[22] + mi := &file_conversations_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2056,7 +2152,7 @@ func (x *MsgType) String() string { func (*MsgType) ProtoMessage() {} func (x *MsgType) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[22] + mi := &file_conversations_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2069,7 +2165,7 @@ func (x *MsgType) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgType.ProtoReflect.Descriptor instead. func (*MsgType) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{22} + return file_conversations_proto_rawDescGZIP(), []int{23} } func (x *MsgType) GetType() int64 { @@ -2094,7 +2190,7 @@ type MessageStatus struct { func (x *MessageStatus) Reset() { *x = MessageStatus{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[23] + mi := &file_conversations_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2107,7 +2203,7 @@ func (x *MessageStatus) String() string { func (*MessageStatus) ProtoMessage() {} func (x *MessageStatus) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[23] + mi := &file_conversations_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2120,7 +2216,7 @@ func (x *MessageStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageStatus.ProtoReflect.Descriptor instead. func (*MessageStatus) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{23} + return file_conversations_proto_rawDescGZIP(), []int{24} } func (x *MessageStatus) GetStatus() MessageStatusType { @@ -2169,7 +2265,7 @@ type Conversations struct { func (x *Conversations) Reset() { *x = Conversations{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[24] + mi := &file_conversations_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2182,7 +2278,7 @@ func (x *Conversations) String() string { func (*Conversations) ProtoMessage() {} func (x *Conversations) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[24] + mi := &file_conversations_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2195,7 +2291,7 @@ func (x *Conversations) ProtoReflect() protoreflect.Message { // Deprecated: Use Conversations.ProtoReflect.Descriptor instead. func (*Conversations) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{24} + return file_conversations_proto_rawDescGZIP(), []int{25} } func (x *Conversations) GetConversations() []*Conversation { @@ -2210,27 +2306,27 @@ type Conversation struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - LatestMessage *LatestMessage `protobuf:"bytes,4,opt,name=latestMessage,proto3" json:"latestMessage,omitempty"` - TimestampMs int64 `protobuf:"varint,5,opt,name=timestampMs,proto3" json:"timestampMs,omitempty"` - IsGroupChat bool `protobuf:"varint,10,opt,name=isGroupChat,proto3" json:"isGroupChat,omitempty"` // not certain - SelfParticipantID string `protobuf:"bytes,11,opt,name=selfParticipantID,proto3" json:"selfParticipantID,omitempty"` + ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + LatestMessage *LatestMessage `protobuf:"bytes,4,opt,name=latestMessage,proto3" json:"latestMessage,omitempty"` + LastMessageTimestamp int64 `protobuf:"varint,5,opt,name=lastMessageTimestamp,proto3" json:"lastMessageTimestamp,omitempty"` + IsGroupChat bool `protobuf:"varint,10,opt,name=isGroupChat,proto3" json:"isGroupChat,omitempty"` // not certain + SelfParticipantID string `protobuf:"bytes,11,opt,name=selfParticipantID,proto3" json:"selfParticipantID,omitempty"` // bool bool1 = 13; - Status ConvUpdateTypes `protobuf:"varint,12,opt,name=status,proto3,enum=conversations.ConvUpdateTypes" json:"status,omitempty"` - AvatarHexColor string `protobuf:"bytes,15,opt,name=avatarHexColor,proto3" json:"avatarHexColor,omitempty"` - LatestMessageID string `protobuf:"bytes,17,opt,name=latestMessageID,proto3" json:"latestMessageID,omitempty"` - Participants []*Participant `protobuf:"bytes,20,rep,name=participants,proto3" json:"participants,omitempty"` - OtherParticipants []string `protobuf:"bytes,21,rep,name=otherParticipants,proto3" json:"otherParticipants,omitempty"` // participant ids excluding me - Type int64 `protobuf:"varint,22,opt,name=type,proto3" json:"type,omitempty"` - SubType bool `protobuf:"varint,24,opt,name=subType,proto3" json:"subType,omitempty"` - ThirdType bool `protobuf:"varint,29,opt,name=thirdType,proto3" json:"thirdType,omitempty"` + Status ConvUpdateTypes `protobuf:"varint,12,opt,name=status,proto3,enum=conversations.ConvUpdateTypes" json:"status,omitempty"` + AvatarHexColor string `protobuf:"bytes,15,opt,name=avatarHexColor,proto3" json:"avatarHexColor,omitempty"` + LatestMessageID string `protobuf:"bytes,17,opt,name=latestMessageID,proto3" json:"latestMessageID,omitempty"` + Participants []*Participant `protobuf:"bytes,20,rep,name=participants,proto3" json:"participants,omitempty"` + OtherParticipants []string `protobuf:"bytes,21,rep,name=otherParticipants,proto3" json:"otherParticipants,omitempty"` // participant ids excluding me + Type ConversationType `protobuf:"varint,22,opt,name=type,proto3,enum=conversations.ConversationType" json:"type,omitempty"` + SubType bool `protobuf:"varint,24,opt,name=subType,proto3" json:"subType,omitempty"` + ThirdType bool `protobuf:"varint,29,opt,name=thirdType,proto3" json:"thirdType,omitempty"` } func (x *Conversation) Reset() { *x = Conversation{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[25] + mi := &file_conversations_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2243,7 +2339,7 @@ func (x *Conversation) String() string { func (*Conversation) ProtoMessage() {} func (x *Conversation) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[25] + mi := &file_conversations_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2256,7 +2352,7 @@ func (x *Conversation) ProtoReflect() protoreflect.Message { // Deprecated: Use Conversation.ProtoReflect.Descriptor instead. func (*Conversation) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{25} + return file_conversations_proto_rawDescGZIP(), []int{26} } func (x *Conversation) GetConversationID() string { @@ -2280,9 +2376,9 @@ func (x *Conversation) GetLatestMessage() *LatestMessage { return nil } -func (x *Conversation) GetTimestampMs() int64 { +func (x *Conversation) GetLastMessageTimestamp() int64 { if x != nil { - return x.TimestampMs + return x.LastMessageTimestamp } return 0 } @@ -2336,11 +2432,11 @@ func (x *Conversation) GetOtherParticipants() []string { return nil } -func (x *Conversation) GetType() int64 { +func (x *Conversation) GetType() ConversationType { if x != nil { return x.Type } - return 0 + return ConversationType_UNKNOWN_CONVERSATION_TYPE } func (x *Conversation) GetSubType() bool { @@ -2379,7 +2475,7 @@ type Participant struct { func (x *Participant) Reset() { *x = Participant{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[26] + mi := &file_conversations_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2392,7 +2488,7 @@ func (x *Participant) String() string { func (*Participant) ProtoMessage() {} func (x *Participant) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[26] + mi := &file_conversations_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2405,7 +2501,7 @@ func (x *Participant) ProtoReflect() protoreflect.Message { // Deprecated: Use Participant.ProtoReflect.Descriptor instead. func (*Participant) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{26} + return file_conversations_proto_rawDescGZIP(), []int{27} } func (x *Participant) GetID() *SmallInfo { @@ -2505,7 +2601,7 @@ type SmallInfo struct { func (x *SmallInfo) Reset() { *x = SmallInfo{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[27] + mi := &file_conversations_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2518,7 +2614,7 @@ func (x *SmallInfo) String() string { func (*SmallInfo) ProtoMessage() {} func (x *SmallInfo) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[27] + mi := &file_conversations_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2531,7 +2627,7 @@ func (x *SmallInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SmallInfo.ProtoReflect.Descriptor instead. func (*SmallInfo) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{27} + return file_conversations_proto_rawDescGZIP(), []int{28} } func (x *SmallInfo) GetType() int64 { @@ -2569,7 +2665,7 @@ type LatestMessage struct { func (x *LatestMessage) Reset() { *x = LatestMessage{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[28] + mi := &file_conversations_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2582,7 +2678,7 @@ func (x *LatestMessage) String() string { func (*LatestMessage) ProtoMessage() {} func (x *LatestMessage) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[28] + mi := &file_conversations_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2595,7 +2691,7 @@ func (x *LatestMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use LatestMessage.ProtoReflect.Descriptor instead. func (*LatestMessage) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{28} + return file_conversations_proto_rawDescGZIP(), []int{29} } func (x *LatestMessage) GetDisplayContent() string { @@ -2638,7 +2734,7 @@ type LatestMessageStatus struct { func (x *LatestMessageStatus) Reset() { *x = LatestMessageStatus{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[29] + mi := &file_conversations_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2651,7 +2747,7 @@ func (x *LatestMessageStatus) String() string { func (*LatestMessageStatus) ProtoMessage() {} func (x *LatestMessageStatus) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[29] + mi := &file_conversations_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2664,7 +2760,7 @@ func (x *LatestMessageStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use LatestMessageStatus.ProtoReflect.Descriptor instead. func (*LatestMessageStatus) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{29} + return file_conversations_proto_rawDescGZIP(), []int{30} } func (x *LatestMessageStatus) GetStatus2() int64 { @@ -2686,13 +2782,13 @@ type Muted struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IsMuted bool `protobuf:"varint,1,opt,name=isMuted,proto3" json:"isMuted,omitempty"` + IsMuted int64 `protobuf:"varint,1,opt,name=isMuted,proto3" json:"isMuted,omitempty"` } func (x *Muted) Reset() { *x = Muted{} if protoimpl.UnsafeEnabled { - mi := &file_conversations_proto_msgTypes[30] + mi := &file_conversations_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2705,7 +2801,7 @@ func (x *Muted) String() string { func (*Muted) ProtoMessage() {} func (x *Muted) ProtoReflect() protoreflect.Message { - mi := &file_conversations_proto_msgTypes[30] + mi := &file_conversations_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2718,14 +2814,14 @@ func (x *Muted) ProtoReflect() protoreflect.Message { // Deprecated: Use Muted.ProtoReflect.Descriptor instead. func (*Muted) Descriptor() ([]byte, []int) { - return file_conversations_proto_rawDescGZIP(), []int{30} + return file_conversations_proto_rawDescGZIP(), []int{31} } -func (x *Muted) GetIsMuted() bool { +func (x *Muted) GetIsMuted() int64 { if x != nil { return x.IsMuted } - return false + return 0 } var File_conversations_proto protoreflect.FileDescriptor @@ -2734,556 +2830,568 @@ var file_conversations_proto_rawDesc = []byte{ 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x0f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x34, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x17, 0x43, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfd, - 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x39, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x3c, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x48, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x34, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfd, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x3f, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x22, 0x2d, - 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0xc2, 0x01, - 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, - 0x04, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x07, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x34, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, - 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, - 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x6d, 0x70, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x31, - 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x2c, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, - 0xae, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x5a, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x15, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, - 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, - 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6d, 0x70, 0x49, - 0x44, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, - 0x22, 0x5e, 0x0a, 0x15, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x22, 0x41, 0x0a, 0x17, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x38, 0x0a, 0x1e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x4f, 0x70, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x52, + 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x22, 0x2d, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x35, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0xc2, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x04, + 0x6d, 0x75, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x49, 0x44, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x69, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2c, 0x0a, 0x0c, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, + 0x49, 0x44, 0x12, 0x5a, 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x26, + 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x32, 0x22, 0x5e, 0x0a, 0x15, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x41, 0x0a, 0x17, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, - 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0x8f, 0x01, - 0x0a, 0x20, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, - 0x47, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x34, 0x22, 0x42, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, - 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0xc6, 0x03, 0x0a, - 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, - 0x70, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x4b, 0x0a, 0x10, - 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, - 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, - 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x47, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x41, 0x0a, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc6, 0x02, 0x0a, 0x0c, - 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x06, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x64, - 0x69, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, - 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x69, - 0x78, 0x65, 0x6c, 0x73, 0x52, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x49, 0x44, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, - 0x64, 0x69, 0x61, 0x49, 0x44, 0x32, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, - 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, - 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x4b, 0x65, 0x79, 0x32, 0x22, 0x36, 0x0a, 0x06, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, - 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2a, 0x0a, 0x0e, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x38, 0x0a, + 0x1e, 0x50, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x6e, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x32, 0x22, 0x8f, 0x01, 0x0a, 0x20, 0x46, 0x65, 0x74, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x47, 0x0a, 0x17, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x34, 0x22, 0x42, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x6f, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x43, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, + 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0xc6, 0x03, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, + 0x12, 0x30, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6d, 0x70, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, + 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x6d, + 0x65, 0x49, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0xa1, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x12, 0x26, + 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x4b, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, + 0x44, 0x12, 0x47, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x0c, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x06, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc6, 0x02, 0x0a, 0x0c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x52, 0x06, + 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x32, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x49, 0x44, 0x32, + 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, + 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, + 0x64, 0x65, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x32, 0x22, 0x36, + 0x0a, 0x06, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, + 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x2a, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, + 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, + 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0xf7, 0x04, 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, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, + 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x68, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x6c, 0x66, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, + 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, + 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, + 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, + 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, + 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, + 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x74, 0x68, + 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x33, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x63, + 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x81, 0x03, 0x0a, 0x0b, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x02, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, 0x73, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, + 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x12, 0x2a, 0x0a, 0x05, 0x6d, + 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x75, 0x74, 0x65, 0x64, + 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, + 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x44, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, + 0x02, 0x62, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x62, 0x73, 0x12, 0x28, 0x0a, + 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, + 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, + 0x6e, 0x74, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, + 0x6e, 0x74, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x32, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x32, 0x22, + 0x5d, 0x0a, 0x09, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xc7, + 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, + 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x69, 0x0a, 0x13, 0x4c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x75, 0x62, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, - 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, - 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x43, - 0x6f, 0x64, 0x65, 0x22, 0x52, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc4, 0x04, 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, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x74, 0x65, - 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x69, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x2c, 0x0a, 0x11, - 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, - 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x65, 0x6c, 0x66, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, - 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x49, 0x44, 0x12, 0x3e, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, - 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x11, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x1d, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x68, 0x69, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x81, - 0x03, 0x0a, 0x0b, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x28, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x02, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, - 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x48, 0x65, 0x78, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, - 0x4d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4d, 0x65, 0x12, 0x2a, - 0x0a, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x75, - 0x74, 0x65, 0x64, 0x52, 0x05, 0x6d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, - 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x6f, 0x6d, - 0x65, 0x49, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x44, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x44, - 0x12, 0x0e, 0x0a, 0x02, 0x62, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x62, 0x73, - 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x74, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, - 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x6f, - 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, - 0x74, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, - 0x74, 0x32, 0x22, 0x5d, 0x0a, 0x09, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, - 0x44, 0x22, 0xc7, 0x01, 0x0a, 0x0d, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, - 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x66, 0x72, 0x6f, - 0x6d, 0x4d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x13, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x69, 0x0a, 0x13, 0x4c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x32, 0x12, 0x38, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x2a, 0xc2, 0x18, 0x0a, 0x11, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, - 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, - 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, - 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, - 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x55, - 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x03, 0x12, 0x22, - 0x0a, 0x1e, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, - 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, - 0x10, 0x0a, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x59, - 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, - 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, - 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x52, - 0x45, 0x53, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, - 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, - 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, 0x47, 0x4f, - 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, - 0x49, 0x43, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, - 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x4d, 0x45, 0x52, 0x47, 0x45, 0x4e, 0x43, - 0x59, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x55, - 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, - 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x10, 0x0d, - 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x59, 0x45, 0x54, 0x10, 0x0e, - 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, - 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, - 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x55, 0x54, - 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, - 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x52, 0x43, 0x53, 0x10, - 0x11, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x4e, 0x4f, - 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x12, 0x12, 0x2d, 0x0a, 0x29, 0x4f, + 0x74, 0x75, 0x73, 0x22, 0x21, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x69, + 0x73, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x2a, 0x43, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x4d, 0x53, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x43, 0x53, 0x10, 0x02, 0x2a, 0xc2, 0x18, 0x0a, 0x11, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, + 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, + 0x47, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, + 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, + 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, + 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x52, 0x41, 0x46, 0x54, 0x10, 0x03, + 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x4e, + 0x44, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, + 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, + 0x5f, 0x59, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x10, 0x04, 0x12, 0x14, + 0x0a, 0x10, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x49, + 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, + 0x5f, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1b, 0x0a, 0x17, + 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, + 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x55, 0x54, + 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x47, 0x45, 0x4e, + 0x45, 0x52, 0x49, 0x43, 0x10, 0x08, 0x12, 0x24, 0x0a, 0x20, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, + 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x45, 0x4d, 0x45, 0x52, 0x47, 0x45, + 0x4e, 0x43, 0x59, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, + 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, + 0x44, 0x10, 0x0c, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, + 0x10, 0x0d, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x5f, 0x59, 0x45, 0x54, + 0x10, 0x0e, 0x12, 0x1f, 0x0a, 0x1b, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x52, + 0x45, 0x56, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, + 0x47, 0x10, 0x0f, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, + 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, - 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x13, 0x12, 0x17, 0x0a, 0x13, 0x4f, 0x55, - 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, 0x49, 0x4e, - 0x47, 0x10, 0x14, 0x12, 0x2d, 0x0a, 0x29, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, - 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, - 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x15, 0x12, 0x3b, 0x0a, 0x37, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, - 0x44, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, - 0x4e, 0x4f, 0x5f, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, 0x16, 0x12, - 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4d, 0x50, - 0x4c, 0x45, 0x54, 0x45, 0x10, 0x64, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, - 0x4e, 0x47, 0x5f, 0x59, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, - 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x49, - 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, 0x4e, 0x47, + 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x52, 0x43, + 0x53, 0x10, 0x11, 0x12, 0x28, 0x0a, 0x24, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, + 0x4e, 0x4f, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x12, 0x12, 0x2d, 0x0a, + 0x29, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, + 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x44, 0x49, 0x44, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x13, 0x12, 0x17, 0x0a, 0x13, + 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x41, 0x54, + 0x49, 0x4e, 0x47, 0x10, 0x14, 0x12, 0x2d, 0x0a, 0x29, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, + 0x47, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, + 0x4f, 0x4e, 0x10, 0x15, 0x12, 0x3b, 0x0a, 0x37, 0x4f, 0x55, 0x54, 0x47, 0x4f, 0x49, 0x4e, 0x47, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, + 0x54, 0x5f, 0x44, 0x49, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, + 0x54, 0x5f, 0x4e, 0x4f, 0x5f, 0x4d, 0x4f, 0x52, 0x45, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x10, + 0x16, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, + 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x64, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x43, 0x4f, + 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x59, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x55, + 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x65, 0x12, 0x25, 0x0a, + 0x21, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, + 0x41, 0x44, 0x10, 0x66, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, - 0x10, 0x66, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x4d, - 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, - 0x47, 0x10, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, - 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x44, 0x4f, - 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x68, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, 0x43, 0x4f, - 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, - 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x69, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x43, 0x4f, 0x4d, - 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x10, 0x6a, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, - 0x47, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x54, - 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x6b, 0x12, 0x16, 0x0a, 0x12, - 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, - 0x45, 0x44, 0x10, 0x6c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, - 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x6d, 0x12, 0x1e, 0x0a, 0x1a, - 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x6e, 0x12, 0x26, 0x0a, 0x22, - 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, - 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, 0x41, 0x52, - 0x47, 0x45, 0x10, 0x6f, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, - 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, - 0x5f, 0x53, 0x49, 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x10, 0x70, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, - 0x10, 0x71, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, - 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x72, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, - 0x5f, 0x4d, 0x4d, 0x53, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x44, 0x10, 0xcc, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, - 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcd, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x54, - 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, - 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, - 0xce, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, - 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcf, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x4f, 0x4d, - 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x4d, 0x53, 0x10, 0xd0, 0x01, 0x12, 0x26, 0x0a, - 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x53, - 0x4d, 0x53, 0x10, 0xd1, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, - 0x4e, 0x45, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, 0x52, 0x45, - 0x56, 0x49, 0x45, 0x57, 0x53, 0x10, 0xd2, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x4f, 0x4d, 0x42, - 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4e, 0x41, - 0x4d, 0x45, 0x44, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0xd3, 0x01, 0x12, 0x26, 0x0a, 0x21, - 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x42, 0x4c, - 0x45, 0x10, 0xd4, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, - 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, - 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x44, 0x10, 0xd5, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, - 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, - 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0xd6, 0x01, 0x12, 0x25, 0x0a, - 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, - 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x52, 0x43, - 0x53, 0x10, 0xd7, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, - 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, - 0x43, 0x53, 0x10, 0xd8, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, - 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x44, - 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0xd9, 0x01, 0x12, 0x28, 0x0a, 0x23, 0x54, 0x4f, - 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4e, 0x41, - 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, - 0x4c, 0x10, 0xda, 0x01, 0x12, 0x34, 0x0a, 0x2f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, - 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, - 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x52, - 0x43, 0x53, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xdb, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, - 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x52, 0x45, 0x4d, + 0x49, 0x4e, 0x47, 0x10, 0x67, 0x12, 0x23, 0x0a, 0x1f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, + 0x47, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, + 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x68, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4e, + 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, + 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x69, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e, 0x43, + 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x6a, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4e, 0x43, 0x4f, 0x4d, + 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x5f, 0x4f, 0x52, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x6b, 0x12, 0x16, + 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, + 0x45, 0x52, 0x45, 0x44, 0x10, 0x6c, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, + 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x6d, 0x12, 0x1e, + 0x0a, 0x1a, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x6e, 0x12, 0x26, + 0x0a, 0x22, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, + 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4c, + 0x41, 0x52, 0x47, 0x45, 0x10, 0x6f, 0x12, 0x2c, 0x0a, 0x28, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, + 0x4e, 0x47, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x5f, 0x53, 0x49, 0x4d, 0x5f, 0x48, 0x41, 0x53, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x41, + 0x54, 0x41, 0x10, 0x70, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, + 0x50, 0x54, 0x10, 0x71, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, + 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x4f, 0x52, + 0x54, 0x45, 0x44, 0x10, 0x72, 0x12, 0x20, 0x0a, 0x1b, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, + 0x4e, 0x45, 0x5f, 0x4d, 0x4d, 0x53, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, + 0x41, 0x54, 0x45, 0x44, 0x10, 0xcc, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x54, 0x4f, 0x4d, 0x42, 0x53, + 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, + 0x53, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcd, 0x01, 0x12, 0x25, 0x0a, + 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, + 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x44, 0x10, 0xce, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, + 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xcf, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, + 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, + 0x54, 0x4f, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4d, 0x4d, 0x53, 0x10, 0xd0, 0x01, 0x12, + 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, + 0x5f, 0x53, 0x4d, 0x53, 0x10, 0xd1, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x54, 0x4f, 0x4d, 0x42, 0x53, + 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x48, 0x4f, 0x57, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x5f, 0x50, + 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x53, 0x10, 0xd2, 0x01, 0x12, 0x22, 0x0a, 0x1d, 0x54, 0x4f, + 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, + 0x4e, 0x41, 0x4d, 0x45, 0x44, 0x5f, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0xd3, 0x01, 0x12, 0x26, + 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x5f, 0x53, 0x4d, 0x53, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, + 0x42, 0x4c, 0x45, 0x10, 0xd4, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, + 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x4f, 0x4e, + 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, + 0x41, 0x54, 0x45, 0x44, 0x10, 0xd5, 0x01, 0x12, 0x26, 0x0a, 0x21, 0x54, 0x4f, 0x4d, 0x42, 0x53, + 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, + 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0xd6, 0x01, 0x12, + 0x25, 0x0a, 0x20, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, + 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, + 0x52, 0x43, 0x53, 0x10, 0xd7, 0x01, 0x12, 0x2f, 0x0a, 0x2a, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, + 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, + 0x5f, 0x52, 0x43, 0x53, 0x10, 0xd8, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x54, 0x4f, 0x4d, 0x42, 0x53, + 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, + 0x45, 0x44, 0x5f, 0x47, 0x4c, 0x4f, 0x42, 0x41, 0x4c, 0x10, 0xd9, 0x01, 0x12, 0x28, 0x0a, 0x23, + 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, + 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x43, 0x4c, 0x45, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x47, 0x4c, 0x4f, + 0x42, 0x41, 0x4c, 0x10, 0xda, 0x01, 0x12, 0x34, 0x0a, 0x2f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, + 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, + 0x54, 0x43, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, + 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xdb, 0x01, 0x12, 0x26, 0x0a, 0x21, + 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x10, 0xdc, 0x01, 0x12, 0x3c, 0x0a, 0x37, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, - 0xdc, 0x01, 0x12, 0x3c, 0x0a, 0x37, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, - 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, - 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xdd, 0x01, - 0x12, 0x3b, 0x0a, 0x36, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x4d, 0x53, - 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, - 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xde, 0x01, 0x12, 0x3b, 0x0a, - 0x36, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x4e, 0x4f, - 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x55, - 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xdf, 0x01, 0x12, 0x45, 0x0a, 0x40, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, - 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, - 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, - 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xe0, - 0x01, 0x12, 0x40, 0x0a, 0x3b, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, - 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, - 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, - 0x10, 0xe1, 0x01, 0x12, 0x45, 0x0a, 0x40, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, + 0xdd, 0x01, 0x12, 0x3b, 0x0a, 0x36, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, + 0x4d, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, + 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xde, 0x01, 0x12, + 0x3b, 0x0a, 0x36, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x52, 0x43, 0x53, 0x5f, + 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, + 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0xdf, 0x01, 0x12, 0x45, 0x0a, 0x40, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, + 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, + 0x45, 0x44, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, + 0x10, 0xe0, 0x01, 0x12, 0x40, 0x0a, 0x3b, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, - 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x01, 0x12, 0x3e, 0x0a, 0x39, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, - 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, - 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0xe3, 0x01, 0x12, 0x37, 0x0a, 0x32, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, - 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, - 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x4c, 0x45, 0x46, 0x54, - 0x10, 0xe4, 0x01, 0x12, 0x35, 0x0a, 0x30, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, - 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, - 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xe5, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, - 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x52, 0x45, 0x4d, 0x4f, - 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, - 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xe6, 0x01, 0x12, 0x46, 0x0a, 0x41, 0x4d, - 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, - 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, - 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, - 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x10, 0xe7, 0x01, 0x12, 0x40, 0x0a, 0x3b, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, - 0x53, 0x55, 0x47, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x4f, 0x52, 0x54, - 0x43, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x5f, 0x54, 0x4f, 0x4f, 0x4c, 0x53, 0x54, 0x4f, - 0x4e, 0x45, 0x10, 0xe8, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x45, 0x44, 0x10, 0xe1, 0x01, 0x12, 0x45, 0x0a, 0x40, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, - 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, - 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, - 0x32, 0x45, 0x45, 0x10, 0xe9, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, - 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, - 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, - 0x5f, 0x52, 0x43, 0x53, 0x10, 0xea, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, + 0x49, 0x4e, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe2, 0x01, 0x12, 0x3e, 0x0a, 0x39, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, + 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, + 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, + 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0xe3, 0x01, 0x12, 0x37, 0x0a, 0x32, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, + 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, + 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x4c, 0x45, + 0x46, 0x54, 0x10, 0xe4, 0x01, 0x12, 0x35, 0x0a, 0x30, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, + 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, + 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0xe5, 0x01, 0x12, 0x3f, 0x0a, 0x3a, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, + 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x52, 0x45, + 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, + 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0xe6, 0x01, 0x12, 0x46, 0x0a, + 0x41, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, + 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x5f, 0x46, 0x52, + 0x4f, 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x47, 0x52, 0x4f, + 0x55, 0x50, 0x10, 0xe7, 0x01, 0x12, 0x40, 0x0a, 0x3b, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, + 0x45, 0x5f, 0x53, 0x55, 0x47, 0x47, 0x45, 0x53, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x48, 0x4f, + 0x52, 0x54, 0x43, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x5f, 0x54, 0x4f, 0x4f, 0x4c, 0x53, + 0x54, 0x4f, 0x4e, 0x45, 0x10, 0xe8, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, - 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x32, 0x45, 0x45, - 0x10, 0xeb, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, - 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, - 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0xec, 0x01, 0x12, - 0x39, 0x0a, 0x34, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, - 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x43, 0x53, 0x5f, - 0x54, 0x4f, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x10, 0xed, 0x01, 0x12, 0x39, 0x0a, 0x34, 0x4d, 0x45, - 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, - 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x52, - 0x43, 0x53, 0x10, 0xee, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, + 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x43, 0x53, 0x5f, 0x54, 0x4f, + 0x5f, 0x45, 0x32, 0x45, 0x45, 0x10, 0xe9, 0x01, 0x12, 0x3f, 0x0a, 0x3a, 0x4d, 0x45, 0x53, 0x53, + 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, + 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, + 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, + 0x54, 0x4f, 0x5f, 0x52, 0x43, 0x53, 0x10, 0xea, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, + 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, + 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x32, + 0x45, 0x45, 0x10, 0xeb, 0x01, 0x12, 0x3a, 0x0a, 0x35, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, - 0x45, 0x5f, 0x53, 0x41, 0x54, 0x45, 0x4c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x44, 0x55, 0x43, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xef, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0xac, 0x02, 0x2a, 0x50, - 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x41, 0x52, - 0x43, 0x48, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x52, 0x43, 0x48, 0x49, - 0x56, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, - 0x2a, 0x63, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, 0x0a, 0x15, - 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x07, 0x12, - 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, - 0x4f, 0x52, 0x54, 0x10, 0x08, 0x2a, 0x2e, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x4d, 0x55, 0x54, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, - 0x55, 0x54, 0x45, 0x10, 0x01, 0x2a, 0x79, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, - 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, - 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x4c, 0x4f, - 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x06, - 0x2a, 0xfb, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x73, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, - 0x5f, 0x4a, 0x50, 0x45, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, - 0x5f, 0x4a, 0x50, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, - 0x50, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x47, - 0x49, 0x46, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x57, 0x42, - 0x4d, 0x50, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x58, 0x5f, - 0x4d, 0x53, 0x5f, 0x42, 0x4d, 0x50, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4d, 0x41, 0x47, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x07, 0x12, - 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x10, 0x08, 0x12, 0x0d, - 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x33, 0x47, 0x32, 0x10, 0x09, 0x12, 0x0e, 0x0a, - 0x0a, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x33, 0x47, 0x50, 0x50, 0x10, 0x0a, 0x12, 0x0e, 0x0a, - 0x0a, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x57, 0x45, 0x42, 0x4d, 0x10, 0x0b, 0x12, 0x0d, 0x0a, - 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4d, 0x4b, 0x56, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, - 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x41, 0x43, - 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x4d, 0x52, 0x10, - 0x0f, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x33, 0x10, 0x10, - 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x45, 0x47, 0x10, 0x11, - 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x47, 0x10, 0x12, 0x12, - 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x10, 0x13, 0x12, 0x12, - 0x0a, 0x0e, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x5f, 0x4c, 0x41, 0x54, 0x4d, - 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x33, 0x47, 0x50, 0x50, - 0x10, 0x15, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x47, 0x47, 0x10, - 0x16, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x58, 0x54, - 0x5f, 0x56, 0x43, 0x41, 0x52, 0x44, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x5f, - 0x50, 0x44, 0x46, 0x10, 0x1c, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x5f, 0x54, 0x58, 0x54, - 0x10, 0x1d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x1e, - 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x47, 0x47, 0x32, 0x10, 0x1f, - 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x53, 0x4d, 0x49, 0x4c, 0x10, 0x20, 0x42, 0x0e, - 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, + 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0xec, + 0x01, 0x12, 0x39, 0x0a, 0x34, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x52, 0x43, + 0x53, 0x5f, 0x54, 0x4f, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x10, 0xed, 0x01, 0x12, 0x39, 0x0a, 0x34, + 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, + 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, + 0x4c, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x32, 0x45, 0x45, 0x5f, 0x54, 0x4f, + 0x5f, 0x52, 0x43, 0x53, 0x10, 0xee, 0x01, 0x12, 0x31, 0x0a, 0x2c, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, + 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x41, 0x54, 0x45, 0x4c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x45, 0x44, + 0x55, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0xef, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0xac, 0x02, + 0x2a, 0x50, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, + 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x52, 0x43, + 0x48, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, + 0x10, 0x03, 0x2a, 0x63, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x19, + 0x0a, 0x15, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x10, + 0x07, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, + 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x08, 0x2a, 0x2e, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x4d, 0x55, 0x54, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x4d, 0x55, 0x54, 0x45, 0x10, 0x01, 0x2a, 0x79, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x76, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, + 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x42, + 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x52, + 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, + 0x10, 0x06, 0x2a, 0xfb, 0x03, 0x0a, 0x0c, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, + 0x47, 0x45, 0x5f, 0x4a, 0x50, 0x45, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, + 0x47, 0x45, 0x5f, 0x4a, 0x50, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, + 0x45, 0x5f, 0x50, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4d, 0x41, 0x47, 0x45, + 0x5f, 0x47, 0x49, 0x46, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, + 0x57, 0x42, 0x4d, 0x50, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, + 0x58, 0x5f, 0x4d, 0x53, 0x5f, 0x42, 0x4d, 0x50, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4d, + 0x41, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x10, 0x08, + 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x33, 0x47, 0x32, 0x10, 0x09, 0x12, + 0x0e, 0x0a, 0x0a, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x33, 0x47, 0x50, 0x50, 0x10, 0x0a, 0x12, + 0x0e, 0x0a, 0x0a, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x57, 0x45, 0x42, 0x4d, 0x10, 0x0b, 0x12, + 0x0d, 0x0a, 0x09, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4d, 0x4b, 0x56, 0x10, 0x0c, 0x12, 0x15, + 0x0a, 0x11, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x41, + 0x41, 0x43, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x4d, + 0x52, 0x10, 0x0f, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x33, + 0x10, 0x10, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x45, 0x47, + 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x47, 0x10, + 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x10, 0x13, + 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4d, 0x50, 0x34, 0x5f, 0x4c, 0x41, + 0x54, 0x4d, 0x10, 0x14, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x33, 0x47, + 0x50, 0x50, 0x10, 0x15, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x47, + 0x47, 0x10, 0x16, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, + 0x58, 0x54, 0x5f, 0x56, 0x43, 0x41, 0x52, 0x44, 0x10, 0x18, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, + 0x50, 0x5f, 0x50, 0x44, 0x46, 0x10, 0x1c, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x50, 0x5f, 0x54, + 0x58, 0x54, 0x10, 0x1d, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x48, 0x54, 0x4d, 0x4c, + 0x10, 0x1e, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x47, 0x47, 0x32, + 0x10, 0x1f, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x50, 0x50, 0x5f, 0x53, 0x4d, 0x49, 0x4c, 0x10, 0x20, + 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3298,83 +3406,86 @@ func file_conversations_proto_rawDescGZIP() []byte { return file_conversations_proto_rawDescData } -var file_conversations_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_conversations_proto_msgTypes = make([]protoimpl.MessageInfo, 31) +var file_conversations_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_conversations_proto_msgTypes = make([]protoimpl.MessageInfo, 32) var file_conversations_proto_goTypes = []interface{}{ - (MessageStatusType)(0), // 0: conversations.MessageStatusType - (ConversationStatus)(0), // 1: conversations.ConversationStatus - (ConversationActionStatus)(0), // 2: conversations.ConversationActionStatus - (ConversationMuteStatus)(0), // 3: conversations.ConversationMuteStatus - (ConvUpdateTypes)(0), // 4: conversations.ConvUpdateTypes - (MediaFormats)(0), // 5: conversations.MediaFormats - (*ResendMessagePayload)(nil), // 6: conversations.ResendMessagePayload - (*ConversationTypePayload)(nil), // 7: conversations.ConversationTypePayload - (*UpdateConversationPayload)(nil), // 8: conversations.UpdateConversationPayload - (*ConversationAction5)(nil), // 9: conversations.ConversationAction5 - (*UpdateConversationData)(nil), // 10: conversations.UpdateConversationData - (*DeleteMessagePayload)(nil), // 11: conversations.DeleteMessagePayload - (*SendMessagePayload)(nil), // 12: conversations.SendMessagePayload - (*ReplyPayload)(nil), // 13: conversations.ReplyPayload - (*MessagePayload)(nil), // 14: conversations.MessagePayload - (*MessagePayloadContent)(nil), // 15: conversations.MessagePayloadContent - (*OpenConversationPayload)(nil), // 16: conversations.OpenConversationPayload - (*PrepareOpenConversationPayload)(nil), // 17: conversations.PrepareOpenConversationPayload - (*FetchConversationMessagesPayload)(nil), // 18: conversations.FetchConversationMessagesPayload - (*ListCoversationsPayload)(nil), // 19: conversations.ListCoversationsPayload - (*Cursor)(nil), // 20: conversations.Cursor - (*Message)(nil), // 21: conversations.Message - (*ReplyMessage)(nil), // 22: conversations.ReplyMessage - (*ReplyMessageData)(nil), // 23: conversations.ReplyMessageData - (*MessageInfo)(nil), // 24: conversations.MessageInfo - (*MediaContent)(nil), // 25: conversations.MediaContent - (*Pixels)(nil), // 26: conversations.Pixels - (*MessageContent)(nil), // 27: conversations.MessageContent - (*MsgType)(nil), // 28: conversations.MsgType - (*MessageStatus)(nil), // 29: conversations.MessageStatus - (*Conversations)(nil), // 30: conversations.Conversations - (*Conversation)(nil), // 31: conversations.Conversation - (*Participant)(nil), // 32: conversations.Participant - (*SmallInfo)(nil), // 33: conversations.SmallInfo - (*LatestMessage)(nil), // 34: conversations.LatestMessage - (*LatestMessageStatus)(nil), // 35: conversations.LatestMessageStatus - (*Muted)(nil), // 36: conversations.Muted - (*ReactionResponse)(nil), // 37: reactions.ReactionResponse + (ConversationType)(0), // 0: conversations.ConversationType + (MessageStatusType)(0), // 1: conversations.MessageStatusType + (ConversationStatus)(0), // 2: conversations.ConversationStatus + (ConversationActionStatus)(0), // 3: conversations.ConversationActionStatus + (ConversationMuteStatus)(0), // 4: conversations.ConversationMuteStatus + (ConvUpdateTypes)(0), // 5: conversations.ConvUpdateTypes + (MediaFormats)(0), // 6: conversations.MediaFormats + (*GetParticipantThumbnailPayload)(nil), // 7: conversations.GetParticipantThumbnailPayload + (*ResendMessagePayload)(nil), // 8: conversations.ResendMessagePayload + (*ConversationTypePayload)(nil), // 9: conversations.ConversationTypePayload + (*UpdateConversationPayload)(nil), // 10: conversations.UpdateConversationPayload + (*ConversationAction5)(nil), // 11: conversations.ConversationAction5 + (*UpdateConversationData)(nil), // 12: conversations.UpdateConversationData + (*DeleteMessagePayload)(nil), // 13: conversations.DeleteMessagePayload + (*SendMessagePayload)(nil), // 14: conversations.SendMessagePayload + (*ReplyPayload)(nil), // 15: conversations.ReplyPayload + (*MessagePayload)(nil), // 16: conversations.MessagePayload + (*MessagePayloadContent)(nil), // 17: conversations.MessagePayloadContent + (*OpenConversationPayload)(nil), // 18: conversations.OpenConversationPayload + (*PrepareOpenConversationPayload)(nil), // 19: conversations.PrepareOpenConversationPayload + (*FetchConversationMessagesPayload)(nil), // 20: conversations.FetchConversationMessagesPayload + (*ListCoversationsPayload)(nil), // 21: conversations.ListCoversationsPayload + (*Cursor)(nil), // 22: conversations.Cursor + (*Message)(nil), // 23: conversations.Message + (*ReplyMessage)(nil), // 24: conversations.ReplyMessage + (*ReplyMessageData)(nil), // 25: conversations.ReplyMessageData + (*MessageInfo)(nil), // 26: conversations.MessageInfo + (*MediaContent)(nil), // 27: conversations.MediaContent + (*Pixels)(nil), // 28: conversations.Pixels + (*MessageContent)(nil), // 29: conversations.MessageContent + (*MsgType)(nil), // 30: conversations.MsgType + (*MessageStatus)(nil), // 31: conversations.MessageStatus + (*Conversations)(nil), // 32: conversations.Conversations + (*Conversation)(nil), // 33: conversations.Conversation + (*Participant)(nil), // 34: conversations.Participant + (*SmallInfo)(nil), // 35: conversations.SmallInfo + (*LatestMessage)(nil), // 36: conversations.LatestMessage + (*LatestMessageStatus)(nil), // 37: conversations.LatestMessageStatus + (*Muted)(nil), // 38: conversations.Muted + (*ReactionResponse)(nil), // 39: reactions.ReactionResponse } var file_conversations_proto_depIdxs = []int32{ - 10, // 0: conversations.UpdateConversationPayload.data:type_name -> conversations.UpdateConversationData - 2, // 1: conversations.UpdateConversationPayload.action:type_name -> conversations.ConversationActionStatus - 9, // 2: conversations.UpdateConversationPayload.action5:type_name -> conversations.ConversationAction5 - 1, // 3: conversations.UpdateConversationData.status:type_name -> conversations.ConversationStatus - 3, // 4: conversations.UpdateConversationData.mute:type_name -> conversations.ConversationMuteStatus - 14, // 5: conversations.SendMessagePayload.messagePayload:type_name -> conversations.MessagePayload - 13, // 6: conversations.SendMessagePayload.reply:type_name -> conversations.ReplyPayload - 15, // 7: conversations.MessagePayload.messagePayloadContent:type_name -> conversations.MessagePayloadContent - 24, // 8: conversations.MessagePayload.messageInfo:type_name -> conversations.MessageInfo - 27, // 9: conversations.MessagePayloadContent.messageContent:type_name -> conversations.MessageContent - 20, // 10: conversations.FetchConversationMessagesPayload.cursor:type_name -> conversations.Cursor - 28, // 11: conversations.Message.msgType:type_name -> conversations.MsgType - 29, // 12: conversations.Message.messageStatus:type_name -> conversations.MessageStatus - 24, // 13: conversations.Message.messageInfo:type_name -> conversations.MessageInfo - 37, // 14: conversations.Message.reactions:type_name -> reactions.ReactionResponse - 23, // 15: conversations.ReplyMessage.replyMessageData:type_name -> conversations.ReplyMessageData - 27, // 16: conversations.MessageInfo.messageContent:type_name -> conversations.MessageContent - 25, // 17: conversations.MessageInfo.mediaContent:type_name -> conversations.MediaContent - 5, // 18: conversations.MediaContent.format:type_name -> conversations.MediaFormats - 26, // 19: conversations.MediaContent.pixels:type_name -> conversations.Pixels - 0, // 20: conversations.MessageStatus.status:type_name -> conversations.MessageStatusType - 31, // 21: conversations.Conversations.conversations:type_name -> conversations.Conversation - 34, // 22: conversations.Conversation.latestMessage:type_name -> conversations.LatestMessage - 4, // 23: conversations.Conversation.status:type_name -> conversations.ConvUpdateTypes - 32, // 24: conversations.Conversation.participants:type_name -> conversations.Participant - 33, // 25: conversations.Participant.ID:type_name -> conversations.SmallInfo - 36, // 26: conversations.Participant.muted:type_name -> conversations.Muted - 35, // 27: conversations.LatestMessage.latestMessageStatus:type_name -> conversations.LatestMessageStatus - 0, // 28: conversations.LatestMessageStatus.status:type_name -> conversations.MessageStatusType - 29, // [29:29] is the sub-list for method output_type - 29, // [29:29] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 12, // 0: conversations.UpdateConversationPayload.data:type_name -> conversations.UpdateConversationData + 3, // 1: conversations.UpdateConversationPayload.action:type_name -> conversations.ConversationActionStatus + 11, // 2: conversations.UpdateConversationPayload.action5:type_name -> conversations.ConversationAction5 + 2, // 3: conversations.UpdateConversationData.status:type_name -> conversations.ConversationStatus + 4, // 4: conversations.UpdateConversationData.mute:type_name -> conversations.ConversationMuteStatus + 16, // 5: conversations.SendMessagePayload.messagePayload:type_name -> conversations.MessagePayload + 15, // 6: conversations.SendMessagePayload.reply:type_name -> conversations.ReplyPayload + 17, // 7: conversations.MessagePayload.messagePayloadContent:type_name -> conversations.MessagePayloadContent + 26, // 8: conversations.MessagePayload.messageInfo:type_name -> conversations.MessageInfo + 29, // 9: conversations.MessagePayloadContent.messageContent:type_name -> conversations.MessageContent + 22, // 10: conversations.FetchConversationMessagesPayload.cursor:type_name -> conversations.Cursor + 30, // 11: conversations.Message.msgType:type_name -> conversations.MsgType + 31, // 12: conversations.Message.messageStatus:type_name -> conversations.MessageStatus + 26, // 13: conversations.Message.messageInfo:type_name -> conversations.MessageInfo + 39, // 14: conversations.Message.reactions:type_name -> reactions.ReactionResponse + 25, // 15: conversations.ReplyMessage.replyMessageData:type_name -> conversations.ReplyMessageData + 29, // 16: conversations.MessageInfo.messageContent:type_name -> conversations.MessageContent + 27, // 17: conversations.MessageInfo.mediaContent:type_name -> conversations.MediaContent + 6, // 18: conversations.MediaContent.format:type_name -> conversations.MediaFormats + 28, // 19: conversations.MediaContent.pixels:type_name -> conversations.Pixels + 1, // 20: conversations.MessageStatus.status:type_name -> conversations.MessageStatusType + 33, // 21: conversations.Conversations.conversations:type_name -> conversations.Conversation + 36, // 22: conversations.Conversation.latestMessage:type_name -> conversations.LatestMessage + 5, // 23: conversations.Conversation.status:type_name -> conversations.ConvUpdateTypes + 34, // 24: conversations.Conversation.participants:type_name -> conversations.Participant + 0, // 25: conversations.Conversation.type:type_name -> conversations.ConversationType + 35, // 26: conversations.Participant.ID:type_name -> conversations.SmallInfo + 38, // 27: conversations.Participant.muted:type_name -> conversations.Muted + 37, // 28: conversations.LatestMessage.latestMessageStatus:type_name -> conversations.LatestMessageStatus + 1, // 29: conversations.LatestMessageStatus.status:type_name -> conversations.MessageStatusType + 30, // [30:30] is the sub-list for method output_type + 30, // [30:30] is the sub-list for method input_type + 30, // [30:30] is the sub-list for extension type_name + 30, // [30:30] is the sub-list for extension extendee + 0, // [0:30] is the sub-list for field type_name } func init() { file_conversations_proto_init() } @@ -3385,7 +3496,7 @@ func file_conversations_proto_init() { file_reactions_proto_init() if !protoimpl.UnsafeEnabled { file_conversations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResendMessagePayload); i { + switch v := v.(*GetParticipantThumbnailPayload); i { case 0: return &v.state case 1: @@ -3397,7 +3508,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConversationTypePayload); i { + switch v := v.(*ResendMessagePayload); i { case 0: return &v.state case 1: @@ -3409,7 +3520,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateConversationPayload); i { + switch v := v.(*ConversationTypePayload); i { case 0: return &v.state case 1: @@ -3421,7 +3532,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConversationAction5); i { + switch v := v.(*UpdateConversationPayload); i { case 0: return &v.state case 1: @@ -3433,7 +3544,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateConversationData); i { + switch v := v.(*ConversationAction5); i { case 0: return &v.state case 1: @@ -3445,7 +3556,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteMessagePayload); i { + switch v := v.(*UpdateConversationData); i { case 0: return &v.state case 1: @@ -3457,7 +3568,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendMessagePayload); i { + switch v := v.(*DeleteMessagePayload); i { case 0: return &v.state case 1: @@ -3469,7 +3580,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplyPayload); i { + switch v := v.(*SendMessagePayload); i { case 0: return &v.state case 1: @@ -3481,7 +3592,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessagePayload); i { + switch v := v.(*ReplyPayload); i { case 0: return &v.state case 1: @@ -3493,7 +3604,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessagePayloadContent); i { + switch v := v.(*MessagePayload); i { case 0: return &v.state case 1: @@ -3505,7 +3616,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OpenConversationPayload); i { + switch v := v.(*MessagePayloadContent); i { case 0: return &v.state case 1: @@ -3517,7 +3628,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrepareOpenConversationPayload); i { + switch v := v.(*OpenConversationPayload); i { case 0: return &v.state case 1: @@ -3529,7 +3640,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchConversationMessagesPayload); i { + switch v := v.(*PrepareOpenConversationPayload); i { case 0: return &v.state case 1: @@ -3541,7 +3652,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListCoversationsPayload); i { + switch v := v.(*FetchConversationMessagesPayload); i { case 0: return &v.state case 1: @@ -3553,7 +3664,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Cursor); i { + switch v := v.(*ListCoversationsPayload); i { case 0: return &v.state case 1: @@ -3565,7 +3676,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Message); i { + switch v := v.(*Cursor); i { case 0: return &v.state case 1: @@ -3577,7 +3688,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplyMessage); i { + switch v := v.(*Message); i { case 0: return &v.state case 1: @@ -3589,7 +3700,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplyMessageData); i { + switch v := v.(*ReplyMessage); i { case 0: return &v.state case 1: @@ -3601,7 +3712,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessageInfo); i { + switch v := v.(*ReplyMessageData); i { case 0: return &v.state case 1: @@ -3613,7 +3724,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MediaContent); i { + switch v := v.(*MessageInfo); i { case 0: return &v.state case 1: @@ -3625,7 +3736,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Pixels); i { + switch v := v.(*MediaContent); i { case 0: return &v.state case 1: @@ -3637,7 +3748,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessageContent); i { + switch v := v.(*Pixels); i { case 0: return &v.state case 1: @@ -3649,7 +3760,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgType); i { + switch v := v.(*MessageContent); i { case 0: return &v.state case 1: @@ -3661,7 +3772,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MessageStatus); i { + switch v := v.(*MsgType); i { case 0: return &v.state case 1: @@ -3673,7 +3784,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Conversations); i { + switch v := v.(*MessageStatus); i { case 0: return &v.state case 1: @@ -3685,7 +3796,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Conversation); i { + switch v := v.(*Conversations); i { case 0: return &v.state case 1: @@ -3697,7 +3808,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Participant); i { + switch v := v.(*Conversation); i { case 0: return &v.state case 1: @@ -3709,7 +3820,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmallInfo); i { + switch v := v.(*Participant); i { case 0: return &v.state case 1: @@ -3721,7 +3832,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LatestMessage); i { + switch v := v.(*SmallInfo); i { case 0: return &v.state case 1: @@ -3733,7 +3844,7 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LatestMessageStatus); i { + switch v := v.(*LatestMessage); i { case 0: return &v.state case 1: @@ -3745,6 +3856,18 @@ func file_conversations_proto_init() { } } file_conversations_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LatestMessageStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_conversations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Muted); i { case 0: return &v.state @@ -3757,11 +3880,11 @@ func file_conversations_proto_init() { } } } - file_conversations_proto_msgTypes[4].OneofWrappers = []interface{}{ + file_conversations_proto_msgTypes[5].OneofWrappers = []interface{}{ (*UpdateConversationData_Status)(nil), (*UpdateConversationData_Mute)(nil), } - file_conversations_proto_msgTypes[18].OneofWrappers = []interface{}{ + file_conversations_proto_msgTypes[19].OneofWrappers = []interface{}{ (*MessageInfo_MessageContent)(nil), (*MessageInfo_MediaContent)(nil), } @@ -3770,8 +3893,8 @@ func file_conversations_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_conversations_proto_rawDesc, - NumEnums: 6, - NumMessages: 31, + NumEnums: 7, + NumMessages: 32, NumExtensions: 0, NumServices: 0, }, diff --git a/libgm/binary/messages.pb.go b/libgm/binary/messages.pb.go index 479402c..275f205 100644 --- a/libgm/binary/messages.pb.go +++ b/libgm/binary/messages.pb.go @@ -72,18 +72,20 @@ func (BugleRoute) EnumDescriptor() ([]byte, []int) { type ActionType int32 const ( - ActionType_UNKNOWN_ACTION_TYPE ActionType = 0 - ActionType_LIST_CONVERSATIONS ActionType = 1 - ActionType_LIST_MESSAGES ActionType = 2 - ActionType_SEND_MESSAGE ActionType = 3 - ActionType_LIST_CONVERSATIONS_SYNC ActionType = 1111 - ActionType_GET_UPDATES ActionType = 16 - ActionType_GET_CONVERSATION_TYPE ActionType = 21 - ActionType_NOTIFY_DITTO_ACTIVITY ActionType = 22 - ActionType_DELETE_MESSAGE ActionType = 23 - ActionType_RESEND_MESSAGE ActionType = 25 - ActionType_IS_BUGLE_DEFAULT ActionType = 31 - ActionType_SEND_REACTION ActionType = 38 + ActionType_UNKNOWN_ACTION_TYPE ActionType = 0 + ActionType_LIST_CONVERSATIONS ActionType = 1 + ActionType_LIST_MESSAGES ActionType = 2 + ActionType_SEND_MESSAGE ActionType = 3 + ActionType_LIST_CONVERSATIONS_SYNC ActionType = 1111 + ActionType_UPDATE_CONVERSATION ActionType = 15 + ActionType_GET_UPDATES ActionType = 16 + ActionType_GET_CONVERSATION_TYPE ActionType = 21 + ActionType_NOTIFY_DITTO_ACTIVITY ActionType = 22 + ActionType_DELETE_MESSAGE ActionType = 23 + ActionType_RESEND_MESSAGE ActionType = 25 + ActionType_IS_BUGLE_DEFAULT ActionType = 31 + ActionType_GET_PARTICIPANTS_THUMBNAIL ActionType = 37 + ActionType_SEND_REACTION ActionType = 38 ) // Enum value maps for ActionType. @@ -94,27 +96,31 @@ var ( 2: "LIST_MESSAGES", 3: "SEND_MESSAGE", 1111: "LIST_CONVERSATIONS_SYNC", + 15: "UPDATE_CONVERSATION", 16: "GET_UPDATES", 21: "GET_CONVERSATION_TYPE", 22: "NOTIFY_DITTO_ACTIVITY", 23: "DELETE_MESSAGE", 25: "RESEND_MESSAGE", 31: "IS_BUGLE_DEFAULT", + 37: "GET_PARTICIPANTS_THUMBNAIL", 38: "SEND_REACTION", } ActionType_value = map[string]int32{ - "UNKNOWN_ACTION_TYPE": 0, - "LIST_CONVERSATIONS": 1, - "LIST_MESSAGES": 2, - "SEND_MESSAGE": 3, - "LIST_CONVERSATIONS_SYNC": 1111, - "GET_UPDATES": 16, - "GET_CONVERSATION_TYPE": 21, - "NOTIFY_DITTO_ACTIVITY": 22, - "DELETE_MESSAGE": 23, - "RESEND_MESSAGE": 25, - "IS_BUGLE_DEFAULT": 31, - "SEND_REACTION": 38, + "UNKNOWN_ACTION_TYPE": 0, + "LIST_CONVERSATIONS": 1, + "LIST_MESSAGES": 2, + "SEND_MESSAGE": 3, + "LIST_CONVERSATIONS_SYNC": 1111, + "UPDATE_CONVERSATION": 15, + "GET_UPDATES": 16, + "GET_CONVERSATION_TYPE": 21, + "NOTIFY_DITTO_ACTIVITY": 22, + "DELETE_MESSAGE": 23, + "RESEND_MESSAGE": 25, + "IS_BUGLE_DEFAULT": 31, + "GET_PARTICIPANTS_THUMBNAIL": 37, + "SEND_REACTION": 38, } ) @@ -1651,7 +1657,7 @@ var file_messages_proto_rawDesc = []byte{ 0x4f, 0x57, 0x4e, 0x5f, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x61, 0x69, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x0e, 0x2a, - 0x98, 0x02, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, + 0xd1, 0x02, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x10, 0x01, 0x12, @@ -1659,23 +1665,26 @@ var file_messages_proto_rawDesc = []byte{ 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x17, 0x4c, 0x49, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x53, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, - 0xd7, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x53, 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, - 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x15, 0x12, 0x19, - 0x0a, 0x15, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x44, 0x49, 0x54, 0x54, 0x4f, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4c, - 0x45, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x17, 0x12, 0x12, 0x0a, - 0x0e, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, - 0x19, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x53, 0x5f, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x44, 0x45, - 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x1f, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x4e, 0x44, 0x5f, - 0x52, 0x45, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x26, 0x2a, 0x50, 0x0a, 0x0b, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x53, - 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, - 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x10, 0x42, 0x0e, 0x5a, 0x0c, - 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0xd7, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4e, + 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b, 0x47, + 0x45, 0x54, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x10, 0x10, 0x12, 0x19, 0x0a, 0x15, + 0x47, 0x45, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x15, 0x12, 0x19, 0x0a, 0x15, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x59, 0x5f, 0x44, 0x49, 0x54, 0x54, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, + 0x10, 0x16, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x4d, 0x45, 0x53, + 0x53, 0x41, 0x47, 0x45, 0x10, 0x17, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x44, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x53, + 0x5f, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x1f, + 0x12, 0x1e, 0x0a, 0x1a, 0x47, 0x45, 0x54, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, + 0x41, 0x4e, 0x54, 0x53, 0x5f, 0x54, 0x48, 0x55, 0x4d, 0x42, 0x4e, 0x41, 0x49, 0x4c, 0x10, 0x25, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x26, 0x2a, 0x50, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x02, 0x12, + 0x14, 0x0a, 0x10, 0x42, 0x55, 0x47, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x10, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/libgm/binary/raw/conversations.proto b/libgm/binary/raw/conversations.proto index 6adfe49..b24ee6e 100644 --- a/libgm/binary/raw/conversations.proto +++ b/libgm/binary/raw/conversations.proto @@ -5,6 +5,10 @@ option go_package = "../../binary"; import "reactions.proto"; +message GetParticipantThumbnailPayload { + string conversationID = 1; +} + message ResendMessagePayload { string messageID = 2; } @@ -160,7 +164,7 @@ message Conversation { string conversationID = 1; string name = 2; LatestMessage latestMessage = 4; - int64 timestampMs = 5; + int64 lastMessageTimestamp = 5; bool isGroupChat = 10; // not certain string selfParticipantID = 11; @@ -171,7 +175,7 @@ message Conversation { string latestMessageID = 17; repeated Participant participants = 20; repeated string otherParticipants = 21; // participant ids excluding me - int64 type = 22; + ConversationType type = 22; bool subType = 24; bool thirdType = 29; } @@ -211,7 +215,13 @@ message LatestMessageStatus { } message Muted { - bool isMuted = 1; + int64 isMuted = 1; +} + +enum ConversationType { + UNKNOWN_CONVERSATION_TYPE = 0; + SMS = 1; + RCS = 2; } enum MessageStatusType { diff --git a/libgm/binary/raw/messages.proto b/libgm/binary/raw/messages.proto index f031977..579d22d 100644 --- a/libgm/binary/raw/messages.proto +++ b/libgm/binary/raw/messages.proto @@ -189,12 +189,14 @@ enum ActionType { LIST_MESSAGES = 2; SEND_MESSAGE = 3; LIST_CONVERSATIONS_SYNC = 1111; + UPDATE_CONVERSATION = 15; GET_UPDATES = 16; GET_CONVERSATION_TYPE = 21; NOTIFY_DITTO_ACTIVITY = 22; DELETE_MESSAGE = 23; RESEND_MESSAGE = 25; IS_BUGLE_DEFAULT = 31; + GET_PARTICIPANTS_THUMBNAIL = 37; SEND_REACTION = 38; } diff --git a/libgm/binary/raw/responses.proto b/libgm/binary/raw/responses.proto index 8d02e9f..7ba4227 100644 --- a/libgm/binary/raw/responses.proto +++ b/libgm/binary/raw/responses.proto @@ -7,6 +7,21 @@ import "events.proto"; import "messages.proto"; import "conversations.proto"; +message ParticipantThumbnail { + repeated Thumbnail thumbnail = 1; +} + +message Thumbnail { + string participantId = 1; + ThumbnailData data = 2; +} + +message ThumbnailData { + bytes imageBuffer = 3; + int32 someInt = 4; + conversations.Pixels pixels = 5; +} + message RegisterRefreshResponse { RefreshAuthData tokenData = 2; } @@ -91,7 +106,3 @@ message AuthKeyData { bytes tachyonAuthToken = 1; int64 validFor = 2; } - -enum ConversationType { - UNKNOWN_CONVERSATION_TYPE = 0; -} diff --git a/libgm/binary/responses.pb.go b/libgm/binary/responses.pb.go index 4bf78ed..b2c2285 100644 --- a/libgm/binary/responses.pb.go +++ b/libgm/binary/responses.pb.go @@ -20,49 +20,171 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type ConversationType int32 +type ParticipantThumbnail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -const ( - ConversationType_UNKNOWN_CONVERSATION_TYPE ConversationType = 0 -) + Thumbnail []*Thumbnail `protobuf:"bytes,1,rep,name=thumbnail,proto3" json:"thumbnail,omitempty"` +} -// Enum value maps for ConversationType. -var ( - ConversationType_name = map[int32]string{ - 0: "UNKNOWN_CONVERSATION_TYPE", +func (x *ParticipantThumbnail) Reset() { + *x = ParticipantThumbnail{} + if protoimpl.UnsafeEnabled { + mi := &file_responses_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - ConversationType_value = map[string]int32{ - "UNKNOWN_CONVERSATION_TYPE": 0, +} + +func (x *ParticipantThumbnail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParticipantThumbnail) ProtoMessage() {} + +func (x *ParticipantThumbnail) ProtoReflect() protoreflect.Message { + mi := &file_responses_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } -) - -func (x ConversationType) Enum() *ConversationType { - p := new(ConversationType) - *p = x - return p + return mi.MessageOf(x) } -func (x ConversationType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ConversationType) Descriptor() protoreflect.EnumDescriptor { - return file_responses_proto_enumTypes[0].Descriptor() -} - -func (ConversationType) Type() protoreflect.EnumType { - return &file_responses_proto_enumTypes[0] -} - -func (x ConversationType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ConversationType.Descriptor instead. -func (ConversationType) EnumDescriptor() ([]byte, []int) { +// Deprecated: Use ParticipantThumbnail.ProtoReflect.Descriptor instead. +func (*ParticipantThumbnail) Descriptor() ([]byte, []int) { return file_responses_proto_rawDescGZIP(), []int{0} } +func (x *ParticipantThumbnail) GetThumbnail() []*Thumbnail { + if x != nil { + return x.Thumbnail + } + return nil +} + +type Thumbnail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParticipantId string `protobuf:"bytes,1,opt,name=participantId,proto3" json:"participantId,omitempty"` + Data *ThumbnailData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *Thumbnail) Reset() { + *x = Thumbnail{} + if protoimpl.UnsafeEnabled { + mi := &file_responses_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Thumbnail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Thumbnail) ProtoMessage() {} + +func (x *Thumbnail) ProtoReflect() protoreflect.Message { + mi := &file_responses_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 Thumbnail.ProtoReflect.Descriptor instead. +func (*Thumbnail) Descriptor() ([]byte, []int) { + return file_responses_proto_rawDescGZIP(), []int{1} +} + +func (x *Thumbnail) GetParticipantId() string { + if x != nil { + return x.ParticipantId + } + return "" +} + +func (x *Thumbnail) GetData() *ThumbnailData { + if x != nil { + return x.Data + } + return nil +} + +type ThumbnailData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ImageBuffer []byte `protobuf:"bytes,3,opt,name=imageBuffer,proto3" json:"imageBuffer,omitempty"` + SomeInt int32 `protobuf:"varint,4,opt,name=someInt,proto3" json:"someInt,omitempty"` + Pixels *Pixels `protobuf:"bytes,5,opt,name=pixels,proto3" json:"pixels,omitempty"` +} + +func (x *ThumbnailData) Reset() { + *x = ThumbnailData{} + if protoimpl.UnsafeEnabled { + mi := &file_responses_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ThumbnailData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ThumbnailData) ProtoMessage() {} + +func (x *ThumbnailData) ProtoReflect() protoreflect.Message { + mi := &file_responses_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 ThumbnailData.ProtoReflect.Descriptor instead. +func (*ThumbnailData) Descriptor() ([]byte, []int) { + return file_responses_proto_rawDescGZIP(), []int{2} +} + +func (x *ThumbnailData) GetImageBuffer() []byte { + if x != nil { + return x.ImageBuffer + } + return nil +} + +func (x *ThumbnailData) GetSomeInt() int32 { + if x != nil { + return x.SomeInt + } + return 0 +} + +func (x *ThumbnailData) GetPixels() *Pixels { + if x != nil { + return x.Pixels + } + return nil +} + type RegisterRefreshResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -74,7 +196,7 @@ type RegisterRefreshResponse struct { func (x *RegisterRefreshResponse) Reset() { *x = RegisterRefreshResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[0] + mi := &file_responses_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -87,7 +209,7 @@ func (x *RegisterRefreshResponse) String() string { func (*RegisterRefreshResponse) ProtoMessage() {} func (x *RegisterRefreshResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[0] + mi := &file_responses_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -100,7 +222,7 @@ func (x *RegisterRefreshResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterRefreshResponse.ProtoReflect.Descriptor instead. func (*RegisterRefreshResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{0} + return file_responses_proto_rawDescGZIP(), []int{3} } func (x *RegisterRefreshResponse) GetTokenData() *RefreshAuthData { @@ -122,7 +244,7 @@ type RefreshAuthData struct { func (x *RefreshAuthData) Reset() { *x = RefreshAuthData{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[1] + mi := &file_responses_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -135,7 +257,7 @@ func (x *RefreshAuthData) String() string { func (*RefreshAuthData) ProtoMessage() {} func (x *RefreshAuthData) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[1] + mi := &file_responses_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -148,7 +270,7 @@ func (x *RefreshAuthData) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshAuthData.ProtoReflect.Descriptor instead. func (*RefreshAuthData) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{1} + return file_responses_proto_rawDescGZIP(), []int{4} } func (x *RefreshAuthData) GetTachyonAuthToken() []byte { @@ -179,7 +301,7 @@ type FetchMessagesResponse struct { func (x *FetchMessagesResponse) Reset() { *x = FetchMessagesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[2] + mi := &file_responses_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -192,7 +314,7 @@ func (x *FetchMessagesResponse) String() string { func (*FetchMessagesResponse) ProtoMessage() {} func (x *FetchMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[2] + mi := &file_responses_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -205,7 +327,7 @@ func (x *FetchMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FetchMessagesResponse.ProtoReflect.Descriptor instead. func (*FetchMessagesResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{2} + return file_responses_proto_rawDescGZIP(), []int{5} } func (x *FetchMessagesResponse) GetMessages() []*Message { @@ -247,7 +369,7 @@ type DeleteMessageResponse struct { func (x *DeleteMessageResponse) Reset() { *x = DeleteMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[3] + mi := &file_responses_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -260,7 +382,7 @@ func (x *DeleteMessageResponse) String() string { func (*DeleteMessageResponse) ProtoMessage() {} func (x *DeleteMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[3] + mi := &file_responses_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -273,7 +395,7 @@ func (x *DeleteMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMessageResponse.ProtoReflect.Descriptor instead. func (*DeleteMessageResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{3} + return file_responses_proto_rawDescGZIP(), []int{6} } func (x *DeleteMessageResponse) GetSuccess() bool { @@ -294,7 +416,7 @@ type UpdateConversationResponse struct { func (x *UpdateConversationResponse) Reset() { *x = UpdateConversationResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[4] + mi := &file_responses_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -307,7 +429,7 @@ func (x *UpdateConversationResponse) String() string { func (*UpdateConversationResponse) ProtoMessage() {} func (x *UpdateConversationResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[4] + mi := &file_responses_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -320,7 +442,7 @@ func (x *UpdateConversationResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateConversationResponse.ProtoReflect.Descriptor instead. func (*UpdateConversationResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{4} + return file_responses_proto_rawDescGZIP(), []int{7} } func (x *UpdateConversationResponse) GetSuccess() bool { @@ -344,7 +466,7 @@ type GetConversationTypeResponse struct { func (x *GetConversationTypeResponse) Reset() { *x = GetConversationTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[5] + mi := &file_responses_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -357,7 +479,7 @@ func (x *GetConversationTypeResponse) String() string { func (*GetConversationTypeResponse) ProtoMessage() {} func (x *GetConversationTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[5] + mi := &file_responses_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -370,7 +492,7 @@ func (x *GetConversationTypeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConversationTypeResponse.ProtoReflect.Descriptor instead. func (*GetConversationTypeResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{5} + return file_responses_proto_rawDescGZIP(), []int{8} } func (x *GetConversationTypeResponse) GetConversationID() string { @@ -410,7 +532,7 @@ type NotifyDittoActivityResponse struct { func (x *NotifyDittoActivityResponse) Reset() { *x = NotifyDittoActivityResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[6] + mi := &file_responses_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -423,7 +545,7 @@ func (x *NotifyDittoActivityResponse) String() string { func (*NotifyDittoActivityResponse) ProtoMessage() {} func (x *NotifyDittoActivityResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[6] + mi := &file_responses_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -436,7 +558,7 @@ func (x *NotifyDittoActivityResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyDittoActivityResponse.ProtoReflect.Descriptor instead. func (*NotifyDittoActivityResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{6} + return file_responses_proto_rawDescGZIP(), []int{9} } type IsBugleDefaultResponse struct { @@ -450,7 +572,7 @@ type IsBugleDefaultResponse struct { func (x *IsBugleDefaultResponse) Reset() { *x = IsBugleDefaultResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[7] + mi := &file_responses_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -463,7 +585,7 @@ func (x *IsBugleDefaultResponse) String() string { func (*IsBugleDefaultResponse) ProtoMessage() {} func (x *IsBugleDefaultResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[7] + mi := &file_responses_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -476,7 +598,7 @@ func (x *IsBugleDefaultResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IsBugleDefaultResponse.ProtoReflect.Descriptor instead. func (*IsBugleDefaultResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{7} + return file_responses_proto_rawDescGZIP(), []int{10} } func (x *IsBugleDefaultResponse) GetSuccess() bool { @@ -497,7 +619,7 @@ type GetUpdatesResponse struct { func (x *GetUpdatesResponse) Reset() { *x = GetUpdatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[8] + mi := &file_responses_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -510,7 +632,7 @@ func (x *GetUpdatesResponse) String() string { func (*GetUpdatesResponse) ProtoMessage() {} func (x *GetUpdatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[8] + mi := &file_responses_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -523,7 +645,7 @@ func (x *GetUpdatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUpdatesResponse.ProtoReflect.Descriptor instead. func (*GetUpdatesResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{8} + return file_responses_proto_rawDescGZIP(), []int{11} } func (x *GetUpdatesResponse) GetData() *UserAlertEvent { @@ -544,7 +666,7 @@ type SendMessageResponse struct { func (x *SendMessageResponse) Reset() { *x = SendMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[9] + mi := &file_responses_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -557,7 +679,7 @@ func (x *SendMessageResponse) String() string { func (*SendMessageResponse) ProtoMessage() {} func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[9] + mi := &file_responses_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -570,7 +692,7 @@ func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. func (*SendMessageResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{9} + return file_responses_proto_rawDescGZIP(), []int{12} } func (x *SendMessageResponse) GetType() int64 { @@ -593,7 +715,7 @@ type RefreshPhoneRelayResponse struct { func (x *RefreshPhoneRelayResponse) Reset() { *x = RefreshPhoneRelayResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[10] + mi := &file_responses_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -606,7 +728,7 @@ func (x *RefreshPhoneRelayResponse) String() string { func (*RefreshPhoneRelayResponse) ProtoMessage() {} func (x *RefreshPhoneRelayResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[10] + mi := &file_responses_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -619,7 +741,7 @@ func (x *RefreshPhoneRelayResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RefreshPhoneRelayResponse.ProtoReflect.Descriptor instead. func (*RefreshPhoneRelayResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{10} + return file_responses_proto_rawDescGZIP(), []int{13} } func (x *RefreshPhoneRelayResponse) GetCoordinates() *CoordinateMessage { @@ -655,7 +777,7 @@ type WebEncryptionKeyResponse struct { func (x *WebEncryptionKeyResponse) Reset() { *x = WebEncryptionKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[11] + mi := &file_responses_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -668,7 +790,7 @@ func (x *WebEncryptionKeyResponse) String() string { func (*WebEncryptionKeyResponse) ProtoMessage() {} func (x *WebEncryptionKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[11] + mi := &file_responses_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -681,7 +803,7 @@ func (x *WebEncryptionKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WebEncryptionKeyResponse.ProtoReflect.Descriptor instead. func (*WebEncryptionKeyResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{11} + return file_responses_proto_rawDescGZIP(), []int{14} } func (x *WebEncryptionKeyResponse) GetCoordinates() *CoordinateMessage { @@ -714,7 +836,7 @@ type RegisterPhoneRelayResponse struct { func (x *RegisterPhoneRelayResponse) Reset() { *x = RegisterPhoneRelayResponse{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[12] + mi := &file_responses_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -727,7 +849,7 @@ func (x *RegisterPhoneRelayResponse) String() string { func (*RegisterPhoneRelayResponse) ProtoMessage() {} func (x *RegisterPhoneRelayResponse) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[12] + mi := &file_responses_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -740,7 +862,7 @@ func (x *RegisterPhoneRelayResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterPhoneRelayResponse.ProtoReflect.Descriptor instead. func (*RegisterPhoneRelayResponse) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{12} + return file_responses_proto_rawDescGZIP(), []int{15} } func (x *RegisterPhoneRelayResponse) GetCoordinates() *CoordinateMessage { @@ -796,7 +918,7 @@ type CoordinateMessage struct { func (x *CoordinateMessage) Reset() { *x = CoordinateMessage{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[13] + mi := &file_responses_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -809,7 +931,7 @@ func (x *CoordinateMessage) String() string { func (*CoordinateMessage) ProtoMessage() {} func (x *CoordinateMessage) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[13] + mi := &file_responses_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -822,7 +944,7 @@ func (x *CoordinateMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use CoordinateMessage.ProtoReflect.Descriptor instead. func (*CoordinateMessage) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{13} + return file_responses_proto_rawDescGZIP(), []int{16} } func (x *CoordinateMessage) GetCoord1() int64 { @@ -844,7 +966,7 @@ type AuthKeyData struct { func (x *AuthKeyData) Reset() { *x = AuthKeyData{} if protoimpl.UnsafeEnabled { - mi := &file_responses_proto_msgTypes[14] + mi := &file_responses_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -857,7 +979,7 @@ func (x *AuthKeyData) String() string { func (*AuthKeyData) ProtoMessage() {} func (x *AuthKeyData) ProtoReflect() protoreflect.Message { - mi := &file_responses_proto_msgTypes[14] + mi := &file_responses_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -870,7 +992,7 @@ func (x *AuthKeyData) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthKeyData.ProtoReflect.Descriptor instead. func (*AuthKeyData) Descriptor() ([]byte, []int) { - return file_responses_proto_rawDescGZIP(), []int{14} + return file_responses_proto_rawDescGZIP(), []int{17} } func (x *AuthKeyData) GetTachyonAuthToken() []byte { @@ -895,104 +1017,119 @@ var file_responses_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, - 0x53, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x44, 0x61, 0x74, 0x61, 0x22, 0x59, 0x0a, 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, - 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, - 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x22, - 0xbe, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x6f, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x09, 0x73, 0x6f, 0x6d, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, - 0x22, 0x31, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x22, 0x36, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, - 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x31, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x31, 0x12, 0x18, 0x0a, - 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, 0x22, 0x1d, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x44, 0x69, 0x74, 0x74, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x0a, 0x16, 0x49, 0x73, 0x42, 0x75, 0x67, 0x6c, - 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x40, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x13, - 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x69, 0x72, 0x4b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x69, 0x72, 0x4b, 0x65, 0x79, 0x12, - 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x22, 0x6c, 0x0a, 0x18, 0x57, - 0x65, 0x62, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, - 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, - 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x9e, 0x02, 0x0a, 0x1a, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x72, - 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, - 0x6e, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x62, 0x72, 0x6f, 0x77, - 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x62, 0x72, 0x6f, - 0x77, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x4b, - 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, - 0x67, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, - 0x12, 0x38, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, - 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, 0x44, 0x22, 0x2b, 0x0a, 0x11, 0x43, 0x6f, - 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x31, 0x22, 0x55, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x4b, - 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, 0x6f, - 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x2a, 0x31, - 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, - 0x4e, 0x56, 0x45, 0x52, 0x53, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, - 0x00, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, - 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4a, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x54, 0x68, + 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x32, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, + 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x22, 0x5f, 0x0a, 0x09, 0x54, + 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, + 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7a, 0x0a, 0x0d, + 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x73, 0x6f, 0x6d, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x70, 0x69, 0x78, + 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x50, 0x69, 0x78, 0x65, 0x6c, 0x73, + 0x52, 0x06, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x73, 0x22, 0x53, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x22, 0x59, 0x0a, + 0x0f, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x41, 0x75, 0x74, 0x68, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x74, 0x61, 0x63, 0x68, + 0x79, 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x22, 0xbe, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x74, + 0x63, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x6d, 0x65, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x6f, 0x6d, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x75, + 0x72, 0x73, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x75, 0x72, 0x73, 0x6f, + 0x72, 0x52, 0x06, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x22, 0x31, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x36, 0x0a, 0x1a, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x62, 0x6f, 0x6f, 0x6c, 0x31, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x32, + 0x22, 0x1d, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x44, 0x69, 0x74, 0x74, 0x6f, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x32, 0x0a, 0x16, 0x49, 0x73, 0x42, 0x75, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x22, 0x40, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x22, 0x91, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, + 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x69, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x70, 0x61, 0x69, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x46, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x46, 0x6f, 0x72, 0x22, 0x6c, 0x0a, 0x18, 0x57, 0x65, 0x62, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x22, 0x9e, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x73, 0x12, 0x2a, 0x0a, 0x07, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0a, 0x70, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, + 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x12, 0x38, 0x0a, 0x0b, 0x61, 0x75, 0x74, + 0x68, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x4b, + 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x49, + 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x49, 0x44, 0x22, 0x2b, 0x0a, 0x11, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x72, + 0x64, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x31, + 0x22, 0x55, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x2a, 0x0a, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x74, 0x61, 0x63, 0x68, 0x79, + 0x6f, 0x6e, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x46, 0x6f, 0x72, 0x42, 0x0e, 0x5a, 0x0c, 0x2e, 0x2e, 0x2f, 0x2e, 0x2e, + 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1007,45 +1144,50 @@ func file_responses_proto_rawDescGZIP() []byte { return file_responses_proto_rawDescData } -var file_responses_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_responses_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_responses_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_responses_proto_goTypes = []interface{}{ - (ConversationType)(0), // 0: responses.ConversationType - (*RegisterRefreshResponse)(nil), // 1: responses.RegisterRefreshResponse - (*RefreshAuthData)(nil), // 2: responses.RefreshAuthData - (*FetchMessagesResponse)(nil), // 3: responses.FetchMessagesResponse - (*DeleteMessageResponse)(nil), // 4: responses.DeleteMessageResponse - (*UpdateConversationResponse)(nil), // 5: responses.UpdateConversationResponse - (*GetConversationTypeResponse)(nil), // 6: responses.GetConversationTypeResponse - (*NotifyDittoActivityResponse)(nil), // 7: responses.NotifyDittoActivityResponse - (*IsBugleDefaultResponse)(nil), // 8: responses.IsBugleDefaultResponse - (*GetUpdatesResponse)(nil), // 9: responses.GetUpdatesResponse - (*SendMessageResponse)(nil), // 10: responses.SendMessageResponse - (*RefreshPhoneRelayResponse)(nil), // 11: responses.RefreshPhoneRelayResponse - (*WebEncryptionKeyResponse)(nil), // 12: responses.WebEncryptionKeyResponse - (*RegisterPhoneRelayResponse)(nil), // 13: responses.RegisterPhoneRelayResponse - (*CoordinateMessage)(nil), // 14: responses.CoordinateMessage - (*AuthKeyData)(nil), // 15: responses.AuthKeyData - (*Message)(nil), // 16: conversations.Message - (*Cursor)(nil), // 17: conversations.Cursor - (*UserAlertEvent)(nil), // 18: events.UserAlertEvent - (*Device)(nil), // 19: messages.Device + (*ParticipantThumbnail)(nil), // 0: responses.ParticipantThumbnail + (*Thumbnail)(nil), // 1: responses.Thumbnail + (*ThumbnailData)(nil), // 2: responses.ThumbnailData + (*RegisterRefreshResponse)(nil), // 3: responses.RegisterRefreshResponse + (*RefreshAuthData)(nil), // 4: responses.RefreshAuthData + (*FetchMessagesResponse)(nil), // 5: responses.FetchMessagesResponse + (*DeleteMessageResponse)(nil), // 6: responses.DeleteMessageResponse + (*UpdateConversationResponse)(nil), // 7: responses.UpdateConversationResponse + (*GetConversationTypeResponse)(nil), // 8: responses.GetConversationTypeResponse + (*NotifyDittoActivityResponse)(nil), // 9: responses.NotifyDittoActivityResponse + (*IsBugleDefaultResponse)(nil), // 10: responses.IsBugleDefaultResponse + (*GetUpdatesResponse)(nil), // 11: responses.GetUpdatesResponse + (*SendMessageResponse)(nil), // 12: responses.SendMessageResponse + (*RefreshPhoneRelayResponse)(nil), // 13: responses.RefreshPhoneRelayResponse + (*WebEncryptionKeyResponse)(nil), // 14: responses.WebEncryptionKeyResponse + (*RegisterPhoneRelayResponse)(nil), // 15: responses.RegisterPhoneRelayResponse + (*CoordinateMessage)(nil), // 16: responses.CoordinateMessage + (*AuthKeyData)(nil), // 17: responses.AuthKeyData + (*Pixels)(nil), // 18: conversations.Pixels + (*Message)(nil), // 19: conversations.Message + (*Cursor)(nil), // 20: conversations.Cursor + (*UserAlertEvent)(nil), // 21: events.UserAlertEvent + (*Device)(nil), // 22: messages.Device } var file_responses_proto_depIdxs = []int32{ - 2, // 0: responses.RegisterRefreshResponse.tokenData:type_name -> responses.RefreshAuthData - 16, // 1: responses.FetchMessagesResponse.messages:type_name -> conversations.Message - 17, // 2: responses.FetchMessagesResponse.cursor:type_name -> conversations.Cursor - 18, // 3: responses.GetUpdatesResponse.data:type_name -> events.UserAlertEvent - 14, // 4: responses.RefreshPhoneRelayResponse.coordinates:type_name -> responses.CoordinateMessage - 14, // 5: responses.WebEncryptionKeyResponse.coordinates:type_name -> responses.CoordinateMessage - 14, // 6: responses.RegisterPhoneRelayResponse.coordinates:type_name -> responses.CoordinateMessage - 19, // 7: responses.RegisterPhoneRelayResponse.browser:type_name -> messages.Device - 15, // 8: responses.RegisterPhoneRelayResponse.authKeyData:type_name -> responses.AuthKeyData - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 1, // 0: responses.ParticipantThumbnail.thumbnail:type_name -> responses.Thumbnail + 2, // 1: responses.Thumbnail.data:type_name -> responses.ThumbnailData + 18, // 2: responses.ThumbnailData.pixels:type_name -> conversations.Pixels + 4, // 3: responses.RegisterRefreshResponse.tokenData:type_name -> responses.RefreshAuthData + 19, // 4: responses.FetchMessagesResponse.messages:type_name -> conversations.Message + 20, // 5: responses.FetchMessagesResponse.cursor:type_name -> conversations.Cursor + 21, // 6: responses.GetUpdatesResponse.data:type_name -> events.UserAlertEvent + 16, // 7: responses.RefreshPhoneRelayResponse.coordinates:type_name -> responses.CoordinateMessage + 16, // 8: responses.WebEncryptionKeyResponse.coordinates:type_name -> responses.CoordinateMessage + 16, // 9: responses.RegisterPhoneRelayResponse.coordinates:type_name -> responses.CoordinateMessage + 22, // 10: responses.RegisterPhoneRelayResponse.browser:type_name -> messages.Device + 17, // 11: responses.RegisterPhoneRelayResponse.authKeyData:type_name -> responses.AuthKeyData + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_responses_proto_init() } @@ -1058,7 +1200,7 @@ func file_responses_proto_init() { file_conversations_proto_init() if !protoimpl.UnsafeEnabled { file_responses_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterRefreshResponse); i { + switch v := v.(*ParticipantThumbnail); i { case 0: return &v.state case 1: @@ -1070,7 +1212,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshAuthData); i { + switch v := v.(*Thumbnail); i { case 0: return &v.state case 1: @@ -1082,7 +1224,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchMessagesResponse); i { + switch v := v.(*ThumbnailData); i { case 0: return &v.state case 1: @@ -1094,7 +1236,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteMessageResponse); i { + switch v := v.(*RegisterRefreshResponse); i { case 0: return &v.state case 1: @@ -1106,7 +1248,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateConversationResponse); i { + switch v := v.(*RefreshAuthData); i { case 0: return &v.state case 1: @@ -1118,7 +1260,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConversationTypeResponse); i { + switch v := v.(*FetchMessagesResponse); i { case 0: return &v.state case 1: @@ -1130,7 +1272,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotifyDittoActivityResponse); i { + switch v := v.(*DeleteMessageResponse); i { case 0: return &v.state case 1: @@ -1142,7 +1284,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsBugleDefaultResponse); i { + switch v := v.(*UpdateConversationResponse); i { case 0: return &v.state case 1: @@ -1154,7 +1296,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUpdatesResponse); i { + switch v := v.(*GetConversationTypeResponse); i { case 0: return &v.state case 1: @@ -1166,7 +1308,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendMessageResponse); i { + switch v := v.(*NotifyDittoActivityResponse); i { case 0: return &v.state case 1: @@ -1178,7 +1320,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RefreshPhoneRelayResponse); i { + switch v := v.(*IsBugleDefaultResponse); i { case 0: return &v.state case 1: @@ -1190,7 +1332,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WebEncryptionKeyResponse); i { + switch v := v.(*GetUpdatesResponse); i { case 0: return &v.state case 1: @@ -1202,7 +1344,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterPhoneRelayResponse); i { + switch v := v.(*SendMessageResponse); i { case 0: return &v.state case 1: @@ -1214,7 +1356,7 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CoordinateMessage); i { + switch v := v.(*RefreshPhoneRelayResponse); i { case 0: return &v.state case 1: @@ -1226,6 +1368,42 @@ func file_responses_proto_init() { } } file_responses_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WebEncryptionKeyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_responses_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterPhoneRelayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_responses_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CoordinateMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_responses_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AuthKeyData); i { case 0: return &v.state @@ -1243,14 +1421,13 @@ func file_responses_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_responses_proto_rawDesc, - NumEnums: 1, - NumMessages: 15, + NumEnums: 0, + NumMessages: 18, NumExtensions: 0, NumServices: 0, }, GoTypes: file_responses_proto_goTypes, DependencyIndexes: file_responses_proto_depIdxs, - EnumInfos: file_responses_proto_enumTypes, MessageInfos: file_responses_proto_msgTypes, }.Build() File_responses_proto = out.File diff --git a/libgm/conversations.go b/libgm/conversations.go index 859e06b..3f9582c 100644 --- a/libgm/conversations.go +++ b/libgm/conversations.go @@ -122,3 +122,53 @@ func (c *Conversations) SendMessage(messageBuilder *MessageBuilder) (*binary.Sen c.client.Logger.Debug().Any("res", res).Msg("sent message!") return res, nil } + +func (c *Conversations) GetParticipantThumbnail(convID string) (*binary.ParticipantThumbnail, error) { + payload := &binary.GetParticipantThumbnailPayload{ConversationID: convID} + actionType := binary.ActionType_GET_PARTICIPANTS_THUMBNAIL + + sentRequestId, sendErr := c.client.sessionHandler.completeSendMessage(actionType, true, payload) + if sendErr != nil { + return nil, sendErr + } + + response, err := c.client.sessionHandler.WaitForResponse(sentRequestId, actionType) + if err != nil { + return nil, err + } + + res, ok := response.Data.Decrypted.(*binary.ParticipantThumbnail) + if !ok { + return nil, fmt.Errorf("failed to assert response into ParticipantThumbnail") + } + + return res, nil +} + +func (c *Conversations) Update(convBuilder *ConversationBuilder) (*binary.UpdateConversationResponse, error) { + data := &binary.UpdateConversationPayload{} + + payload, buildErr := convBuilder.Build(data) + if buildErr != nil { + panic(buildErr) + } + + actionType := binary.ActionType_UPDATE_CONVERSATION + + sentRequestId, sendErr := c.client.sessionHandler.completeSendMessage(actionType, true, payload) + if sendErr != nil { + return nil, sendErr + } + + response, err := c.client.sessionHandler.WaitForResponse(sentRequestId, actionType) + if err != nil { + return nil, err + } + + res, ok := response.Data.Decrypted.(*binary.UpdateConversationResponse) + if !ok { + return nil, fmt.Errorf("failed to assert response into UpdateConversationResponse") + } + + return res, nil +} diff --git a/libgm/routes/conversations.go b/libgm/routes/conversations.go index 6f78cc5..1173e7f 100644 --- a/libgm/routes/conversations.go +++ b/libgm/routes/conversations.go @@ -28,3 +28,21 @@ var GET_CONVERSATION_TYPE = Route{ UseSessionID: false, UseTTL: true, } + +var GET_PARTICIPANT_THUMBNAIL = Route{ + Action: binary.ActionType_GET_PARTICIPANTS_THUMBNAIL, + MessageType: binary.MessageType_BUGLE_MESSAGE, + BugleRoute: binary.BugleRoute_DataEvent, + ResponseStruct: &binary.ParticipantThumbnail{}, + UseSessionID: false, + UseTTL: true, +} + +var UPDATE_CONVERSATION = Route{ + Action: binary.ActionType_UPDATE_CONVERSATION, + MessageType: binary.MessageType_BUGLE_MESSAGE, + BugleRoute: binary.BugleRoute_DataEvent, + ResponseStruct: &binary.UpdateConversationResponse{}, + UseSessionID: false, + UseTTL: true, +} diff --git a/libgm/routes/mapped.go b/libgm/routes/mapped.go index d0d8e41..8b7c0c2 100644 --- a/libgm/routes/mapped.go +++ b/libgm/routes/mapped.go @@ -16,14 +16,15 @@ type Route struct { } var Routes = map[binary.ActionType]Route{ - binary.ActionType_IS_BUGLE_DEFAULT: IS_BUGLE_DEFAULT, - binary.ActionType_GET_UPDATES: GET_UPDATES, - binary.ActionType_LIST_CONVERSATIONS: LIST_CONVERSATIONS, - binary.ActionType_LIST_CONVERSATIONS_SYNC: LIST_CONVERSATIONS_WITH_UPDATES, - binary.ActionType_NOTIFY_DITTO_ACTIVITY: NOTIFY_DITTO_ACTIVITY, - binary.ActionType_GET_CONVERSATION_TYPE: GET_CONVERSATION_TYPE, - binary.ActionType_LIST_MESSAGES: LIST_MESSAGES, - binary.ActionType_SEND_MESSAGE: SEND_MESSAGE, - binary.ActionType_SEND_REACTION: SEND_REACTION, - binary.ActionType_DELETE_MESSAGE: DELETE_MESSAGE, + binary.ActionType_IS_BUGLE_DEFAULT: IS_BUGLE_DEFAULT, + binary.ActionType_GET_UPDATES: GET_UPDATES, + binary.ActionType_LIST_CONVERSATIONS: LIST_CONVERSATIONS, + binary.ActionType_LIST_CONVERSATIONS_SYNC: LIST_CONVERSATIONS_WITH_UPDATES, + binary.ActionType_NOTIFY_DITTO_ACTIVITY: NOTIFY_DITTO_ACTIVITY, + binary.ActionType_GET_CONVERSATION_TYPE: GET_CONVERSATION_TYPE, + binary.ActionType_LIST_MESSAGES: LIST_MESSAGES, + binary.ActionType_SEND_MESSAGE: SEND_MESSAGE, + binary.ActionType_SEND_REACTION: SEND_REACTION, + binary.ActionType_DELETE_MESSAGE: DELETE_MESSAGE, + binary.ActionType_GET_PARTICIPANTS_THUMBNAIL: GET_PARTICIPANT_THUMBNAIL, }