github.com/status-im/status-go@v1.1.0/protocol/protobuf/chat_message.pb.go (about) 1 // Code generated by protoc-gen-go. DO NOT EDIT. 2 // versions: 3 // protoc-gen-go v1.31.0 4 // protoc v3.20.3 5 // source: chat_message.proto 6 7 package protobuf 8 9 import ( 10 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 11 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 12 reflect "reflect" 13 sync "sync" 14 ) 15 16 const ( 17 // Verify that this generated code is sufficiently up-to-date. 18 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 19 // Verify that runtime/protoimpl is sufficiently up-to-date. 20 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 21 ) 22 23 type AudioMessage_AudioType int32 24 25 const ( 26 AudioMessage_UNKNOWN_AUDIO_TYPE AudioMessage_AudioType = 0 27 AudioMessage_AAC AudioMessage_AudioType = 1 28 AudioMessage_AMR AudioMessage_AudioType = 2 29 ) 30 31 // Enum value maps for AudioMessage_AudioType. 32 var ( 33 AudioMessage_AudioType_name = map[int32]string{ 34 0: "UNKNOWN_AUDIO_TYPE", 35 1: "AAC", 36 2: "AMR", 37 } 38 AudioMessage_AudioType_value = map[string]int32{ 39 "UNKNOWN_AUDIO_TYPE": 0, 40 "AAC": 1, 41 "AMR": 2, 42 } 43 ) 44 45 func (x AudioMessage_AudioType) Enum() *AudioMessage_AudioType { 46 p := new(AudioMessage_AudioType) 47 *p = x 48 return p 49 } 50 51 func (x AudioMessage_AudioType) String() string { 52 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 53 } 54 55 func (AudioMessage_AudioType) Descriptor() protoreflect.EnumDescriptor { 56 return file_chat_message_proto_enumTypes[0].Descriptor() 57 } 58 59 func (AudioMessage_AudioType) Type() protoreflect.EnumType { 60 return &file_chat_message_proto_enumTypes[0] 61 } 62 63 func (x AudioMessage_AudioType) Number() protoreflect.EnumNumber { 64 return protoreflect.EnumNumber(x) 65 } 66 67 // Deprecated: Use AudioMessage_AudioType.Descriptor instead. 68 func (AudioMessage_AudioType) EnumDescriptor() ([]byte, []int) { 69 return file_chat_message_proto_rawDescGZIP(), []int{2, 0} 70 } 71 72 type UnfurledLink_LinkType int32 73 74 const ( 75 UnfurledLink_LINK UnfurledLink_LinkType = 0 76 UnfurledLink_IMAGE UnfurledLink_LinkType = 1 77 ) 78 79 // Enum value maps for UnfurledLink_LinkType. 80 var ( 81 UnfurledLink_LinkType_name = map[int32]string{ 82 0: "LINK", 83 1: "IMAGE", 84 } 85 UnfurledLink_LinkType_value = map[string]int32{ 86 "LINK": 0, 87 "IMAGE": 1, 88 } 89 ) 90 91 func (x UnfurledLink_LinkType) Enum() *UnfurledLink_LinkType { 92 p := new(UnfurledLink_LinkType) 93 *p = x 94 return p 95 } 96 97 func (x UnfurledLink_LinkType) String() string { 98 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 99 } 100 101 func (UnfurledLink_LinkType) Descriptor() protoreflect.EnumDescriptor { 102 return file_chat_message_proto_enumTypes[1].Descriptor() 103 } 104 105 func (UnfurledLink_LinkType) Type() protoreflect.EnumType { 106 return &file_chat_message_proto_enumTypes[1] 107 } 108 109 func (x UnfurledLink_LinkType) Number() protoreflect.EnumNumber { 110 return protoreflect.EnumNumber(x) 111 } 112 113 // Deprecated: Use UnfurledLink_LinkType.Descriptor instead. 114 func (UnfurledLink_LinkType) EnumDescriptor() ([]byte, []int) { 115 return file_chat_message_proto_rawDescGZIP(), []int{12, 0} 116 } 117 118 type ChatMessage_ContentType int32 119 120 const ( 121 ChatMessage_UNKNOWN_CONTENT_TYPE ChatMessage_ContentType = 0 122 ChatMessage_TEXT_PLAIN ChatMessage_ContentType = 1 123 ChatMessage_STICKER ChatMessage_ContentType = 2 124 ChatMessage_STATUS ChatMessage_ContentType = 3 125 ChatMessage_EMOJI ChatMessage_ContentType = 4 126 ChatMessage_TRANSACTION_COMMAND ChatMessage_ContentType = 5 127 // Only local 128 ChatMessage_SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP ChatMessage_ContentType = 6 129 ChatMessage_IMAGE ChatMessage_ContentType = 7 130 ChatMessage_AUDIO ChatMessage_ContentType = 8 131 ChatMessage_COMMUNITY ChatMessage_ContentType = 9 132 // Only local 133 ChatMessage_SYSTEM_MESSAGE_GAP ChatMessage_ContentType = 10 134 ChatMessage_CONTACT_REQUEST ChatMessage_ContentType = 11 135 ChatMessage_DISCORD_MESSAGE ChatMessage_ContentType = 12 136 ChatMessage_IDENTITY_VERIFICATION ChatMessage_ContentType = 13 137 // Only local 138 ChatMessage_SYSTEM_MESSAGE_PINNED_MESSAGE ChatMessage_ContentType = 14 139 // Only local 140 ChatMessage_SYSTEM_MESSAGE_MUTUAL_EVENT_SENT ChatMessage_ContentType = 15 141 // Only local 142 ChatMessage_SYSTEM_MESSAGE_MUTUAL_EVENT_ACCEPTED ChatMessage_ContentType = 16 143 // Only local 144 ChatMessage_SYSTEM_MESSAGE_MUTUAL_EVENT_REMOVED ChatMessage_ContentType = 17 145 ChatMessage_BRIDGE_MESSAGE ChatMessage_ContentType = 18 146 ) 147 148 // Enum value maps for ChatMessage_ContentType. 149 var ( 150 ChatMessage_ContentType_name = map[int32]string{ 151 0: "UNKNOWN_CONTENT_TYPE", 152 1: "TEXT_PLAIN", 153 2: "STICKER", 154 3: "STATUS", 155 4: "EMOJI", 156 5: "TRANSACTION_COMMAND", 157 6: "SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP", 158 7: "IMAGE", 159 8: "AUDIO", 160 9: "COMMUNITY", 161 10: "SYSTEM_MESSAGE_GAP", 162 11: "CONTACT_REQUEST", 163 12: "DISCORD_MESSAGE", 164 13: "IDENTITY_VERIFICATION", 165 14: "SYSTEM_MESSAGE_PINNED_MESSAGE", 166 15: "SYSTEM_MESSAGE_MUTUAL_EVENT_SENT", 167 16: "SYSTEM_MESSAGE_MUTUAL_EVENT_ACCEPTED", 168 17: "SYSTEM_MESSAGE_MUTUAL_EVENT_REMOVED", 169 18: "BRIDGE_MESSAGE", 170 } 171 ChatMessage_ContentType_value = map[string]int32{ 172 "UNKNOWN_CONTENT_TYPE": 0, 173 "TEXT_PLAIN": 1, 174 "STICKER": 2, 175 "STATUS": 3, 176 "EMOJI": 4, 177 "TRANSACTION_COMMAND": 5, 178 "SYSTEM_MESSAGE_CONTENT_PRIVATE_GROUP": 6, 179 "IMAGE": 7, 180 "AUDIO": 8, 181 "COMMUNITY": 9, 182 "SYSTEM_MESSAGE_GAP": 10, 183 "CONTACT_REQUEST": 11, 184 "DISCORD_MESSAGE": 12, 185 "IDENTITY_VERIFICATION": 13, 186 "SYSTEM_MESSAGE_PINNED_MESSAGE": 14, 187 "SYSTEM_MESSAGE_MUTUAL_EVENT_SENT": 15, 188 "SYSTEM_MESSAGE_MUTUAL_EVENT_ACCEPTED": 16, 189 "SYSTEM_MESSAGE_MUTUAL_EVENT_REMOVED": 17, 190 "BRIDGE_MESSAGE": 18, 191 } 192 ) 193 194 func (x ChatMessage_ContentType) Enum() *ChatMessage_ContentType { 195 p := new(ChatMessage_ContentType) 196 *p = x 197 return p 198 } 199 200 func (x ChatMessage_ContentType) String() string { 201 return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) 202 } 203 204 func (ChatMessage_ContentType) Descriptor() protoreflect.EnumDescriptor { 205 return file_chat_message_proto_enumTypes[2].Descriptor() 206 } 207 208 func (ChatMessage_ContentType) Type() protoreflect.EnumType { 209 return &file_chat_message_proto_enumTypes[2] 210 } 211 212 func (x ChatMessage_ContentType) Number() protoreflect.EnumNumber { 213 return protoreflect.EnumNumber(x) 214 } 215 216 // Deprecated: Use ChatMessage_ContentType.Descriptor instead. 217 func (ChatMessage_ContentType) EnumDescriptor() ([]byte, []int) { 218 return file_chat_message_proto_rawDescGZIP(), []int{18, 0} 219 } 220 221 type StickerMessage struct { 222 state protoimpl.MessageState 223 sizeCache protoimpl.SizeCache 224 unknownFields protoimpl.UnknownFields 225 226 Hash string `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"` 227 Pack int32 `protobuf:"varint,2,opt,name=pack,proto3" json:"pack,omitempty"` 228 } 229 230 func (x *StickerMessage) Reset() { 231 *x = StickerMessage{} 232 if protoimpl.UnsafeEnabled { 233 mi := &file_chat_message_proto_msgTypes[0] 234 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 235 ms.StoreMessageInfo(mi) 236 } 237 } 238 239 func (x *StickerMessage) String() string { 240 return protoimpl.X.MessageStringOf(x) 241 } 242 243 func (*StickerMessage) ProtoMessage() {} 244 245 func (x *StickerMessage) ProtoReflect() protoreflect.Message { 246 mi := &file_chat_message_proto_msgTypes[0] 247 if protoimpl.UnsafeEnabled && x != nil { 248 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 249 if ms.LoadMessageInfo() == nil { 250 ms.StoreMessageInfo(mi) 251 } 252 return ms 253 } 254 return mi.MessageOf(x) 255 } 256 257 // Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead. 258 func (*StickerMessage) Descriptor() ([]byte, []int) { 259 return file_chat_message_proto_rawDescGZIP(), []int{0} 260 } 261 262 func (x *StickerMessage) GetHash() string { 263 if x != nil { 264 return x.Hash 265 } 266 return "" 267 } 268 269 func (x *StickerMessage) GetPack() int32 { 270 if x != nil { 271 return x.Pack 272 } 273 return 0 274 } 275 276 type ImageMessage struct { 277 state protoimpl.MessageState 278 sizeCache protoimpl.SizeCache 279 unknownFields protoimpl.UnknownFields 280 281 Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` 282 Format ImageFormat `protobuf:"varint,2,opt,name=format,proto3,enum=protobuf.ImageFormat" json:"format,omitempty"` 283 AlbumId string `protobuf:"bytes,3,opt,name=album_id,json=albumId,proto3" json:"album_id,omitempty"` 284 Width uint32 `protobuf:"varint,4,opt,name=width,proto3" json:"width,omitempty"` 285 Height uint32 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` 286 AlbumImagesCount uint32 `protobuf:"varint,6,opt,name=album_images_count,json=albumImagesCount,proto3" json:"album_images_count,omitempty"` 287 } 288 289 func (x *ImageMessage) Reset() { 290 *x = ImageMessage{} 291 if protoimpl.UnsafeEnabled { 292 mi := &file_chat_message_proto_msgTypes[1] 293 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 294 ms.StoreMessageInfo(mi) 295 } 296 } 297 298 func (x *ImageMessage) String() string { 299 return protoimpl.X.MessageStringOf(x) 300 } 301 302 func (*ImageMessage) ProtoMessage() {} 303 304 func (x *ImageMessage) ProtoReflect() protoreflect.Message { 305 mi := &file_chat_message_proto_msgTypes[1] 306 if protoimpl.UnsafeEnabled && x != nil { 307 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 308 if ms.LoadMessageInfo() == nil { 309 ms.StoreMessageInfo(mi) 310 } 311 return ms 312 } 313 return mi.MessageOf(x) 314 } 315 316 // Deprecated: Use ImageMessage.ProtoReflect.Descriptor instead. 317 func (*ImageMessage) Descriptor() ([]byte, []int) { 318 return file_chat_message_proto_rawDescGZIP(), []int{1} 319 } 320 321 func (x *ImageMessage) GetPayload() []byte { 322 if x != nil { 323 return x.Payload 324 } 325 return nil 326 } 327 328 func (x *ImageMessage) GetFormat() ImageFormat { 329 if x != nil { 330 return x.Format 331 } 332 return ImageFormat_UNKNOWN_IMAGE_FORMAT 333 } 334 335 func (x *ImageMessage) GetAlbumId() string { 336 if x != nil { 337 return x.AlbumId 338 } 339 return "" 340 } 341 342 func (x *ImageMessage) GetWidth() uint32 { 343 if x != nil { 344 return x.Width 345 } 346 return 0 347 } 348 349 func (x *ImageMessage) GetHeight() uint32 { 350 if x != nil { 351 return x.Height 352 } 353 return 0 354 } 355 356 func (x *ImageMessage) GetAlbumImagesCount() uint32 { 357 if x != nil { 358 return x.AlbumImagesCount 359 } 360 return 0 361 } 362 363 type AudioMessage struct { 364 state protoimpl.MessageState 365 sizeCache protoimpl.SizeCache 366 unknownFields protoimpl.UnknownFields 367 368 Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` 369 Type AudioMessage_AudioType `protobuf:"varint,2,opt,name=type,proto3,enum=protobuf.AudioMessage_AudioType" json:"type,omitempty"` 370 DurationMs uint64 `protobuf:"varint,3,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"` 371 } 372 373 func (x *AudioMessage) Reset() { 374 *x = AudioMessage{} 375 if protoimpl.UnsafeEnabled { 376 mi := &file_chat_message_proto_msgTypes[2] 377 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 378 ms.StoreMessageInfo(mi) 379 } 380 } 381 382 func (x *AudioMessage) String() string { 383 return protoimpl.X.MessageStringOf(x) 384 } 385 386 func (*AudioMessage) ProtoMessage() {} 387 388 func (x *AudioMessage) ProtoReflect() protoreflect.Message { 389 mi := &file_chat_message_proto_msgTypes[2] 390 if protoimpl.UnsafeEnabled && x != nil { 391 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 392 if ms.LoadMessageInfo() == nil { 393 ms.StoreMessageInfo(mi) 394 } 395 return ms 396 } 397 return mi.MessageOf(x) 398 } 399 400 // Deprecated: Use AudioMessage.ProtoReflect.Descriptor instead. 401 func (*AudioMessage) Descriptor() ([]byte, []int) { 402 return file_chat_message_proto_rawDescGZIP(), []int{2} 403 } 404 405 func (x *AudioMessage) GetPayload() []byte { 406 if x != nil { 407 return x.Payload 408 } 409 return nil 410 } 411 412 func (x *AudioMessage) GetType() AudioMessage_AudioType { 413 if x != nil { 414 return x.Type 415 } 416 return AudioMessage_UNKNOWN_AUDIO_TYPE 417 } 418 419 func (x *AudioMessage) GetDurationMs() uint64 { 420 if x != nil { 421 return x.DurationMs 422 } 423 return 0 424 } 425 426 type EditMessage struct { 427 state protoimpl.MessageState 428 sizeCache protoimpl.SizeCache 429 unknownFields protoimpl.UnknownFields 430 431 Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` 432 // Text of the message 433 Text string `protobuf:"bytes,2,opt,name=text,proto3" json:"text,omitempty"` 434 ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` 435 MessageId string `protobuf:"bytes,4,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` 436 // Grant for community edit messages 437 // 438 // Deprecated: Marked as deprecated in chat_message.proto. 439 Grant []byte `protobuf:"bytes,5,opt,name=grant,proto3" json:"grant,omitempty"` 440 // The type of message (public/one-to-one/private-group-chat) 441 MessageType MessageType `protobuf:"varint,6,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"` 442 ContentType ChatMessage_ContentType `protobuf:"varint,7,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"` 443 UnfurledLinks []*UnfurledLink `protobuf:"bytes,8,rep,name=unfurled_links,json=unfurledLinks,proto3" json:"unfurled_links,omitempty"` 444 UnfurledStatusLinks *UnfurledStatusLinks `protobuf:"bytes,9,opt,name=unfurled_status_links,json=unfurledStatusLinks,proto3" json:"unfurled_status_links,omitempty"` 445 } 446 447 func (x *EditMessage) Reset() { 448 *x = EditMessage{} 449 if protoimpl.UnsafeEnabled { 450 mi := &file_chat_message_proto_msgTypes[3] 451 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 452 ms.StoreMessageInfo(mi) 453 } 454 } 455 456 func (x *EditMessage) String() string { 457 return protoimpl.X.MessageStringOf(x) 458 } 459 460 func (*EditMessage) ProtoMessage() {} 461 462 func (x *EditMessage) ProtoReflect() protoreflect.Message { 463 mi := &file_chat_message_proto_msgTypes[3] 464 if protoimpl.UnsafeEnabled && x != nil { 465 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 466 if ms.LoadMessageInfo() == nil { 467 ms.StoreMessageInfo(mi) 468 } 469 return ms 470 } 471 return mi.MessageOf(x) 472 } 473 474 // Deprecated: Use EditMessage.ProtoReflect.Descriptor instead. 475 func (*EditMessage) Descriptor() ([]byte, []int) { 476 return file_chat_message_proto_rawDescGZIP(), []int{3} 477 } 478 479 func (x *EditMessage) GetClock() uint64 { 480 if x != nil { 481 return x.Clock 482 } 483 return 0 484 } 485 486 func (x *EditMessage) GetText() string { 487 if x != nil { 488 return x.Text 489 } 490 return "" 491 } 492 493 func (x *EditMessage) GetChatId() string { 494 if x != nil { 495 return x.ChatId 496 } 497 return "" 498 } 499 500 func (x *EditMessage) GetMessageId() string { 501 if x != nil { 502 return x.MessageId 503 } 504 return "" 505 } 506 507 // Deprecated: Marked as deprecated in chat_message.proto. 508 func (x *EditMessage) GetGrant() []byte { 509 if x != nil { 510 return x.Grant 511 } 512 return nil 513 } 514 515 func (x *EditMessage) GetMessageType() MessageType { 516 if x != nil { 517 return x.MessageType 518 } 519 return MessageType_UNKNOWN_MESSAGE_TYPE 520 } 521 522 func (x *EditMessage) GetContentType() ChatMessage_ContentType { 523 if x != nil { 524 return x.ContentType 525 } 526 return ChatMessage_UNKNOWN_CONTENT_TYPE 527 } 528 529 func (x *EditMessage) GetUnfurledLinks() []*UnfurledLink { 530 if x != nil { 531 return x.UnfurledLinks 532 } 533 return nil 534 } 535 536 func (x *EditMessage) GetUnfurledStatusLinks() *UnfurledStatusLinks { 537 if x != nil { 538 return x.UnfurledStatusLinks 539 } 540 return nil 541 } 542 543 type DeleteMessage struct { 544 state protoimpl.MessageState 545 sizeCache protoimpl.SizeCache 546 unknownFields protoimpl.UnknownFields 547 548 Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` 549 ChatId string `protobuf:"bytes,2,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` 550 MessageId string `protobuf:"bytes,3,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` 551 // Grant for community delete messages 552 // 553 // Deprecated: Marked as deprecated in chat_message.proto. 554 Grant []byte `protobuf:"bytes,4,opt,name=grant,proto3" json:"grant,omitempty"` 555 // The type of message (public/one-to-one/private-group-chat) 556 MessageType MessageType `protobuf:"varint,5,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"` 557 DeletedBy string `protobuf:"bytes,6,opt,name=deleted_by,json=deletedBy,proto3" json:"deleted_by,omitempty"` 558 } 559 560 func (x *DeleteMessage) Reset() { 561 *x = DeleteMessage{} 562 if protoimpl.UnsafeEnabled { 563 mi := &file_chat_message_proto_msgTypes[4] 564 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 565 ms.StoreMessageInfo(mi) 566 } 567 } 568 569 func (x *DeleteMessage) String() string { 570 return protoimpl.X.MessageStringOf(x) 571 } 572 573 func (*DeleteMessage) ProtoMessage() {} 574 575 func (x *DeleteMessage) ProtoReflect() protoreflect.Message { 576 mi := &file_chat_message_proto_msgTypes[4] 577 if protoimpl.UnsafeEnabled && x != nil { 578 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 579 if ms.LoadMessageInfo() == nil { 580 ms.StoreMessageInfo(mi) 581 } 582 return ms 583 } 584 return mi.MessageOf(x) 585 } 586 587 // Deprecated: Use DeleteMessage.ProtoReflect.Descriptor instead. 588 func (*DeleteMessage) Descriptor() ([]byte, []int) { 589 return file_chat_message_proto_rawDescGZIP(), []int{4} 590 } 591 592 func (x *DeleteMessage) GetClock() uint64 { 593 if x != nil { 594 return x.Clock 595 } 596 return 0 597 } 598 599 func (x *DeleteMessage) GetChatId() string { 600 if x != nil { 601 return x.ChatId 602 } 603 return "" 604 } 605 606 func (x *DeleteMessage) GetMessageId() string { 607 if x != nil { 608 return x.MessageId 609 } 610 return "" 611 } 612 613 // Deprecated: Marked as deprecated in chat_message.proto. 614 func (x *DeleteMessage) GetGrant() []byte { 615 if x != nil { 616 return x.Grant 617 } 618 return nil 619 } 620 621 func (x *DeleteMessage) GetMessageType() MessageType { 622 if x != nil { 623 return x.MessageType 624 } 625 return MessageType_UNKNOWN_MESSAGE_TYPE 626 } 627 628 func (x *DeleteMessage) GetDeletedBy() string { 629 if x != nil { 630 return x.DeletedBy 631 } 632 return "" 633 } 634 635 type SyncDeleteForMeMessage struct { 636 state protoimpl.MessageState 637 sizeCache protoimpl.SizeCache 638 unknownFields protoimpl.UnknownFields 639 640 Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` 641 MessageId string `protobuf:"bytes,2,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"` 642 } 643 644 func (x *SyncDeleteForMeMessage) Reset() { 645 *x = SyncDeleteForMeMessage{} 646 if protoimpl.UnsafeEnabled { 647 mi := &file_chat_message_proto_msgTypes[5] 648 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 649 ms.StoreMessageInfo(mi) 650 } 651 } 652 653 func (x *SyncDeleteForMeMessage) String() string { 654 return protoimpl.X.MessageStringOf(x) 655 } 656 657 func (*SyncDeleteForMeMessage) ProtoMessage() {} 658 659 func (x *SyncDeleteForMeMessage) ProtoReflect() protoreflect.Message { 660 mi := &file_chat_message_proto_msgTypes[5] 661 if protoimpl.UnsafeEnabled && x != nil { 662 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 663 if ms.LoadMessageInfo() == nil { 664 ms.StoreMessageInfo(mi) 665 } 666 return ms 667 } 668 return mi.MessageOf(x) 669 } 670 671 // Deprecated: Use SyncDeleteForMeMessage.ProtoReflect.Descriptor instead. 672 func (*SyncDeleteForMeMessage) Descriptor() ([]byte, []int) { 673 return file_chat_message_proto_rawDescGZIP(), []int{5} 674 } 675 676 func (x *SyncDeleteForMeMessage) GetClock() uint64 { 677 if x != nil { 678 return x.Clock 679 } 680 return 0 681 } 682 683 func (x *SyncDeleteForMeMessage) GetMessageId() string { 684 if x != nil { 685 return x.MessageId 686 } 687 return "" 688 } 689 690 type DiscordMessage struct { 691 state protoimpl.MessageState 692 sizeCache protoimpl.SizeCache 693 unknownFields protoimpl.UnknownFields 694 695 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 696 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` 697 Timestamp string `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` 698 TimestampEdited string `protobuf:"bytes,4,opt,name=timestampEdited,proto3" json:"timestampEdited,omitempty"` 699 Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` 700 Author *DiscordMessageAuthor `protobuf:"bytes,6,opt,name=author,proto3" json:"author,omitempty"` 701 Reference *DiscordMessageReference `protobuf:"bytes,7,opt,name=reference,proto3" json:"reference,omitempty"` 702 Attachments []*DiscordMessageAttachment `protobuf:"bytes,8,rep,name=attachments,proto3" json:"attachments,omitempty"` 703 } 704 705 func (x *DiscordMessage) Reset() { 706 *x = DiscordMessage{} 707 if protoimpl.UnsafeEnabled { 708 mi := &file_chat_message_proto_msgTypes[6] 709 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 710 ms.StoreMessageInfo(mi) 711 } 712 } 713 714 func (x *DiscordMessage) String() string { 715 return protoimpl.X.MessageStringOf(x) 716 } 717 718 func (*DiscordMessage) ProtoMessage() {} 719 720 func (x *DiscordMessage) ProtoReflect() protoreflect.Message { 721 mi := &file_chat_message_proto_msgTypes[6] 722 if protoimpl.UnsafeEnabled && x != nil { 723 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 724 if ms.LoadMessageInfo() == nil { 725 ms.StoreMessageInfo(mi) 726 } 727 return ms 728 } 729 return mi.MessageOf(x) 730 } 731 732 // Deprecated: Use DiscordMessage.ProtoReflect.Descriptor instead. 733 func (*DiscordMessage) Descriptor() ([]byte, []int) { 734 return file_chat_message_proto_rawDescGZIP(), []int{6} 735 } 736 737 func (x *DiscordMessage) GetId() string { 738 if x != nil { 739 return x.Id 740 } 741 return "" 742 } 743 744 func (x *DiscordMessage) GetType() string { 745 if x != nil { 746 return x.Type 747 } 748 return "" 749 } 750 751 func (x *DiscordMessage) GetTimestamp() string { 752 if x != nil { 753 return x.Timestamp 754 } 755 return "" 756 } 757 758 func (x *DiscordMessage) GetTimestampEdited() string { 759 if x != nil { 760 return x.TimestampEdited 761 } 762 return "" 763 } 764 765 func (x *DiscordMessage) GetContent() string { 766 if x != nil { 767 return x.Content 768 } 769 return "" 770 } 771 772 func (x *DiscordMessage) GetAuthor() *DiscordMessageAuthor { 773 if x != nil { 774 return x.Author 775 } 776 return nil 777 } 778 779 func (x *DiscordMessage) GetReference() *DiscordMessageReference { 780 if x != nil { 781 return x.Reference 782 } 783 return nil 784 } 785 786 func (x *DiscordMessage) GetAttachments() []*DiscordMessageAttachment { 787 if x != nil { 788 return x.Attachments 789 } 790 return nil 791 } 792 793 type DiscordMessageAuthor struct { 794 state protoimpl.MessageState 795 sizeCache protoimpl.SizeCache 796 unknownFields protoimpl.UnknownFields 797 798 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 799 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` 800 Discriminator string `protobuf:"bytes,3,opt,name=discriminator,proto3" json:"discriminator,omitempty"` 801 Nickname string `protobuf:"bytes,4,opt,name=nickname,proto3" json:"nickname,omitempty"` 802 AvatarUrl string `protobuf:"bytes,5,opt,name=avatarUrl,proto3" json:"avatarUrl,omitempty"` 803 AvatarImagePayload []byte `protobuf:"bytes,6,opt,name=avatarImagePayload,proto3" json:"avatarImagePayload,omitempty"` 804 LocalUrl string `protobuf:"bytes,7,opt,name=localUrl,proto3" json:"localUrl,omitempty"` 805 } 806 807 func (x *DiscordMessageAuthor) Reset() { 808 *x = DiscordMessageAuthor{} 809 if protoimpl.UnsafeEnabled { 810 mi := &file_chat_message_proto_msgTypes[7] 811 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 812 ms.StoreMessageInfo(mi) 813 } 814 } 815 816 func (x *DiscordMessageAuthor) String() string { 817 return protoimpl.X.MessageStringOf(x) 818 } 819 820 func (*DiscordMessageAuthor) ProtoMessage() {} 821 822 func (x *DiscordMessageAuthor) ProtoReflect() protoreflect.Message { 823 mi := &file_chat_message_proto_msgTypes[7] 824 if protoimpl.UnsafeEnabled && x != nil { 825 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 826 if ms.LoadMessageInfo() == nil { 827 ms.StoreMessageInfo(mi) 828 } 829 return ms 830 } 831 return mi.MessageOf(x) 832 } 833 834 // Deprecated: Use DiscordMessageAuthor.ProtoReflect.Descriptor instead. 835 func (*DiscordMessageAuthor) Descriptor() ([]byte, []int) { 836 return file_chat_message_proto_rawDescGZIP(), []int{7} 837 } 838 839 func (x *DiscordMessageAuthor) GetId() string { 840 if x != nil { 841 return x.Id 842 } 843 return "" 844 } 845 846 func (x *DiscordMessageAuthor) GetName() string { 847 if x != nil { 848 return x.Name 849 } 850 return "" 851 } 852 853 func (x *DiscordMessageAuthor) GetDiscriminator() string { 854 if x != nil { 855 return x.Discriminator 856 } 857 return "" 858 } 859 860 func (x *DiscordMessageAuthor) GetNickname() string { 861 if x != nil { 862 return x.Nickname 863 } 864 return "" 865 } 866 867 func (x *DiscordMessageAuthor) GetAvatarUrl() string { 868 if x != nil { 869 return x.AvatarUrl 870 } 871 return "" 872 } 873 874 func (x *DiscordMessageAuthor) GetAvatarImagePayload() []byte { 875 if x != nil { 876 return x.AvatarImagePayload 877 } 878 return nil 879 } 880 881 func (x *DiscordMessageAuthor) GetLocalUrl() string { 882 if x != nil { 883 return x.LocalUrl 884 } 885 return "" 886 } 887 888 type DiscordMessageReference struct { 889 state protoimpl.MessageState 890 sizeCache protoimpl.SizeCache 891 unknownFields protoimpl.UnknownFields 892 893 MessageId string `protobuf:"bytes,1,opt,name=messageId,proto3" json:"messageId,omitempty"` 894 ChannelId string `protobuf:"bytes,2,opt,name=channelId,proto3" json:"channelId,omitempty"` 895 GuildId string `protobuf:"bytes,3,opt,name=guildId,proto3" json:"guildId,omitempty"` 896 } 897 898 func (x *DiscordMessageReference) Reset() { 899 *x = DiscordMessageReference{} 900 if protoimpl.UnsafeEnabled { 901 mi := &file_chat_message_proto_msgTypes[8] 902 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 903 ms.StoreMessageInfo(mi) 904 } 905 } 906 907 func (x *DiscordMessageReference) String() string { 908 return protoimpl.X.MessageStringOf(x) 909 } 910 911 func (*DiscordMessageReference) ProtoMessage() {} 912 913 func (x *DiscordMessageReference) ProtoReflect() protoreflect.Message { 914 mi := &file_chat_message_proto_msgTypes[8] 915 if protoimpl.UnsafeEnabled && x != nil { 916 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 917 if ms.LoadMessageInfo() == nil { 918 ms.StoreMessageInfo(mi) 919 } 920 return ms 921 } 922 return mi.MessageOf(x) 923 } 924 925 // Deprecated: Use DiscordMessageReference.ProtoReflect.Descriptor instead. 926 func (*DiscordMessageReference) Descriptor() ([]byte, []int) { 927 return file_chat_message_proto_rawDescGZIP(), []int{8} 928 } 929 930 func (x *DiscordMessageReference) GetMessageId() string { 931 if x != nil { 932 return x.MessageId 933 } 934 return "" 935 } 936 937 func (x *DiscordMessageReference) GetChannelId() string { 938 if x != nil { 939 return x.ChannelId 940 } 941 return "" 942 } 943 944 func (x *DiscordMessageReference) GetGuildId() string { 945 if x != nil { 946 return x.GuildId 947 } 948 return "" 949 } 950 951 type DiscordMessageAttachment struct { 952 state protoimpl.MessageState 953 sizeCache protoimpl.SizeCache 954 unknownFields protoimpl.UnknownFields 955 956 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` 957 MessageId string `protobuf:"bytes,2,opt,name=messageId,proto3" json:"messageId,omitempty"` 958 Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"` 959 FileName string `protobuf:"bytes,4,opt,name=fileName,proto3" json:"fileName,omitempty"` 960 FileSizeBytes uint64 `protobuf:"varint,5,opt,name=fileSizeBytes,proto3" json:"fileSizeBytes,omitempty"` 961 ContentType string `protobuf:"bytes,6,opt,name=contentType,proto3" json:"contentType,omitempty"` 962 Payload []byte `protobuf:"bytes,7,opt,name=payload,proto3" json:"payload,omitempty"` 963 LocalUrl string `protobuf:"bytes,8,opt,name=localUrl,proto3" json:"localUrl,omitempty"` 964 } 965 966 func (x *DiscordMessageAttachment) Reset() { 967 *x = DiscordMessageAttachment{} 968 if protoimpl.UnsafeEnabled { 969 mi := &file_chat_message_proto_msgTypes[9] 970 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 971 ms.StoreMessageInfo(mi) 972 } 973 } 974 975 func (x *DiscordMessageAttachment) String() string { 976 return protoimpl.X.MessageStringOf(x) 977 } 978 979 func (*DiscordMessageAttachment) ProtoMessage() {} 980 981 func (x *DiscordMessageAttachment) ProtoReflect() protoreflect.Message { 982 mi := &file_chat_message_proto_msgTypes[9] 983 if protoimpl.UnsafeEnabled && x != nil { 984 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 985 if ms.LoadMessageInfo() == nil { 986 ms.StoreMessageInfo(mi) 987 } 988 return ms 989 } 990 return mi.MessageOf(x) 991 } 992 993 // Deprecated: Use DiscordMessageAttachment.ProtoReflect.Descriptor instead. 994 func (*DiscordMessageAttachment) Descriptor() ([]byte, []int) { 995 return file_chat_message_proto_rawDescGZIP(), []int{9} 996 } 997 998 func (x *DiscordMessageAttachment) GetId() string { 999 if x != nil { 1000 return x.Id 1001 } 1002 return "" 1003 } 1004 1005 func (x *DiscordMessageAttachment) GetMessageId() string { 1006 if x != nil { 1007 return x.MessageId 1008 } 1009 return "" 1010 } 1011 1012 func (x *DiscordMessageAttachment) GetUrl() string { 1013 if x != nil { 1014 return x.Url 1015 } 1016 return "" 1017 } 1018 1019 func (x *DiscordMessageAttachment) GetFileName() string { 1020 if x != nil { 1021 return x.FileName 1022 } 1023 return "" 1024 } 1025 1026 func (x *DiscordMessageAttachment) GetFileSizeBytes() uint64 { 1027 if x != nil { 1028 return x.FileSizeBytes 1029 } 1030 return 0 1031 } 1032 1033 func (x *DiscordMessageAttachment) GetContentType() string { 1034 if x != nil { 1035 return x.ContentType 1036 } 1037 return "" 1038 } 1039 1040 func (x *DiscordMessageAttachment) GetPayload() []byte { 1041 if x != nil { 1042 return x.Payload 1043 } 1044 return nil 1045 } 1046 1047 func (x *DiscordMessageAttachment) GetLocalUrl() string { 1048 if x != nil { 1049 return x.LocalUrl 1050 } 1051 return "" 1052 } 1053 1054 type BridgeMessage struct { 1055 state protoimpl.MessageState 1056 sizeCache protoimpl.SizeCache 1057 unknownFields protoimpl.UnknownFields 1058 1059 BridgeName string `protobuf:"bytes,1,opt,name=bridgeName,proto3" json:"bridgeName,omitempty"` 1060 UserName string `protobuf:"bytes,2,opt,name=userName,proto3" json:"userName,omitempty"` 1061 UserAvatar string `protobuf:"bytes,3,opt,name=userAvatar,proto3" json:"userAvatar,omitempty"` 1062 UserID string `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"` 1063 Content string `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"` 1064 MessageID string `protobuf:"bytes,6,opt,name=messageID,proto3" json:"messageID,omitempty"` 1065 ParentMessageID string `protobuf:"bytes,7,opt,name=parentMessageID,proto3" json:"parentMessageID,omitempty"` 1066 } 1067 1068 func (x *BridgeMessage) Reset() { 1069 *x = BridgeMessage{} 1070 if protoimpl.UnsafeEnabled { 1071 mi := &file_chat_message_proto_msgTypes[10] 1072 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1073 ms.StoreMessageInfo(mi) 1074 } 1075 } 1076 1077 func (x *BridgeMessage) String() string { 1078 return protoimpl.X.MessageStringOf(x) 1079 } 1080 1081 func (*BridgeMessage) ProtoMessage() {} 1082 1083 func (x *BridgeMessage) ProtoReflect() protoreflect.Message { 1084 mi := &file_chat_message_proto_msgTypes[10] 1085 if protoimpl.UnsafeEnabled && x != nil { 1086 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1087 if ms.LoadMessageInfo() == nil { 1088 ms.StoreMessageInfo(mi) 1089 } 1090 return ms 1091 } 1092 return mi.MessageOf(x) 1093 } 1094 1095 // Deprecated: Use BridgeMessage.ProtoReflect.Descriptor instead. 1096 func (*BridgeMessage) Descriptor() ([]byte, []int) { 1097 return file_chat_message_proto_rawDescGZIP(), []int{10} 1098 } 1099 1100 func (x *BridgeMessage) GetBridgeName() string { 1101 if x != nil { 1102 return x.BridgeName 1103 } 1104 return "" 1105 } 1106 1107 func (x *BridgeMessage) GetUserName() string { 1108 if x != nil { 1109 return x.UserName 1110 } 1111 return "" 1112 } 1113 1114 func (x *BridgeMessage) GetUserAvatar() string { 1115 if x != nil { 1116 return x.UserAvatar 1117 } 1118 return "" 1119 } 1120 1121 func (x *BridgeMessage) GetUserID() string { 1122 if x != nil { 1123 return x.UserID 1124 } 1125 return "" 1126 } 1127 1128 func (x *BridgeMessage) GetContent() string { 1129 if x != nil { 1130 return x.Content 1131 } 1132 return "" 1133 } 1134 1135 func (x *BridgeMessage) GetMessageID() string { 1136 if x != nil { 1137 return x.MessageID 1138 } 1139 return "" 1140 } 1141 1142 func (x *BridgeMessage) GetParentMessageID() string { 1143 if x != nil { 1144 return x.ParentMessageID 1145 } 1146 return "" 1147 } 1148 1149 type UnfurledLinkThumbnail struct { 1150 state protoimpl.MessageState 1151 sizeCache protoimpl.SizeCache 1152 unknownFields protoimpl.UnknownFields 1153 1154 Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` 1155 Width uint32 `protobuf:"varint,2,opt,name=width,proto3" json:"width,omitempty"` 1156 Height uint32 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` 1157 } 1158 1159 func (x *UnfurledLinkThumbnail) Reset() { 1160 *x = UnfurledLinkThumbnail{} 1161 if protoimpl.UnsafeEnabled { 1162 mi := &file_chat_message_proto_msgTypes[11] 1163 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1164 ms.StoreMessageInfo(mi) 1165 } 1166 } 1167 1168 func (x *UnfurledLinkThumbnail) String() string { 1169 return protoimpl.X.MessageStringOf(x) 1170 } 1171 1172 func (*UnfurledLinkThumbnail) ProtoMessage() {} 1173 1174 func (x *UnfurledLinkThumbnail) ProtoReflect() protoreflect.Message { 1175 mi := &file_chat_message_proto_msgTypes[11] 1176 if protoimpl.UnsafeEnabled && x != nil { 1177 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1178 if ms.LoadMessageInfo() == nil { 1179 ms.StoreMessageInfo(mi) 1180 } 1181 return ms 1182 } 1183 return mi.MessageOf(x) 1184 } 1185 1186 // Deprecated: Use UnfurledLinkThumbnail.ProtoReflect.Descriptor instead. 1187 func (*UnfurledLinkThumbnail) Descriptor() ([]byte, []int) { 1188 return file_chat_message_proto_rawDescGZIP(), []int{11} 1189 } 1190 1191 func (x *UnfurledLinkThumbnail) GetPayload() []byte { 1192 if x != nil { 1193 return x.Payload 1194 } 1195 return nil 1196 } 1197 1198 func (x *UnfurledLinkThumbnail) GetWidth() uint32 { 1199 if x != nil { 1200 return x.Width 1201 } 1202 return 0 1203 } 1204 1205 func (x *UnfurledLinkThumbnail) GetHeight() uint32 { 1206 if x != nil { 1207 return x.Height 1208 } 1209 return 0 1210 } 1211 1212 type UnfurledLink struct { 1213 state protoimpl.MessageState 1214 sizeCache protoimpl.SizeCache 1215 unknownFields protoimpl.UnknownFields 1216 1217 // A valid URL which uniquely identifies this link. 1218 Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` 1219 // Website's title. 1220 Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"` 1221 // Description is sometimes available, but can be empty. Most mainstream 1222 // websites provide this information. 1223 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1224 ThumbnailPayload []byte `protobuf:"bytes,4,opt,name=thumbnail_payload,json=thumbnailPayload,proto3" json:"thumbnail_payload,omitempty"` 1225 ThumbnailWidth uint32 `protobuf:"varint,5,opt,name=thumbnail_width,json=thumbnailWidth,proto3" json:"thumbnail_width,omitempty"` 1226 ThumbnailHeight uint32 `protobuf:"varint,6,opt,name=thumbnail_height,json=thumbnailHeight,proto3" json:"thumbnail_height,omitempty"` 1227 Type UnfurledLink_LinkType `protobuf:"varint,7,opt,name=type,proto3,enum=protobuf.UnfurledLink_LinkType" json:"type,omitempty"` 1228 FaviconPayload []byte `protobuf:"bytes,8,opt,name=favicon_payload,json=faviconPayload,proto3" json:"favicon_payload,omitempty"` 1229 } 1230 1231 func (x *UnfurledLink) Reset() { 1232 *x = UnfurledLink{} 1233 if protoimpl.UnsafeEnabled { 1234 mi := &file_chat_message_proto_msgTypes[12] 1235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1236 ms.StoreMessageInfo(mi) 1237 } 1238 } 1239 1240 func (x *UnfurledLink) String() string { 1241 return protoimpl.X.MessageStringOf(x) 1242 } 1243 1244 func (*UnfurledLink) ProtoMessage() {} 1245 1246 func (x *UnfurledLink) ProtoReflect() protoreflect.Message { 1247 mi := &file_chat_message_proto_msgTypes[12] 1248 if protoimpl.UnsafeEnabled && x != nil { 1249 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1250 if ms.LoadMessageInfo() == nil { 1251 ms.StoreMessageInfo(mi) 1252 } 1253 return ms 1254 } 1255 return mi.MessageOf(x) 1256 } 1257 1258 // Deprecated: Use UnfurledLink.ProtoReflect.Descriptor instead. 1259 func (*UnfurledLink) Descriptor() ([]byte, []int) { 1260 return file_chat_message_proto_rawDescGZIP(), []int{12} 1261 } 1262 1263 func (x *UnfurledLink) GetUrl() string { 1264 if x != nil { 1265 return x.Url 1266 } 1267 return "" 1268 } 1269 1270 func (x *UnfurledLink) GetTitle() string { 1271 if x != nil { 1272 return x.Title 1273 } 1274 return "" 1275 } 1276 1277 func (x *UnfurledLink) GetDescription() string { 1278 if x != nil { 1279 return x.Description 1280 } 1281 return "" 1282 } 1283 1284 func (x *UnfurledLink) GetThumbnailPayload() []byte { 1285 if x != nil { 1286 return x.ThumbnailPayload 1287 } 1288 return nil 1289 } 1290 1291 func (x *UnfurledLink) GetThumbnailWidth() uint32 { 1292 if x != nil { 1293 return x.ThumbnailWidth 1294 } 1295 return 0 1296 } 1297 1298 func (x *UnfurledLink) GetThumbnailHeight() uint32 { 1299 if x != nil { 1300 return x.ThumbnailHeight 1301 } 1302 return 0 1303 } 1304 1305 func (x *UnfurledLink) GetType() UnfurledLink_LinkType { 1306 if x != nil { 1307 return x.Type 1308 } 1309 return UnfurledLink_LINK 1310 } 1311 1312 func (x *UnfurledLink) GetFaviconPayload() []byte { 1313 if x != nil { 1314 return x.FaviconPayload 1315 } 1316 return nil 1317 } 1318 1319 type UnfurledStatusContactLink struct { 1320 state protoimpl.MessageState 1321 sizeCache protoimpl.SizeCache 1322 unknownFields protoimpl.UnknownFields 1323 1324 PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"` 1325 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1326 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1327 Icon *UnfurledLinkThumbnail `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"` 1328 } 1329 1330 func (x *UnfurledStatusContactLink) Reset() { 1331 *x = UnfurledStatusContactLink{} 1332 if protoimpl.UnsafeEnabled { 1333 mi := &file_chat_message_proto_msgTypes[13] 1334 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1335 ms.StoreMessageInfo(mi) 1336 } 1337 } 1338 1339 func (x *UnfurledStatusContactLink) String() string { 1340 return protoimpl.X.MessageStringOf(x) 1341 } 1342 1343 func (*UnfurledStatusContactLink) ProtoMessage() {} 1344 1345 func (x *UnfurledStatusContactLink) ProtoReflect() protoreflect.Message { 1346 mi := &file_chat_message_proto_msgTypes[13] 1347 if protoimpl.UnsafeEnabled && x != nil { 1348 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1349 if ms.LoadMessageInfo() == nil { 1350 ms.StoreMessageInfo(mi) 1351 } 1352 return ms 1353 } 1354 return mi.MessageOf(x) 1355 } 1356 1357 // Deprecated: Use UnfurledStatusContactLink.ProtoReflect.Descriptor instead. 1358 func (*UnfurledStatusContactLink) Descriptor() ([]byte, []int) { 1359 return file_chat_message_proto_rawDescGZIP(), []int{13} 1360 } 1361 1362 func (x *UnfurledStatusContactLink) GetPublicKey() []byte { 1363 if x != nil { 1364 return x.PublicKey 1365 } 1366 return nil 1367 } 1368 1369 func (x *UnfurledStatusContactLink) GetDisplayName() string { 1370 if x != nil { 1371 return x.DisplayName 1372 } 1373 return "" 1374 } 1375 1376 func (x *UnfurledStatusContactLink) GetDescription() string { 1377 if x != nil { 1378 return x.Description 1379 } 1380 return "" 1381 } 1382 1383 func (x *UnfurledStatusContactLink) GetIcon() *UnfurledLinkThumbnail { 1384 if x != nil { 1385 return x.Icon 1386 } 1387 return nil 1388 } 1389 1390 type UnfurledStatusCommunityLink struct { 1391 state protoimpl.MessageState 1392 sizeCache protoimpl.SizeCache 1393 unknownFields protoimpl.UnknownFields 1394 1395 CommunityId []byte `protobuf:"bytes,1,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"` 1396 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1397 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` 1398 MembersCount uint32 `protobuf:"varint,4,opt,name=members_count,json=membersCount,proto3" json:"members_count,omitempty"` 1399 Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"` 1400 Icon *UnfurledLinkThumbnail `protobuf:"bytes,7,opt,name=icon,proto3" json:"icon,omitempty"` 1401 Banner *UnfurledLinkThumbnail `protobuf:"bytes,8,opt,name=banner,proto3" json:"banner,omitempty"` 1402 } 1403 1404 func (x *UnfurledStatusCommunityLink) Reset() { 1405 *x = UnfurledStatusCommunityLink{} 1406 if protoimpl.UnsafeEnabled { 1407 mi := &file_chat_message_proto_msgTypes[14] 1408 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1409 ms.StoreMessageInfo(mi) 1410 } 1411 } 1412 1413 func (x *UnfurledStatusCommunityLink) String() string { 1414 return protoimpl.X.MessageStringOf(x) 1415 } 1416 1417 func (*UnfurledStatusCommunityLink) ProtoMessage() {} 1418 1419 func (x *UnfurledStatusCommunityLink) ProtoReflect() protoreflect.Message { 1420 mi := &file_chat_message_proto_msgTypes[14] 1421 if protoimpl.UnsafeEnabled && x != nil { 1422 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1423 if ms.LoadMessageInfo() == nil { 1424 ms.StoreMessageInfo(mi) 1425 } 1426 return ms 1427 } 1428 return mi.MessageOf(x) 1429 } 1430 1431 // Deprecated: Use UnfurledStatusCommunityLink.ProtoReflect.Descriptor instead. 1432 func (*UnfurledStatusCommunityLink) Descriptor() ([]byte, []int) { 1433 return file_chat_message_proto_rawDescGZIP(), []int{14} 1434 } 1435 1436 func (x *UnfurledStatusCommunityLink) GetCommunityId() []byte { 1437 if x != nil { 1438 return x.CommunityId 1439 } 1440 return nil 1441 } 1442 1443 func (x *UnfurledStatusCommunityLink) GetDisplayName() string { 1444 if x != nil { 1445 return x.DisplayName 1446 } 1447 return "" 1448 } 1449 1450 func (x *UnfurledStatusCommunityLink) GetDescription() string { 1451 if x != nil { 1452 return x.Description 1453 } 1454 return "" 1455 } 1456 1457 func (x *UnfurledStatusCommunityLink) GetMembersCount() uint32 { 1458 if x != nil { 1459 return x.MembersCount 1460 } 1461 return 0 1462 } 1463 1464 func (x *UnfurledStatusCommunityLink) GetColor() string { 1465 if x != nil { 1466 return x.Color 1467 } 1468 return "" 1469 } 1470 1471 func (x *UnfurledStatusCommunityLink) GetIcon() *UnfurledLinkThumbnail { 1472 if x != nil { 1473 return x.Icon 1474 } 1475 return nil 1476 } 1477 1478 func (x *UnfurledStatusCommunityLink) GetBanner() *UnfurledLinkThumbnail { 1479 if x != nil { 1480 return x.Banner 1481 } 1482 return nil 1483 } 1484 1485 type UnfurledStatusChannelLink struct { 1486 state protoimpl.MessageState 1487 sizeCache protoimpl.SizeCache 1488 unknownFields protoimpl.UnknownFields 1489 1490 ChannelUuid string `protobuf:"bytes,1,opt,name=channel_uuid,json=channelUuid,proto3" json:"channel_uuid,omitempty"` 1491 Emoji string `protobuf:"bytes,2,opt,name=emoji,proto3" json:"emoji,omitempty"` 1492 DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1493 Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` 1494 Color string `protobuf:"bytes,5,opt,name=color,proto3" json:"color,omitempty"` 1495 Community *UnfurledStatusCommunityLink `protobuf:"bytes,6,opt,name=community,proto3" json:"community,omitempty"` 1496 } 1497 1498 func (x *UnfurledStatusChannelLink) Reset() { 1499 *x = UnfurledStatusChannelLink{} 1500 if protoimpl.UnsafeEnabled { 1501 mi := &file_chat_message_proto_msgTypes[15] 1502 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1503 ms.StoreMessageInfo(mi) 1504 } 1505 } 1506 1507 func (x *UnfurledStatusChannelLink) String() string { 1508 return protoimpl.X.MessageStringOf(x) 1509 } 1510 1511 func (*UnfurledStatusChannelLink) ProtoMessage() {} 1512 1513 func (x *UnfurledStatusChannelLink) ProtoReflect() protoreflect.Message { 1514 mi := &file_chat_message_proto_msgTypes[15] 1515 if protoimpl.UnsafeEnabled && x != nil { 1516 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1517 if ms.LoadMessageInfo() == nil { 1518 ms.StoreMessageInfo(mi) 1519 } 1520 return ms 1521 } 1522 return mi.MessageOf(x) 1523 } 1524 1525 // Deprecated: Use UnfurledStatusChannelLink.ProtoReflect.Descriptor instead. 1526 func (*UnfurledStatusChannelLink) Descriptor() ([]byte, []int) { 1527 return file_chat_message_proto_rawDescGZIP(), []int{15} 1528 } 1529 1530 func (x *UnfurledStatusChannelLink) GetChannelUuid() string { 1531 if x != nil { 1532 return x.ChannelUuid 1533 } 1534 return "" 1535 } 1536 1537 func (x *UnfurledStatusChannelLink) GetEmoji() string { 1538 if x != nil { 1539 return x.Emoji 1540 } 1541 return "" 1542 } 1543 1544 func (x *UnfurledStatusChannelLink) GetDisplayName() string { 1545 if x != nil { 1546 return x.DisplayName 1547 } 1548 return "" 1549 } 1550 1551 func (x *UnfurledStatusChannelLink) GetDescription() string { 1552 if x != nil { 1553 return x.Description 1554 } 1555 return "" 1556 } 1557 1558 func (x *UnfurledStatusChannelLink) GetColor() string { 1559 if x != nil { 1560 return x.Color 1561 } 1562 return "" 1563 } 1564 1565 func (x *UnfurledStatusChannelLink) GetCommunity() *UnfurledStatusCommunityLink { 1566 if x != nil { 1567 return x.Community 1568 } 1569 return nil 1570 } 1571 1572 type UnfurledStatusLink struct { 1573 state protoimpl.MessageState 1574 sizeCache protoimpl.SizeCache 1575 unknownFields protoimpl.UnknownFields 1576 1577 Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` 1578 // Types that are assignable to Payload: 1579 // 1580 // *UnfurledStatusLink_Contact 1581 // *UnfurledStatusLink_Community 1582 // *UnfurledStatusLink_Channel 1583 Payload isUnfurledStatusLink_Payload `protobuf_oneof:"payload"` 1584 } 1585 1586 func (x *UnfurledStatusLink) Reset() { 1587 *x = UnfurledStatusLink{} 1588 if protoimpl.UnsafeEnabled { 1589 mi := &file_chat_message_proto_msgTypes[16] 1590 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1591 ms.StoreMessageInfo(mi) 1592 } 1593 } 1594 1595 func (x *UnfurledStatusLink) String() string { 1596 return protoimpl.X.MessageStringOf(x) 1597 } 1598 1599 func (*UnfurledStatusLink) ProtoMessage() {} 1600 1601 func (x *UnfurledStatusLink) ProtoReflect() protoreflect.Message { 1602 mi := &file_chat_message_proto_msgTypes[16] 1603 if protoimpl.UnsafeEnabled && x != nil { 1604 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1605 if ms.LoadMessageInfo() == nil { 1606 ms.StoreMessageInfo(mi) 1607 } 1608 return ms 1609 } 1610 return mi.MessageOf(x) 1611 } 1612 1613 // Deprecated: Use UnfurledStatusLink.ProtoReflect.Descriptor instead. 1614 func (*UnfurledStatusLink) Descriptor() ([]byte, []int) { 1615 return file_chat_message_proto_rawDescGZIP(), []int{16} 1616 } 1617 1618 func (x *UnfurledStatusLink) GetUrl() string { 1619 if x != nil { 1620 return x.Url 1621 } 1622 return "" 1623 } 1624 1625 func (m *UnfurledStatusLink) GetPayload() isUnfurledStatusLink_Payload { 1626 if m != nil { 1627 return m.Payload 1628 } 1629 return nil 1630 } 1631 1632 func (x *UnfurledStatusLink) GetContact() *UnfurledStatusContactLink { 1633 if x, ok := x.GetPayload().(*UnfurledStatusLink_Contact); ok { 1634 return x.Contact 1635 } 1636 return nil 1637 } 1638 1639 func (x *UnfurledStatusLink) GetCommunity() *UnfurledStatusCommunityLink { 1640 if x, ok := x.GetPayload().(*UnfurledStatusLink_Community); ok { 1641 return x.Community 1642 } 1643 return nil 1644 } 1645 1646 func (x *UnfurledStatusLink) GetChannel() *UnfurledStatusChannelLink { 1647 if x, ok := x.GetPayload().(*UnfurledStatusLink_Channel); ok { 1648 return x.Channel 1649 } 1650 return nil 1651 } 1652 1653 type isUnfurledStatusLink_Payload interface { 1654 isUnfurledStatusLink_Payload() 1655 } 1656 1657 type UnfurledStatusLink_Contact struct { 1658 Contact *UnfurledStatusContactLink `protobuf:"bytes,2,opt,name=contact,proto3,oneof"` 1659 } 1660 1661 type UnfurledStatusLink_Community struct { 1662 Community *UnfurledStatusCommunityLink `protobuf:"bytes,3,opt,name=community,proto3,oneof"` 1663 } 1664 1665 type UnfurledStatusLink_Channel struct { 1666 Channel *UnfurledStatusChannelLink `protobuf:"bytes,4,opt,name=channel,proto3,oneof"` 1667 } 1668 1669 func (*UnfurledStatusLink_Contact) isUnfurledStatusLink_Payload() {} 1670 1671 func (*UnfurledStatusLink_Community) isUnfurledStatusLink_Payload() {} 1672 1673 func (*UnfurledStatusLink_Channel) isUnfurledStatusLink_Payload() {} 1674 1675 // Create a wrapper around repeated property for proper unmarshalling 1676 type UnfurledStatusLinks struct { 1677 state protoimpl.MessageState 1678 sizeCache protoimpl.SizeCache 1679 unknownFields protoimpl.UnknownFields 1680 1681 UnfurledStatusLinks []*UnfurledStatusLink `protobuf:"bytes,1,rep,name=unfurled_status_links,json=unfurledStatusLinks,proto3" json:"unfurled_status_links,omitempty"` 1682 } 1683 1684 func (x *UnfurledStatusLinks) Reset() { 1685 *x = UnfurledStatusLinks{} 1686 if protoimpl.UnsafeEnabled { 1687 mi := &file_chat_message_proto_msgTypes[17] 1688 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1689 ms.StoreMessageInfo(mi) 1690 } 1691 } 1692 1693 func (x *UnfurledStatusLinks) String() string { 1694 return protoimpl.X.MessageStringOf(x) 1695 } 1696 1697 func (*UnfurledStatusLinks) ProtoMessage() {} 1698 1699 func (x *UnfurledStatusLinks) ProtoReflect() protoreflect.Message { 1700 mi := &file_chat_message_proto_msgTypes[17] 1701 if protoimpl.UnsafeEnabled && x != nil { 1702 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1703 if ms.LoadMessageInfo() == nil { 1704 ms.StoreMessageInfo(mi) 1705 } 1706 return ms 1707 } 1708 return mi.MessageOf(x) 1709 } 1710 1711 // Deprecated: Use UnfurledStatusLinks.ProtoReflect.Descriptor instead. 1712 func (*UnfurledStatusLinks) Descriptor() ([]byte, []int) { 1713 return file_chat_message_proto_rawDescGZIP(), []int{17} 1714 } 1715 1716 func (x *UnfurledStatusLinks) GetUnfurledStatusLinks() []*UnfurledStatusLink { 1717 if x != nil { 1718 return x.UnfurledStatusLinks 1719 } 1720 return nil 1721 } 1722 1723 type ChatMessage struct { 1724 state protoimpl.MessageState 1725 sizeCache protoimpl.SizeCache 1726 unknownFields protoimpl.UnknownFields 1727 1728 // Lamport timestamp of the chat message 1729 Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"` 1730 // Unix timestamps in milliseconds, currently not used as we use whisper as 1731 // more reliable, but here so that we don't rely on it 1732 Timestamp uint64 `protobuf:"varint,2,opt,name=timestamp,proto3" json:"timestamp,omitempty"` 1733 // Text of the message 1734 Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` 1735 // Id of the message that we are replying to 1736 ResponseTo string `protobuf:"bytes,4,opt,name=response_to,json=responseTo,proto3" json:"response_to,omitempty"` 1737 // Ens name of the sender 1738 EnsName string `protobuf:"bytes,5,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"` 1739 // Chat id, this field is symmetric for public-chats and private group chats, 1740 // but asymmetric in case of one-to-ones, as the sender will use the chat-id 1741 // of the received, while the receiver will use the chat-id of the sender. 1742 // Probably should be the concatenation of sender-pk & receiver-pk in 1743 // alphabetical order 1744 ChatId string `protobuf:"bytes,6,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"` 1745 // The type of message (public/one-to-one/private-group-chat) 1746 MessageType MessageType `protobuf:"varint,7,opt,name=message_type,json=messageType,proto3,enum=protobuf.MessageType" json:"message_type,omitempty"` 1747 // The type of the content of the message 1748 ContentType ChatMessage_ContentType `protobuf:"varint,8,opt,name=content_type,json=contentType,proto3,enum=protobuf.ChatMessage_ContentType" json:"content_type,omitempty"` 1749 // Types that are assignable to Payload: 1750 // 1751 // *ChatMessage_Sticker 1752 // *ChatMessage_Image 1753 // *ChatMessage_Audio 1754 // *ChatMessage_Community 1755 // *ChatMessage_DiscordMessage 1756 // *ChatMessage_BridgeMessage 1757 Payload isChatMessage_Payload `protobuf_oneof:"payload"` 1758 // Grant for community chat messages 1759 // 1760 // Deprecated: Marked as deprecated in chat_message.proto. 1761 Grant []byte `protobuf:"bytes,13,opt,name=grant,proto3" json:"grant,omitempty"` 1762 // Message author's display name, introduced in version 1 1763 DisplayName string `protobuf:"bytes,14,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 1764 ContactRequestPropagatedState *ContactRequestPropagatedState `protobuf:"bytes,15,opt,name=contact_request_propagated_state,json=contactRequestPropagatedState,proto3" json:"contact_request_propagated_state,omitempty"` 1765 UnfurledLinks []*UnfurledLink `protobuf:"bytes,16,rep,name=unfurled_links,json=unfurledLinks,proto3" json:"unfurled_links,omitempty"` 1766 Shard *Shard `protobuf:"bytes,17,opt,name=shard,proto3" json:"shard,omitempty"` 1767 UnfurledStatusLinks *UnfurledStatusLinks `protobuf:"bytes,18,opt,name=unfurled_status_links,json=unfurledStatusLinks,proto3" json:"unfurled_status_links,omitempty"` 1768 CustomizationColor uint32 `protobuf:"varint,19,opt,name=customization_color,json=customizationColor,proto3" json:"customization_color,omitempty"` 1769 } 1770 1771 func (x *ChatMessage) Reset() { 1772 *x = ChatMessage{} 1773 if protoimpl.UnsafeEnabled { 1774 mi := &file_chat_message_proto_msgTypes[18] 1775 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1776 ms.StoreMessageInfo(mi) 1777 } 1778 } 1779 1780 func (x *ChatMessage) String() string { 1781 return protoimpl.X.MessageStringOf(x) 1782 } 1783 1784 func (*ChatMessage) ProtoMessage() {} 1785 1786 func (x *ChatMessage) ProtoReflect() protoreflect.Message { 1787 mi := &file_chat_message_proto_msgTypes[18] 1788 if protoimpl.UnsafeEnabled && x != nil { 1789 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1790 if ms.LoadMessageInfo() == nil { 1791 ms.StoreMessageInfo(mi) 1792 } 1793 return ms 1794 } 1795 return mi.MessageOf(x) 1796 } 1797 1798 // Deprecated: Use ChatMessage.ProtoReflect.Descriptor instead. 1799 func (*ChatMessage) Descriptor() ([]byte, []int) { 1800 return file_chat_message_proto_rawDescGZIP(), []int{18} 1801 } 1802 1803 func (x *ChatMessage) GetClock() uint64 { 1804 if x != nil { 1805 return x.Clock 1806 } 1807 return 0 1808 } 1809 1810 func (x *ChatMessage) GetTimestamp() uint64 { 1811 if x != nil { 1812 return x.Timestamp 1813 } 1814 return 0 1815 } 1816 1817 func (x *ChatMessage) GetText() string { 1818 if x != nil { 1819 return x.Text 1820 } 1821 return "" 1822 } 1823 1824 func (x *ChatMessage) GetResponseTo() string { 1825 if x != nil { 1826 return x.ResponseTo 1827 } 1828 return "" 1829 } 1830 1831 func (x *ChatMessage) GetEnsName() string { 1832 if x != nil { 1833 return x.EnsName 1834 } 1835 return "" 1836 } 1837 1838 func (x *ChatMessage) GetChatId() string { 1839 if x != nil { 1840 return x.ChatId 1841 } 1842 return "" 1843 } 1844 1845 func (x *ChatMessage) GetMessageType() MessageType { 1846 if x != nil { 1847 return x.MessageType 1848 } 1849 return MessageType_UNKNOWN_MESSAGE_TYPE 1850 } 1851 1852 func (x *ChatMessage) GetContentType() ChatMessage_ContentType { 1853 if x != nil { 1854 return x.ContentType 1855 } 1856 return ChatMessage_UNKNOWN_CONTENT_TYPE 1857 } 1858 1859 func (m *ChatMessage) GetPayload() isChatMessage_Payload { 1860 if m != nil { 1861 return m.Payload 1862 } 1863 return nil 1864 } 1865 1866 func (x *ChatMessage) GetSticker() *StickerMessage { 1867 if x, ok := x.GetPayload().(*ChatMessage_Sticker); ok { 1868 return x.Sticker 1869 } 1870 return nil 1871 } 1872 1873 func (x *ChatMessage) GetImage() *ImageMessage { 1874 if x, ok := x.GetPayload().(*ChatMessage_Image); ok { 1875 return x.Image 1876 } 1877 return nil 1878 } 1879 1880 func (x *ChatMessage) GetAudio() *AudioMessage { 1881 if x, ok := x.GetPayload().(*ChatMessage_Audio); ok { 1882 return x.Audio 1883 } 1884 return nil 1885 } 1886 1887 func (x *ChatMessage) GetCommunity() []byte { 1888 if x, ok := x.GetPayload().(*ChatMessage_Community); ok { 1889 return x.Community 1890 } 1891 return nil 1892 } 1893 1894 func (x *ChatMessage) GetDiscordMessage() *DiscordMessage { 1895 if x, ok := x.GetPayload().(*ChatMessage_DiscordMessage); ok { 1896 return x.DiscordMessage 1897 } 1898 return nil 1899 } 1900 1901 func (x *ChatMessage) GetBridgeMessage() *BridgeMessage { 1902 if x, ok := x.GetPayload().(*ChatMessage_BridgeMessage); ok { 1903 return x.BridgeMessage 1904 } 1905 return nil 1906 } 1907 1908 // Deprecated: Marked as deprecated in chat_message.proto. 1909 func (x *ChatMessage) GetGrant() []byte { 1910 if x != nil { 1911 return x.Grant 1912 } 1913 return nil 1914 } 1915 1916 func (x *ChatMessage) GetDisplayName() string { 1917 if x != nil { 1918 return x.DisplayName 1919 } 1920 return "" 1921 } 1922 1923 func (x *ChatMessage) GetContactRequestPropagatedState() *ContactRequestPropagatedState { 1924 if x != nil { 1925 return x.ContactRequestPropagatedState 1926 } 1927 return nil 1928 } 1929 1930 func (x *ChatMessage) GetUnfurledLinks() []*UnfurledLink { 1931 if x != nil { 1932 return x.UnfurledLinks 1933 } 1934 return nil 1935 } 1936 1937 func (x *ChatMessage) GetShard() *Shard { 1938 if x != nil { 1939 return x.Shard 1940 } 1941 return nil 1942 } 1943 1944 func (x *ChatMessage) GetUnfurledStatusLinks() *UnfurledStatusLinks { 1945 if x != nil { 1946 return x.UnfurledStatusLinks 1947 } 1948 return nil 1949 } 1950 1951 func (x *ChatMessage) GetCustomizationColor() uint32 { 1952 if x != nil { 1953 return x.CustomizationColor 1954 } 1955 return 0 1956 } 1957 1958 type isChatMessage_Payload interface { 1959 isChatMessage_Payload() 1960 } 1961 1962 type ChatMessage_Sticker struct { 1963 Sticker *StickerMessage `protobuf:"bytes,9,opt,name=sticker,proto3,oneof"` 1964 } 1965 1966 type ChatMessage_Image struct { 1967 Image *ImageMessage `protobuf:"bytes,10,opt,name=image,proto3,oneof"` 1968 } 1969 1970 type ChatMessage_Audio struct { 1971 Audio *AudioMessage `protobuf:"bytes,11,opt,name=audio,proto3,oneof"` 1972 } 1973 1974 type ChatMessage_Community struct { 1975 Community []byte `protobuf:"bytes,12,opt,name=community,proto3,oneof"` 1976 } 1977 1978 type ChatMessage_DiscordMessage struct { 1979 DiscordMessage *DiscordMessage `protobuf:"bytes,99,opt,name=discord_message,json=discordMessage,proto3,oneof"` 1980 } 1981 1982 type ChatMessage_BridgeMessage struct { 1983 BridgeMessage *BridgeMessage `protobuf:"bytes,100,opt,name=bridge_message,json=bridgeMessage,proto3,oneof"` 1984 } 1985 1986 func (*ChatMessage_Sticker) isChatMessage_Payload() {} 1987 1988 func (*ChatMessage_Image) isChatMessage_Payload() {} 1989 1990 func (*ChatMessage_Audio) isChatMessage_Payload() {} 1991 1992 func (*ChatMessage_Community) isChatMessage_Payload() {} 1993 1994 func (*ChatMessage_DiscordMessage) isChatMessage_Payload() {} 1995 1996 func (*ChatMessage_BridgeMessage) isChatMessage_Payload() {} 1997 1998 var File_chat_message_proto protoreflect.FileDescriptor 1999 2000 var file_chat_message_proto_rawDesc = []byte{ 2001 0x0a, 0x12, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 2002 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x0b, 2003 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x63, 0x6f, 0x6e, 2004 0x74, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0b, 0x73, 0x68, 0x61, 0x72, 2005 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x38, 0x0a, 0x0e, 0x53, 0x74, 0x69, 0x63, 0x6b, 2006 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 2007 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x12, 0x12, 0x0a, 2008 0x04, 0x70, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x63, 2009 0x6b, 0x22, 0xce, 0x01, 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 2010 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 2011 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2d, 0x0a, 0x06, 2012 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 2013 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x72, 2014 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 2015 0x6c, 0x62, 0x75, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 2016 0x6c, 0x62, 0x75, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 2017 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 2018 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 2019 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x5f, 0x69, 0x6d, 2020 0x61, 0x67, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 2021 0x52, 0x10, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x43, 0x6f, 0x75, 2022 0x6e, 0x74, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73, 2023 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 2024 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x34, 0x0a, 2025 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x70, 0x72, 2026 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73, 2027 0x61, 0x67, 0x65, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 2028 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 2029 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 2030 0x6f, 0x6e, 0x4d, 0x73, 0x22, 0x35, 0x0a, 0x09, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x54, 0x79, 0x70, 2031 0x65, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x41, 0x55, 0x44, 2032 0x49, 0x4f, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x41, 0x43, 2033 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4d, 0x52, 0x10, 0x02, 0x22, 0x9b, 0x03, 0x0a, 0x0b, 2034 0x45, 0x64, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 2035 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 2036 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 2037 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 2038 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x1d, 2039 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 2040 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 2041 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 2042 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 2043 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 2044 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 2045 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 2046 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 2047 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2048 0x75, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 2049 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 2050 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x75, 0x6e, 0x66, 0x75, 0x72, 2051 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 2052 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 2053 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0d, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 2054 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x51, 0x0a, 0x15, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 2055 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 2056 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2057 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 2058 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 2059 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0xd0, 0x01, 0x0a, 0x0d, 0x44, 0x65, 2060 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 2061 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 2062 0x6b, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 2063 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x65, 2064 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 2065 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x05, 0x67, 0x72, 0x61, 2066 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x67, 0x72, 2067 0x61, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 2068 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2069 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 2070 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 2071 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 2072 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x42, 0x79, 0x22, 0x4d, 0x0a, 0x16, 2073 0x53, 0x79, 0x6e, 0x63, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x4d, 0x65, 0x4d, 2074 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 2075 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 2076 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2077 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x0e, 2078 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 2079 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 2080 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 2081 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 2082 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 2083 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x45, 0x64, 0x69, 2084 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 2085 0x74, 0x61, 0x6d, 0x70, 0x45, 0x64, 0x69, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 2086 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 2087 0x74, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x06, 2088 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2089 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x75, 2090 0x74, 0x68, 0x6f, 0x72, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x3f, 0x0a, 0x09, 2091 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 2092 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 2093 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 2094 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x44, 0x0a, 2095 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 2096 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 2097 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 2098 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 2099 0x6e, 0x74, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 2100 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 2101 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 2102 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 2103 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x6f, 2104 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x72, 0x69, 0x6d, 2105 0x69, 0x6e, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 2106 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 2107 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 2108 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 2109 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 2110 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x61, 0x76, 2111 0x61, 0x74, 0x61, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 2112 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 2113 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x22, 0x6f, 0x0a, 0x17, 2114 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 2115 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 2116 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 2117 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 2118 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 2119 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x03, 2120 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0xf4, 0x01, 2121 0x0a, 0x18, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 2122 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 2123 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 2124 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 2125 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 2126 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 2127 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 2128 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 2129 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 2130 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 2131 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 2132 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 2133 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 2134 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 2135 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 2136 0x6c, 0x55, 0x72, 0x6c, 0x22, 0xe5, 0x01, 0x0a, 0x0d, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4d, 2137 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 2138 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 2139 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 2140 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 2141 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 2142 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x76, 0x61, 0x74, 2143 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 2144 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 2145 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 2146 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 2147 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 2148 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 2149 0x61, 0x67, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 2150 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x44, 0x22, 0x5f, 0x0a, 0x15, 2151 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x75, 0x6d, 2152 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 2153 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 2154 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 2155 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 2156 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x02, 2157 0x0a, 0x0c, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x10, 2158 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 2159 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 2160 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 2161 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 2162 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x68, 0x75, 0x6d, 2163 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 2164 0x01, 0x28, 0x0c, 0x52, 0x10, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x50, 0x61, 2165 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 2166 0x69, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 2167 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x29, 2168 0x0a, 0x10, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x68, 0x65, 0x69, 0x67, 2169 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 2170 0x61, 0x69, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 2171 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2172 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 2173 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x27, 2174 0x0a, 0x0f, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 2175 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 2176 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x1f, 0x0a, 0x08, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 2177 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 2178 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x01, 0x22, 0xb4, 0x01, 0x0a, 0x19, 0x55, 0x6e, 0x66, 2179 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 2180 0x63, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 2181 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 2182 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 2183 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 2184 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 2185 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 2186 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x63, 2187 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 2188 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 2189 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 2190 0xae, 0x02, 0x0a, 0x1b, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 2191 0x75, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 2192 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 2193 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 2194 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 2195 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 2196 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 2197 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 2198 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 2199 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 2200 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 2201 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 2202 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 2203 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 2204 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 2205 0x6c, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 2206 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 2207 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x54, 2208 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 2209 0x22, 0xf4, 0x01, 0x0a, 0x19, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 2210 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x21, 2211 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 2212 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x75, 0x69, 2213 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 2214 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 2215 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 2216 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 2217 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 2218 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 2219 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 2220 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 2221 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 2222 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 2223 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x09, 0x63, 0x6f, 2224 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x22, 0xfa, 0x01, 0x0a, 0x12, 0x55, 0x6e, 0x66, 0x75, 2225 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x10, 2226 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 2227 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 2228 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 2229 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 2230 0x63, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 2231 0x74, 0x12, 0x45, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x03, 2232 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2233 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 2234 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x63, 2235 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 2236 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2237 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 2238 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 2239 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 2240 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x67, 0x0a, 0x13, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 2241 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x50, 0x0a, 0x15, 0x75, 2242 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6c, 2243 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 2244 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 2245 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 2246 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0xde, 0x0b, 2247 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 2248 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x63, 0x6c, 2249 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 2250 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 2251 0x70, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 2252 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2253 0x65, 0x5f, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x70, 2254 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x73, 0x5f, 0x6e, 0x61, 2255 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 2256 0x65, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 2257 0x28, 0x09, 0x52, 0x06, 0x63, 0x68, 0x61, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x6d, 0x65, 2258 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 2259 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 2260 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 2261 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 2262 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 2263 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 2264 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 2265 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x74, 2266 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 2267 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 2268 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 2269 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 2270 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 2271 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 2272 0x12, 0x2e, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 2273 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 2274 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 2275 0x12, 0x1e, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 2276 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 2277 0x12, 0x43, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 2278 0x61, 0x67, 0x65, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 2279 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 0x73, 0x73, 2280 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x72, 0x64, 0x4d, 0x65, 2281 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 2282 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 2283 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4d, 2284 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 2285 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x6e, 0x74, 2286 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x67, 0x72, 0x61, 0x6e, 2287 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 2288 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 2289 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x70, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 2290 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 2291 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 2292 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 2293 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 2294 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x1d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 2295 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x65, 2296 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 2297 0x65, 0x64, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 2298 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 2299 0x65, 0x64, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x0d, 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 2300 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x18, 0x11, 2301 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2302 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x64, 0x12, 0x51, 0x0a, 0x15, 2303 0x75, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 2304 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 2305 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x66, 0x75, 0x72, 0x6c, 0x65, 0x64, 0x53, 2306 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x52, 0x13, 0x75, 0x6e, 0x66, 0x75, 2307 0x72, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 2308 0x2f, 0x0a, 0x13, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2309 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x75, 2310 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 2311 0x22, 0xd0, 0x03, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 2312 0x12, 0x18, 0x0a, 0x14, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 2313 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 2314 0x58, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 2315 0x49, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, 0x55, 2316 0x53, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4d, 0x4f, 0x4a, 0x49, 0x10, 0x04, 0x12, 0x17, 2317 0x0a, 0x13, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 2318 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x59, 0x53, 0x54, 0x45, 2319 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 2320 0x54, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 2321 0x06, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 2322 0x41, 0x55, 0x44, 0x49, 0x4f, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 2323 0x4e, 0x49, 0x54, 0x59, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 2324 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x47, 0x41, 0x50, 0x10, 0x0a, 0x12, 0x13, 2325 0x0a, 0x0f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 2326 0x54, 0x10, 0x0b, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x52, 0x44, 0x5f, 0x4d, 2327 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0c, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x44, 0x45, 0x4e, 2328 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 2329 0x4e, 0x10, 0x0d, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 2330 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x50, 0x49, 0x4e, 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x45, 0x53, 2331 0x53, 0x41, 0x47, 0x45, 0x10, 0x0e, 0x12, 0x24, 0x0a, 0x20, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 2332 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f, 2333 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x0f, 0x12, 0x28, 0x0a, 0x24, 2334 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4d, 2335 0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x43, 0x45, 2336 0x50, 0x54, 0x45, 0x44, 0x10, 0x10, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 2337 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x55, 0x41, 0x4c, 0x5f, 2338 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x11, 0x12, 2339 0x12, 0x0a, 0x0e, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 2340 0x45, 0x10, 0x12, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0d, 2341 0x5a, 0x0b, 0x2e, 0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x62, 0x06, 0x70, 2342 0x72, 0x6f, 0x74, 0x6f, 0x33, 2343 } 2344 2345 var ( 2346 file_chat_message_proto_rawDescOnce sync.Once 2347 file_chat_message_proto_rawDescData = file_chat_message_proto_rawDesc 2348 ) 2349 2350 func file_chat_message_proto_rawDescGZIP() []byte { 2351 file_chat_message_proto_rawDescOnce.Do(func() { 2352 file_chat_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_message_proto_rawDescData) 2353 }) 2354 return file_chat_message_proto_rawDescData 2355 } 2356 2357 var file_chat_message_proto_enumTypes = make([]protoimpl.EnumInfo, 3) 2358 var file_chat_message_proto_msgTypes = make([]protoimpl.MessageInfo, 19) 2359 var file_chat_message_proto_goTypes = []interface{}{ 2360 (AudioMessage_AudioType)(0), // 0: protobuf.AudioMessage.AudioType 2361 (UnfurledLink_LinkType)(0), // 1: protobuf.UnfurledLink.LinkType 2362 (ChatMessage_ContentType)(0), // 2: protobuf.ChatMessage.ContentType 2363 (*StickerMessage)(nil), // 3: protobuf.StickerMessage 2364 (*ImageMessage)(nil), // 4: protobuf.ImageMessage 2365 (*AudioMessage)(nil), // 5: protobuf.AudioMessage 2366 (*EditMessage)(nil), // 6: protobuf.EditMessage 2367 (*DeleteMessage)(nil), // 7: protobuf.DeleteMessage 2368 (*SyncDeleteForMeMessage)(nil), // 8: protobuf.SyncDeleteForMeMessage 2369 (*DiscordMessage)(nil), // 9: protobuf.DiscordMessage 2370 (*DiscordMessageAuthor)(nil), // 10: protobuf.DiscordMessageAuthor 2371 (*DiscordMessageReference)(nil), // 11: protobuf.DiscordMessageReference 2372 (*DiscordMessageAttachment)(nil), // 12: protobuf.DiscordMessageAttachment 2373 (*BridgeMessage)(nil), // 13: protobuf.BridgeMessage 2374 (*UnfurledLinkThumbnail)(nil), // 14: protobuf.UnfurledLinkThumbnail 2375 (*UnfurledLink)(nil), // 15: protobuf.UnfurledLink 2376 (*UnfurledStatusContactLink)(nil), // 16: protobuf.UnfurledStatusContactLink 2377 (*UnfurledStatusCommunityLink)(nil), // 17: protobuf.UnfurledStatusCommunityLink 2378 (*UnfurledStatusChannelLink)(nil), // 18: protobuf.UnfurledStatusChannelLink 2379 (*UnfurledStatusLink)(nil), // 19: protobuf.UnfurledStatusLink 2380 (*UnfurledStatusLinks)(nil), // 20: protobuf.UnfurledStatusLinks 2381 (*ChatMessage)(nil), // 21: protobuf.ChatMessage 2382 (ImageFormat)(0), // 22: protobuf.ImageFormat 2383 (MessageType)(0), // 23: protobuf.MessageType 2384 (*ContactRequestPropagatedState)(nil), // 24: protobuf.ContactRequestPropagatedState 2385 (*Shard)(nil), // 25: protobuf.Shard 2386 } 2387 var file_chat_message_proto_depIdxs = []int32{ 2388 22, // 0: protobuf.ImageMessage.format:type_name -> protobuf.ImageFormat 2389 0, // 1: protobuf.AudioMessage.type:type_name -> protobuf.AudioMessage.AudioType 2390 23, // 2: protobuf.EditMessage.message_type:type_name -> protobuf.MessageType 2391 2, // 3: protobuf.EditMessage.content_type:type_name -> protobuf.ChatMessage.ContentType 2392 15, // 4: protobuf.EditMessage.unfurled_links:type_name -> protobuf.UnfurledLink 2393 20, // 5: protobuf.EditMessage.unfurled_status_links:type_name -> protobuf.UnfurledStatusLinks 2394 23, // 6: protobuf.DeleteMessage.message_type:type_name -> protobuf.MessageType 2395 10, // 7: protobuf.DiscordMessage.author:type_name -> protobuf.DiscordMessageAuthor 2396 11, // 8: protobuf.DiscordMessage.reference:type_name -> protobuf.DiscordMessageReference 2397 12, // 9: protobuf.DiscordMessage.attachments:type_name -> protobuf.DiscordMessageAttachment 2398 1, // 10: protobuf.UnfurledLink.type:type_name -> protobuf.UnfurledLink.LinkType 2399 14, // 11: protobuf.UnfurledStatusContactLink.icon:type_name -> protobuf.UnfurledLinkThumbnail 2400 14, // 12: protobuf.UnfurledStatusCommunityLink.icon:type_name -> protobuf.UnfurledLinkThumbnail 2401 14, // 13: protobuf.UnfurledStatusCommunityLink.banner:type_name -> protobuf.UnfurledLinkThumbnail 2402 17, // 14: protobuf.UnfurledStatusChannelLink.community:type_name -> protobuf.UnfurledStatusCommunityLink 2403 16, // 15: protobuf.UnfurledStatusLink.contact:type_name -> protobuf.UnfurledStatusContactLink 2404 17, // 16: protobuf.UnfurledStatusLink.community:type_name -> protobuf.UnfurledStatusCommunityLink 2405 18, // 17: protobuf.UnfurledStatusLink.channel:type_name -> protobuf.UnfurledStatusChannelLink 2406 19, // 18: protobuf.UnfurledStatusLinks.unfurled_status_links:type_name -> protobuf.UnfurledStatusLink 2407 23, // 19: protobuf.ChatMessage.message_type:type_name -> protobuf.MessageType 2408 2, // 20: protobuf.ChatMessage.content_type:type_name -> protobuf.ChatMessage.ContentType 2409 3, // 21: protobuf.ChatMessage.sticker:type_name -> protobuf.StickerMessage 2410 4, // 22: protobuf.ChatMessage.image:type_name -> protobuf.ImageMessage 2411 5, // 23: protobuf.ChatMessage.audio:type_name -> protobuf.AudioMessage 2412 9, // 24: protobuf.ChatMessage.discord_message:type_name -> protobuf.DiscordMessage 2413 13, // 25: protobuf.ChatMessage.bridge_message:type_name -> protobuf.BridgeMessage 2414 24, // 26: protobuf.ChatMessage.contact_request_propagated_state:type_name -> protobuf.ContactRequestPropagatedState 2415 15, // 27: protobuf.ChatMessage.unfurled_links:type_name -> protobuf.UnfurledLink 2416 25, // 28: protobuf.ChatMessage.shard:type_name -> protobuf.Shard 2417 20, // 29: protobuf.ChatMessage.unfurled_status_links:type_name -> protobuf.UnfurledStatusLinks 2418 30, // [30:30] is the sub-list for method output_type 2419 30, // [30:30] is the sub-list for method input_type 2420 30, // [30:30] is the sub-list for extension type_name 2421 30, // [30:30] is the sub-list for extension extendee 2422 0, // [0:30] is the sub-list for field type_name 2423 } 2424 2425 func init() { file_chat_message_proto_init() } 2426 func file_chat_message_proto_init() { 2427 if File_chat_message_proto != nil { 2428 return 2429 } 2430 file_enums_proto_init() 2431 file_contact_proto_init() 2432 file_shard_proto_init() 2433 if !protoimpl.UnsafeEnabled { 2434 file_chat_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2435 switch v := v.(*StickerMessage); i { 2436 case 0: 2437 return &v.state 2438 case 1: 2439 return &v.sizeCache 2440 case 2: 2441 return &v.unknownFields 2442 default: 2443 return nil 2444 } 2445 } 2446 file_chat_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2447 switch v := v.(*ImageMessage); i { 2448 case 0: 2449 return &v.state 2450 case 1: 2451 return &v.sizeCache 2452 case 2: 2453 return &v.unknownFields 2454 default: 2455 return nil 2456 } 2457 } 2458 file_chat_message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2459 switch v := v.(*AudioMessage); i { 2460 case 0: 2461 return &v.state 2462 case 1: 2463 return &v.sizeCache 2464 case 2: 2465 return &v.unknownFields 2466 default: 2467 return nil 2468 } 2469 } 2470 file_chat_message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2471 switch v := v.(*EditMessage); i { 2472 case 0: 2473 return &v.state 2474 case 1: 2475 return &v.sizeCache 2476 case 2: 2477 return &v.unknownFields 2478 default: 2479 return nil 2480 } 2481 } 2482 file_chat_message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2483 switch v := v.(*DeleteMessage); i { 2484 case 0: 2485 return &v.state 2486 case 1: 2487 return &v.sizeCache 2488 case 2: 2489 return &v.unknownFields 2490 default: 2491 return nil 2492 } 2493 } 2494 file_chat_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2495 switch v := v.(*SyncDeleteForMeMessage); i { 2496 case 0: 2497 return &v.state 2498 case 1: 2499 return &v.sizeCache 2500 case 2: 2501 return &v.unknownFields 2502 default: 2503 return nil 2504 } 2505 } 2506 file_chat_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2507 switch v := v.(*DiscordMessage); i { 2508 case 0: 2509 return &v.state 2510 case 1: 2511 return &v.sizeCache 2512 case 2: 2513 return &v.unknownFields 2514 default: 2515 return nil 2516 } 2517 } 2518 file_chat_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2519 switch v := v.(*DiscordMessageAuthor); i { 2520 case 0: 2521 return &v.state 2522 case 1: 2523 return &v.sizeCache 2524 case 2: 2525 return &v.unknownFields 2526 default: 2527 return nil 2528 } 2529 } 2530 file_chat_message_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2531 switch v := v.(*DiscordMessageReference); i { 2532 case 0: 2533 return &v.state 2534 case 1: 2535 return &v.sizeCache 2536 case 2: 2537 return &v.unknownFields 2538 default: 2539 return nil 2540 } 2541 } 2542 file_chat_message_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2543 switch v := v.(*DiscordMessageAttachment); i { 2544 case 0: 2545 return &v.state 2546 case 1: 2547 return &v.sizeCache 2548 case 2: 2549 return &v.unknownFields 2550 default: 2551 return nil 2552 } 2553 } 2554 file_chat_message_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2555 switch v := v.(*BridgeMessage); i { 2556 case 0: 2557 return &v.state 2558 case 1: 2559 return &v.sizeCache 2560 case 2: 2561 return &v.unknownFields 2562 default: 2563 return nil 2564 } 2565 } 2566 file_chat_message_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2567 switch v := v.(*UnfurledLinkThumbnail); i { 2568 case 0: 2569 return &v.state 2570 case 1: 2571 return &v.sizeCache 2572 case 2: 2573 return &v.unknownFields 2574 default: 2575 return nil 2576 } 2577 } 2578 file_chat_message_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2579 switch v := v.(*UnfurledLink); i { 2580 case 0: 2581 return &v.state 2582 case 1: 2583 return &v.sizeCache 2584 case 2: 2585 return &v.unknownFields 2586 default: 2587 return nil 2588 } 2589 } 2590 file_chat_message_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2591 switch v := v.(*UnfurledStatusContactLink); i { 2592 case 0: 2593 return &v.state 2594 case 1: 2595 return &v.sizeCache 2596 case 2: 2597 return &v.unknownFields 2598 default: 2599 return nil 2600 } 2601 } 2602 file_chat_message_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2603 switch v := v.(*UnfurledStatusCommunityLink); i { 2604 case 0: 2605 return &v.state 2606 case 1: 2607 return &v.sizeCache 2608 case 2: 2609 return &v.unknownFields 2610 default: 2611 return nil 2612 } 2613 } 2614 file_chat_message_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2615 switch v := v.(*UnfurledStatusChannelLink); i { 2616 case 0: 2617 return &v.state 2618 case 1: 2619 return &v.sizeCache 2620 case 2: 2621 return &v.unknownFields 2622 default: 2623 return nil 2624 } 2625 } 2626 file_chat_message_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2627 switch v := v.(*UnfurledStatusLink); i { 2628 case 0: 2629 return &v.state 2630 case 1: 2631 return &v.sizeCache 2632 case 2: 2633 return &v.unknownFields 2634 default: 2635 return nil 2636 } 2637 } 2638 file_chat_message_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2639 switch v := v.(*UnfurledStatusLinks); i { 2640 case 0: 2641 return &v.state 2642 case 1: 2643 return &v.sizeCache 2644 case 2: 2645 return &v.unknownFields 2646 default: 2647 return nil 2648 } 2649 } 2650 file_chat_message_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2651 switch v := v.(*ChatMessage); i { 2652 case 0: 2653 return &v.state 2654 case 1: 2655 return &v.sizeCache 2656 case 2: 2657 return &v.unknownFields 2658 default: 2659 return nil 2660 } 2661 } 2662 } 2663 file_chat_message_proto_msgTypes[16].OneofWrappers = []interface{}{ 2664 (*UnfurledStatusLink_Contact)(nil), 2665 (*UnfurledStatusLink_Community)(nil), 2666 (*UnfurledStatusLink_Channel)(nil), 2667 } 2668 file_chat_message_proto_msgTypes[18].OneofWrappers = []interface{}{ 2669 (*ChatMessage_Sticker)(nil), 2670 (*ChatMessage_Image)(nil), 2671 (*ChatMessage_Audio)(nil), 2672 (*ChatMessage_Community)(nil), 2673 (*ChatMessage_DiscordMessage)(nil), 2674 (*ChatMessage_BridgeMessage)(nil), 2675 } 2676 type x struct{} 2677 out := protoimpl.TypeBuilder{ 2678 File: protoimpl.DescBuilder{ 2679 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2680 RawDescriptor: file_chat_message_proto_rawDesc, 2681 NumEnums: 3, 2682 NumMessages: 19, 2683 NumExtensions: 0, 2684 NumServices: 0, 2685 }, 2686 GoTypes: file_chat_message_proto_goTypes, 2687 DependencyIndexes: file_chat_message_proto_depIdxs, 2688 EnumInfos: file_chat_message_proto_enumTypes, 2689 MessageInfos: file_chat_message_proto_msgTypes, 2690 }.Build() 2691 File_chat_message_proto = out.File 2692 file_chat_message_proto_rawDesc = nil 2693 file_chat_message_proto_goTypes = nil 2694 file_chat_message_proto_depIdxs = nil 2695 }