diff --git a/binary/protobuf.go b/binary/protobuf.go new file mode 100644 index 00000000..30573eac --- /dev/null +++ b/binary/protobuf.go @@ -0,0 +1,92 @@ +package binary + +import ( + "bytes" + "encoding/binary" + "math" +) + +type DynamicProtoMessage map[uint64]interface{} + +type encoder struct { + bytes.Buffer +} + +func (msg DynamicProtoMessage) Encode() []byte { + en := &encoder{} + for id, value := range msg { + key := id << 3 + switch v := value.(type) { + case bool: + en.uvarint(key | 0) + vi := uint64(0) + if v { + vi = 1 + } + en.uvarint(vi) + case int: + en.uvarint(key | 0) + en.svarint(int64(v)) + case int32: + en.uvarint(key | 0) + en.svarint(int64(v)) + case int64: + en.uvarint(key | 0) + en.svarint(v) + case uint32: + en.uvarint(key | 0) + en.uvarint(uint64(v)) + case uint64: + en.uvarint(key | 0) + en.uvarint(v) + case float32: + en.uvarint(key | 5) + en.u32(math.Float32bits(v)) + case float64: + en.uvarint(key | 1) + en.u64(math.Float64bits(v)) + case string: + en.uvarint(key | 2) + b := []byte(v) + en.uvarint(uint64(len(b))) + _, _ = en.Write(b) + case []uint64: + for i := 0; i < len(v); i++ { + en.uvarint(key | 0) + en.uvarint(v[i]) + } + case []byte: + en.uvarint(key | 2) + en.uvarint(uint64(len(v))) + _, _ = en.Write(v) + case DynamicProtoMessage: + en.uvarint(key | 2) + b := v.Encode() + en.uvarint(uint64(len(b))) + _, _ = en.Write(b) + } + } + return en.Bytes() +} + +func (en *encoder) uvarint(v uint64) { + var b [binary.MaxVarintLen64]byte + n := binary.PutUvarint(b[:], v) + _, _ = en.Write(b[:n]) +} + +func (en *encoder) svarint(v int64) { + en.uvarint(uint64(v)<<1 ^ uint64(v>>63)) +} + +func (en *encoder) u32(v uint32) { + var b [4]byte + binary.LittleEndian.PutUint32(b[:], v) + _, _ = en.Write(b[:]) +} + +func (en *encoder) u64(v uint64) { + var b [8]byte + binary.LittleEndian.PutUint64(b[:], v) + _, _ = en.Write(b[:]) +} diff --git a/binary/protobuf_test.go b/binary/protobuf_test.go new file mode 100644 index 00000000..844bab50 --- /dev/null +++ b/binary/protobuf_test.go @@ -0,0 +1,46 @@ +package binary + +import ( + "math" + "testing" +) + +func benchEncoderUvarint(b *testing.B, v uint64) { + e := encoder{} + for i := 0; i < b.N; i++ { + e.Reset() + e.uvarint(v) + } +} + +func benchEncoderSvarint(b *testing.B, v int64) { + e := encoder{} + for i := 0; i < b.N; i++ { + e.Reset() + e.svarint(v) + } +} + +func Benchmark_encoder_uvarint(b *testing.B) { + b.Run("short", func(b *testing.B) { + benchEncoderUvarint(b, uint64(1)) + }) + b.Run("medium", func(b *testing.B) { + benchEncoderUvarint(b, uint64(114514)) + }) + b.Run("large", func(b *testing.B) { + benchEncoderUvarint(b, math.MaxUint64) + }) +} + +func Benchmark_encoder_svarint(b *testing.B) { + b.Run("short", func(b *testing.B) { + benchEncoderSvarint(b, int64(1)) + }) + b.Run("medium", func(b *testing.B) { + benchEncoderSvarint(b, int64(114514)) + }) + b.Run("large", func(b *testing.B) { + benchEncoderSvarint(b, math.MaxInt64) + }) +} diff --git a/binary/tea_test.go b/binary/tea_test.go index 08831c11..c0c9d841 100644 --- a/binary/tea_test.go +++ b/binary/tea_test.go @@ -75,52 +75,57 @@ func TestTEA(t *testing.T) { } } -func BenchmarkTEAen16(b *testing.B) { - data := make([]byte, 16) +func benchEncrypt(b *testing.B, data []byte) { _, err := rand.Read(data) if err != nil { panic(err) } + b.SetBytes(int64(len(data))) b.ResetTimer() for i := 0; i < b.N; i++ { testTEA.Encrypt(data) } } -func BenchmarkTEAde16(b *testing.B) { - data := make([]byte, 16) +func benchDecrypt(b *testing.B, data []byte) { _, err := rand.Read(data) if err != nil { panic(err) } data = testTEA.Encrypt(data) + b.SetBytes(int64(len(data))) b.ResetTimer() for i := 0; i < b.N; i++ { testTEA.Decrypt(data) } } -func BenchmarkTEAen256(b *testing.B) { - data := make([]byte, 256) - _, err := rand.Read(data) - if err != nil { - panic(err) - } - b.ResetTimer() - for i := 0; i < b.N; i++ { - testTEA.Encrypt(data) - } +func BenchmarkTEAen(b *testing.B) { + b.Run("16", func(b *testing.B) { + data := make([]byte, 16) + benchEncrypt(b, data) + }) + b.Run("256", func(b *testing.B) { + data := make([]byte, 256) + benchEncrypt(b, data) + }) + b.Run("4K", func(b *testing.B) { + data := make([]byte, 4096) + benchEncrypt(b, data) + }) } -func BenchmarkTEAde256(b *testing.B) { - data := make([]byte, 256) - _, err := rand.Read(data) - if err != nil { - panic(err) - } - data = testTEA.Encrypt(data) - b.ResetTimer() - for i := 0; i < b.N; i++ { - testTEA.Decrypt(data) - } +func BenchmarkTEAde(b *testing.B) { + b.Run("16", func(b *testing.B) { + data := make([]byte, 16) + benchDecrypt(b, data) + }) + b.Run("256", func(b *testing.B) { + data := make([]byte, 256) + benchDecrypt(b, data) + }) + b.Run("4K", func(b *testing.B) { + data := make([]byte, 4096) + benchDecrypt(b, data) + }) } diff --git a/client/builders.go b/client/builders.go index d6584d1c..fde1e100 100644 --- a/client/builders.go +++ b/client/builders.go @@ -7,6 +7,10 @@ import ( "math/rand" "time" + "github.com/Mrs4s/MiraiGo/internal/crypto" + "github.com/Mrs4s/MiraiGo/internal/packets" + "github.com/Mrs4s/MiraiGo/internal/tlv" + "google.golang.org/protobuf/proto" "github.com/Mrs4s/MiraiGo/binary" diff --git a/client/client.go b/client/client.go index c24350b1..b548199d 100644 --- a/client/client.go +++ b/client/client.go @@ -44,6 +44,7 @@ type QQClient struct { OnlineClients []*OtherClientInfo Online bool QiDian *QiDianAccountInfo + GuildService *GuildService // protocol public field SequenceId int32 @@ -212,6 +213,7 @@ func NewClientMd5(uin int64, passwordMd5 [16]byte) *QQClient { alive: true, ecdh: crypto.NewEcdh(), } + cli.GuildService = &GuildService{c: cli} cli.ecdh.FetchPubKey(uin) cli.UseDevice(SystemDeviceInfo) sso, err := getSSOAddress() @@ -451,6 +453,7 @@ func (c *QQClient) init(tokenLogin bool) error { } seq, pkt := c.buildGetMessageRequestPacket(msg.SyncFlag_START, time.Now().Unix()) _, _ = c.sendAndWait(seq, pkt, requestParams{"used_reg_proxy": true, "init": true}) + c.syncChannelFirstView() return nil } diff --git a/client/entities.go b/client/entities.go index cf38201f..3583ef0f 100644 --- a/client/entities.go +++ b/client/entities.go @@ -220,6 +220,16 @@ type ( OperatorNick string } + GuildMessageReactionsUpdatedEvent struct { + OperatorId uint64 // OperatorId 操作者TinyId, 删除贴表情的事件下不会有值 + EmojiId int32 // EmojiId 被贴的表情, 只有自身消息被贴表情才会有值 + GuildId uint64 + ChannelId uint64 + MessageId uint64 + MessageSenderUin int64 // MessageSenderUin 被贴表情的消息发送者QQ号 + CurrentReactions []*message.GuildMessageEmojiReaction + } + OcrResponse struct { Texts []*TextDetection `json:"texts"` Language string `json:"language"` diff --git a/client/events.go b/client/events.go index 143c8fb7..105a6b49 100644 --- a/client/events.go +++ b/client/events.go @@ -9,35 +9,37 @@ import ( ) type eventHandlers struct { - privateMessageHandlers []func(*QQClient, *message.PrivateMessage) - tempMessageHandlers []func(*QQClient, *TempMessageEvent) - groupMessageHandlers []func(*QQClient, *message.GroupMessage) - selfPrivateMessageHandlers []func(*QQClient, *message.PrivateMessage) - selfGroupMessageHandlers []func(*QQClient, *message.GroupMessage) - groupMuteEventHandlers []func(*QQClient, *GroupMuteEvent) - groupRecalledHandlers []func(*QQClient, *GroupMessageRecalledEvent) - friendRecalledHandlers []func(*QQClient, *FriendMessageRecalledEvent) - joinGroupHandlers []func(*QQClient, *GroupInfo) - leaveGroupHandlers []func(*QQClient, *GroupLeaveEvent) - memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent) - memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent) - memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent) - groupNameUpdatedHandlers []func(*QQClient, *GroupNameUpdatedEvent) - permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent) - groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest) - joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest) - friendRequestHandlers []func(*QQClient, *NewFriendRequest) - newFriendHandlers []func(*QQClient, *NewFriendEvent) - disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent) - logHandlers []func(*QQClient, *LogEvent) - serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent) bool - groupNotifyHandlers []func(*QQClient, INotifyEvent) - friendNotifyHandlers []func(*QQClient, INotifyEvent) - memberTitleUpdatedHandlers []func(*QQClient, *MemberSpecialTitleUpdatedEvent) - offlineFileHandlers []func(*QQClient, *OfflineFileEvent) - otherClientStatusChangedHandlers []func(*QQClient, *OtherClientStatusChangedEvent) - groupDigestHandlers []func(*QQClient, *GroupDigestEvent) - groupMessageReceiptHandlers sync.Map + privateMessageHandlers []func(*QQClient, *message.PrivateMessage) + tempMessageHandlers []func(*QQClient, *TempMessageEvent) + groupMessageHandlers []func(*QQClient, *message.GroupMessage) + selfPrivateMessageHandlers []func(*QQClient, *message.PrivateMessage) + selfGroupMessageHandlers []func(*QQClient, *message.GroupMessage) + guildChannelMessageHandlers []func(*QQClient, *message.GuildChannelMessage) + guildMessageReactionsUpdatedHandlers []func(*QQClient, *GuildMessageReactionsUpdatedEvent) + groupMuteEventHandlers []func(*QQClient, *GroupMuteEvent) + groupRecalledHandlers []func(*QQClient, *GroupMessageRecalledEvent) + friendRecalledHandlers []func(*QQClient, *FriendMessageRecalledEvent) + joinGroupHandlers []func(*QQClient, *GroupInfo) + leaveGroupHandlers []func(*QQClient, *GroupLeaveEvent) + memberJoinedHandlers []func(*QQClient, *MemberJoinGroupEvent) + memberLeavedHandlers []func(*QQClient, *MemberLeaveGroupEvent) + memberCardUpdatedHandlers []func(*QQClient, *MemberCardUpdatedEvent) + groupNameUpdatedHandlers []func(*QQClient, *GroupNameUpdatedEvent) + permissionChangedHandlers []func(*QQClient, *MemberPermissionChangedEvent) + groupInvitedHandlers []func(*QQClient, *GroupInvitedRequest) + joinRequestHandlers []func(*QQClient, *UserJoinGroupRequest) + friendRequestHandlers []func(*QQClient, *NewFriendRequest) + newFriendHandlers []func(*QQClient, *NewFriendEvent) + disconnectHandlers []func(*QQClient, *ClientDisconnectedEvent) + logHandlers []func(*QQClient, *LogEvent) + serverUpdatedHandlers []func(*QQClient, *ServerUpdatedEvent) bool + groupNotifyHandlers []func(*QQClient, INotifyEvent) + friendNotifyHandlers []func(*QQClient, INotifyEvent) + memberTitleUpdatedHandlers []func(*QQClient, *MemberSpecialTitleUpdatedEvent) + offlineFileHandlers []func(*QQClient, *OfflineFileEvent) + otherClientStatusChangedHandlers []func(*QQClient, *OtherClientStatusChangedEvent) + groupDigestHandlers []func(*QQClient, *GroupDigestEvent) + groupMessageReceiptHandlers sync.Map } func (c *QQClient) OnPrivateMessage(f func(*QQClient, *message.PrivateMessage)) { @@ -68,6 +70,14 @@ func (c *QQClient) OnSelfGroupMessage(f func(*QQClient, *message.GroupMessage)) c.eventHandlers.selfGroupMessageHandlers = append(c.eventHandlers.selfGroupMessageHandlers, f) } +func (s *GuildService) OnGuildChannelMessage(f func(*QQClient, *message.GuildChannelMessage)) { + s.c.eventHandlers.guildChannelMessageHandlers = append(s.c.eventHandlers.guildChannelMessageHandlers, f) +} + +func (s *GuildService) OnGuildMessageReactionsUpdated(f func(*QQClient, *GuildMessageReactionsUpdatedEvent)) { + s.c.eventHandlers.guildMessageReactionsUpdatedHandlers = append(s.c.eventHandlers.guildMessageReactionsUpdatedHandlers, f) +} + func (c *QQClient) OnGroupMuted(f func(*QQClient, *GroupMuteEvent)) { c.eventHandlers.groupMuteEventHandlers = append(c.eventHandlers.groupMuteEventHandlers, f) } @@ -230,6 +240,28 @@ func (c *QQClient) dispatchGroupMessageSelf(msg *message.GroupMessage) { } } +func (c *QQClient) dispatchGuildChannelMessage(msg *message.GuildChannelMessage) { + if msg == nil { + return + } + for _, f := range c.eventHandlers.guildChannelMessageHandlers { + cover(func() { + f(c, msg) + }) + } +} + +func (c *QQClient) dispatchGuildMessageReactionsUpdatedEvent(e *GuildMessageReactionsUpdatedEvent) { + if e == nil { + return + } + for _, f := range c.eventHandlers.guildMessageReactionsUpdatedHandlers { + cover(func() { + f(c, e) + }) + } +} + func (c *QQClient) dispatchGroupMuteEvent(e *GroupMuteEvent) { if e == nil { return diff --git a/client/global.go b/client/global.go index 62a0fd12..72a5011a 100644 --- a/client/global.go +++ b/client/global.go @@ -192,16 +192,16 @@ func GenRandomDevice() { func genVersionInfo(p ClientProtocol) *versionInfo { switch p { - case AndroidPhone: // Dumped by mirai from qq android v8.2.7 + case AndroidPhone: // Dumped by mirai from qq android v8.8.38 return &versionInfo{ ApkId: "com.tencent.mobileqq", - AppId: 537066738, - SubAppId: 537066738, - SortVersionName: "8.5.0", - BuildTime: 1607689988, + AppId: 537100432, + SubAppId: 537100432, + SortVersionName: "8.8.38", + BuildTime: 1634310940, ApkSign: []byte{0xA6, 0xB7, 0x45, 0xBF, 0x24, 0xA2, 0xC2, 0x77, 0x52, 0x77, 0x16, 0xF6, 0xF3, 0x6E, 0xB6, 0x8D}, - SdkVersion: "6.0.0.2454", - SSOVersion: 15, + SdkVersion: "6.0.0.2487", + SSOVersion: 16, MiscBitmap: 184024956, SubSigmap: 0x10400, MainSigMap: 34869472, @@ -225,9 +225,9 @@ func genVersionInfo(p ClientProtocol) *versionInfo { case IPad: return &versionInfo{ ApkId: "com.tencent.minihd.qq", - AppId: 537065739, - SubAppId: 537065739, - SortVersionName: "5.8.9", + AppId: 537097188, + SubAppId: 537097188, + SortVersionName: "8.8.35", BuildTime: 1595836208, ApkSign: []byte{170, 57, 120, 244, 31, 217, 111, 249, 145, 74, 102, 158, 24, 100, 116, 199}, SdkVersion: "6.0.0.2433", @@ -655,6 +655,10 @@ func (c *QQClient) packOIDBPackage(cmd, serviceType uint32, body []byte) []byte return r } +func (c *QQClient) packOIDBPackageDynamically(cmd, serviceType int32, msg binary.DynamicProtoMessage) []byte { + return c.packOIDBPackage(cmd, serviceType, msg.Encode()) +} + func (c *QQClient) packOIDBPackageProto(cmd, serviceType uint32, msg proto.Message) []byte { b, _ := proto.Marshal(msg) return c.packOIDBPackage(cmd, serviceType, b) @@ -665,6 +669,20 @@ func (c *QQClient) packOIDBPackageProto2(cmd, serviceType uint32, msg proto2.Mes return c.packOIDBPackage(cmd, serviceType, b) } +func (c *QQClient) unpackOIDBPackage(buff []byte, payload proto.Message) error { + pkg := new(oidb.OIDBSSOPkg) + if err := proto.Unmarshal(buff, pkg); err != nil { + return errors.Wrap(err, "failed to unmarshal protobuf message") + } + if pkg.GetResult() != 0 { + return errors.Errorf("oidb result unsuccessful: %v msg: %v", pkg.GetResult(), pkg.GetErrorMsg()) + } + if err := proto.Unmarshal(pkg.Bodybuffer, payload); err != nil { + return errors.Wrap(err, "failed to unmarshal protobuf message") + } + return nil +} + func (c *QQClient) Error(msg string, args ...interface{}) { c.dispatchLogEvent(&LogEvent{ Type: "ERROR", diff --git a/client/guild.go b/client/guild.go new file mode 100644 index 00000000..04bbc1f5 --- /dev/null +++ b/client/guild.go @@ -0,0 +1,461 @@ +package client + +import ( + "fmt" + + "github.com/Mrs4s/MiraiGo/binary" + "github.com/Mrs4s/MiraiGo/client/pb/channel" + "github.com/Mrs4s/MiraiGo/internal/packets" + "github.com/Mrs4s/MiraiGo/utils" + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" +) + +type ( + // GuildService 频道模块内自身的信息 + GuildService struct { + TinyId uint64 + Nickname string + AvatarUrl string + GuildCount uint32 + // Guilds 由服务器推送的频道列表 + Guilds []*GuildInfo + + c *QQClient + } + + // GuildInfo 频道信息 + GuildInfo struct { + GuildId uint64 + GuildCode uint64 + GuildName string + CoverUrl string + AvatarUrl string + Channels []*ChannelInfo + Bots []*GuildMemberInfo + Members []*GuildMemberInfo + Admins []*GuildMemberInfo + } + + // GuildMeta 频道数据 + GuildMeta struct { + GuildId uint64 + GuildName string + GuildProfile string + MaxMemberCount int64 + MemberCount int64 + CreateTime int64 + MaxRobotCount int32 + MaxAdminCount int32 + OwnerId uint64 + } + + GuildMemberInfo struct { + TinyId uint64 + Title string + Nickname string + LastSpeakTime int64 + Role int32 // 0 = member 1 = admin 2 = owner ? + } + + // GuildUserProfile 频道系统用户资料 + GuildUserProfile struct { + TinyId uint64 + Nickname string + AvatarUrl string + JoinTime int64 // 只有 GetGuildMemberProfileInfo 函数才会有 + } + + // ChannelInfo 子频道信息 + ChannelInfo struct { + ChannelId uint64 + ChannelName string + Time uint64 + EventTime uint32 + NotifyType uint32 + ChannelType ChannelType + AtAllSeq uint64 + Meta *ChannelMeta + } + + ChannelMeta struct { + CreatorUin int64 + CreatorTinyId uint64 + CreateTime int64 + GuildId uint64 + VisibleType int32 + TopMessageSeq uint64 + TopMessageTime int64 + TopMessageOperatorId uint64 + CurrentSlowMode int32 + TalkPermission int32 + SlowModes []*ChannelSlowModeInfo + } + + ChannelSlowModeInfo struct { + SlowModeKey int32 + SpeakFrequency int32 + SlowModeCircle int32 + SlowModeText string + } + + ChannelType int32 +) + +const ( + ChannelTypeText ChannelType = 1 + ChannelTypeVoice ChannelType = 2 + ChannelTypeLive ChannelType = 5 +) + +func init() { + decoders["trpc.group_pro.synclogic.SyncLogic.PushFirstView"] = decodeGuildPushFirstView +} + +func (s *GuildService) FindGuild(guildId uint64) *GuildInfo { + for _, i := range s.Guilds { + if i.GuildId == guildId { + return i + } + } + return nil +} + +func (g *GuildInfo) FindMember(tinyId uint64) *GuildMemberInfo { + for i := 0; i < len(g.Members); i++ { + if g.Members[i].TinyId == tinyId { + return g.Members[i] + } + } + for i := 0; i < len(g.Admins); i++ { + if g.Admins[i].TinyId == tinyId { + return g.Admins[i] + } + } + for i := 0; i < len(g.Bots); i++ { + if g.Bots[i].TinyId == tinyId { + return g.Bots[i] + } + } + return nil +} + +func (g *GuildInfo) FindChannel(channelId uint64) *ChannelInfo { + for _, c := range g.Channels { + if c.ChannelId == channelId { + return c + } + } + return nil +} + +func (s *GuildService) GetUserProfile(tinyId uint64) (*GuildUserProfile, error) { + seq := s.c.nextSeq() + flags := binary.DynamicProtoMessage{} + for i := 3; i <= 29; i++ { + flags[uint64(i)] = uint32(1) + } + flags[99] = uint32(1) + flags[100] = uint32(1) + payload := s.c.packOIDBPackageDynamically(3976, 1, binary.DynamicProtoMessage{ + 1: flags, + 3: tinyId, + 4: uint32(0), + }) + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0xfc9_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0Xfc9Rsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return nil, errors.Wrap(err, "decode packet error") + } + // todo: 解析个性档案 + return &GuildUserProfile{ + TinyId: tinyId, + Nickname: body.Profile.GetNickname(), + AvatarUrl: body.Profile.GetAvatarUrl(), + JoinTime: body.Profile.GetJoinTime(), + }, nil +} + +func (s *GuildService) GetGuildMembers(guildId uint64) (bots []*GuildMemberInfo, members []*GuildMemberInfo, admins []*GuildMemberInfo, err error) { + seq := s.c.nextSeq() + u1 := uint32(1) + // todo: 这个包实际上是 fetchMemberListWithRole , 可以按channel, role等规则获取成员列表, 还需要修改 + payload := s.c.packOIDBPackageDynamically(3931, 1, binary.DynamicProtoMessage{ // todo: 可能还需要处理翻页的情况? + 1: guildId, // guild id + 2: uint32(3), + 3: uint32(0), + 4: binary.DynamicProtoMessage{ // unknown param, looks like flags + 1: u1, 2: u1, 3: u1, 4: u1, 5: u1, 6: u1, 7: u1, 8: u1, 20: u1, + }, + 6: uint32(0), + 8: uint32(500), // count + 14: uint32(2), + }) + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0xf5b_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, nil, nil, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0Xf5BRsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return nil, nil, nil, errors.Wrap(err, "decode packet error") + } + protoToMemberInfo := func(mem *channel.GuildMemberInfo) *GuildMemberInfo { + return &GuildMemberInfo{ + TinyId: mem.GetTinyId(), + Title: mem.GetTitle(), + Nickname: mem.GetNickname(), + LastSpeakTime: mem.GetLastSpeakTime(), + Role: mem.GetRole(), + } + } + for _, mem := range body.Bots { + bots = append(bots, protoToMemberInfo(mem)) + } + for _, mem := range body.Members { + members = append(members, protoToMemberInfo(mem)) + } + for _, mem := range body.AdminInfo.Admins { + admins = append(admins, protoToMemberInfo(mem)) + } + return +} + +func (s *GuildService) GetGuildMemberProfileInfo(guildId, tinyId uint64) (*GuildUserProfile, error) { + seq := s.c.nextSeq() + flags := binary.DynamicProtoMessage{} + for i := 3; i <= 29; i++ { + flags[uint64(i)] = uint32(1) + } + flags[99] = uint32(1) + flags[100] = uint32(1) + payload := s.c.packOIDBPackageDynamically(3976, 1, binary.DynamicProtoMessage{ + 1: flags, + 3: tinyId, + 4: guildId, + }) + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0xf88_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0Xf88Rsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return nil, errors.Wrap(err, "decode packet error") + } + // todo: 解析个性档案 + return &GuildUserProfile{ + TinyId: tinyId, + Nickname: body.Profile.GetNickname(), + AvatarUrl: body.Profile.GetAvatarUrl(), + JoinTime: body.Profile.GetJoinTime(), + }, nil +} + +func (s *GuildService) FetchGuestGuild(guildId uint64) (*GuildMeta, error) { + seq := s.c.nextSeq() + u1 := uint32(1) + payload := s.c.packOIDBPackageDynamically(3927, 9, binary.DynamicProtoMessage{ + 1: binary.DynamicProtoMessage{ + 1: binary.DynamicProtoMessage{ + 2: u1, 4: u1, 5: u1, 6: u1, 7: u1, 8: u1, 11: u1, 12: u1, 13: u1, 14: u1, 45: u1, + 18: u1, 19: u1, 20: u1, 22: u1, 23: u1, 5002: u1, 5003: u1, 5004: u1, 5005: u1, 10007: u1, + }, + 2: binary.DynamicProtoMessage{ + 3: u1, 4: u1, 6: u1, 11: u1, 14: u1, 15: u1, 16: u1, 17: u1, + }, + }, + 2: binary.DynamicProtoMessage{ + 1: guildId, + }, + }) + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0xf57_9", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0Xf57Rsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return nil, errors.Wrap(err, "decode packet error") + } + return &GuildMeta{ + GuildName: body.Rsp.Meta.GetName(), + GuildProfile: body.Rsp.Meta.GetProfile(), + MaxMemberCount: body.Rsp.Meta.GetMaxMemberCount(), + MemberCount: body.Rsp.Meta.GetMemberCount(), + CreateTime: body.Rsp.Meta.GetCreateTime(), + MaxRobotCount: body.Rsp.Meta.GetRobotMaxNum(), + MaxAdminCount: body.Rsp.Meta.GetAdminMaxNum(), + OwnerId: body.Rsp.Meta.GetOwnerId(), + }, nil +} + +func (s *GuildService) FetchChannelList(guildId uint64) (r []*ChannelInfo, e error) { + seq := s.c.nextSeq() + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0xf5d_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, + s.c.packOIDBPackageDynamically(3933, 1, binary.DynamicProtoMessage{1: guildId, 3: binary.DynamicProtoMessage{1: uint32(1)}})) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0Xf5DRsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return nil, errors.Wrap(err, "decode packet error") + } + for _, info := range body.Rsp.Channels { + r = append(r, convertChannelInfo(info)) + } + return +} + +func (s *GuildService) FetchChannelInfo(guildId, channelId uint64) (*ChannelInfo, error) { + seq := s.c.nextSeq() + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0xf55_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, + s.c.packOIDBPackageDynamically(3925, 1, binary.DynamicProtoMessage{1: guildId, 2: channelId})) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + body := new(channel.ChannelOidb0Xf55Rsp) + if err = s.c.unpackOIDBPackage(rsp, body); err != nil { + return nil, errors.Wrap(err, "decode packet error") + } + return convertChannelInfo(body.Info), nil +} + +/* need analysis +func (s *GuildService) fetchChannelListState(guildId uint64, channels []*ChannelInfo) { + seq := s.c.nextSeq() + var ids []uint64 + for _, info := range channels { + ids = append(ids, info.ChannelId) + } + payload := s.c.packOIDBPackageDynamically(4104, 1, binary.DynamicProtoMessage{ + 1: binary.DynamicProtoMessage{ + 1: guildId, + 2: ids, + }, + }) + packet := packets.BuildUniPacket(s.c.Uin, seq, "OidbSvcTrpcTcp.0x1008_1", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return + } + pkg := new(oidb.OIDBSSOPkg) + if err = proto.Unmarshal(rsp, pkg); err != nil { + return //nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } +} +*/ + +func convertChannelInfo(info *channel.GuildChannelInfo) *ChannelInfo { + meta := &ChannelMeta{ + CreatorUin: info.GetCreatorUin(), + CreatorTinyId: info.GetCreatorTinyId(), + CreateTime: info.GetCreateTime(), + GuildId: info.GetGuildId(), + VisibleType: info.GetVisibleType(), + CurrentSlowMode: info.GetCurrentSlowModeKey(), + TalkPermission: info.GetTalkPermission(), + } + if info.TopMsg != nil { + meta.TopMessageSeq = info.TopMsg.GetTopMsgSeq() + meta.TopMessageTime = info.TopMsg.GetTopMsgTime() + meta.TopMessageOperatorId = info.TopMsg.GetTopMsgOperatorTinyId() + } + for _, slow := range info.SlowModeInfos { + meta.SlowModes = append(meta.SlowModes, &ChannelSlowModeInfo{ + SlowModeKey: slow.GetSlowModeKey(), + SpeakFrequency: slow.GetSpeakFrequency(), + SlowModeCircle: slow.GetSlowModeCircle(), + SlowModeText: slow.GetSlowModeText(), + }) + } + return &ChannelInfo{ + ChannelId: info.GetChannelId(), + ChannelName: info.GetChannelName(), + NotifyType: uint32(info.GetFinalNotifyType()), + ChannelType: ChannelType(info.GetChannelType()), + Meta: meta, + } +} + +func (c *QQClient) syncChannelFirstView() { + rsp, err := c.sendAndWaitDynamic(c.buildSyncChannelFirstViewPacket()) + if err != nil { + c.Error("sync channel error: %v", err) + return + } + firstViewRsp := new(channel.FirstViewRsp) + if err = proto.Unmarshal(rsp, firstViewRsp); err != nil { + return + } + c.GuildService.TinyId = firstViewRsp.GetSelfTinyid() + c.GuildService.GuildCount = firstViewRsp.GetGuildCount() + if self, err := c.GuildService.GetUserProfile(c.GuildService.TinyId); err == nil { + c.GuildService.Nickname = self.Nickname + c.GuildService.AvatarUrl = self.AvatarUrl + } else { + c.Error("get self guild profile error: %v", err) + } +} + +func (c *QQClient) buildSyncChannelFirstViewPacket() (uint16, []byte) { + seq := c.nextSeq() + req := &channel.FirstViewReq{ + LastMsgTime: proto.Uint64(0), + Seq: proto.Uint32(0), + DirectMessageFlag: proto.Uint32(1), + } + payload, _ := proto.Marshal(req) + packet := packets.BuildUniPacket(c.Uin, seq, "trpc.group_pro.synclogic.SyncLogic.SyncFirstView", 1, c.OutGoingPacketSessionId, []byte{}, c.sigInfo.d2Key, payload) + return seq, packet +} + +func decodeGuildPushFirstView(c *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { + firstViewMsg := new(channel.FirstViewMsg) + if err := proto.Unmarshal(payload, firstViewMsg); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + if len(firstViewMsg.GuildNodes) > 0 { + c.GuildService.Guilds = []*GuildInfo{} + for _, guild := range firstViewMsg.GuildNodes { + info := &GuildInfo{ + GuildId: guild.GetGuildId(), + GuildCode: guild.GetGuildCode(), + GuildName: utils.B2S(guild.GuildName), + CoverUrl: fmt.Sprintf("https://groupprocover-76483.picgzc.qpic.cn/%v", guild.GetGuildId()), + AvatarUrl: fmt.Sprintf("https://groupprohead-76292.picgzc.qpic.cn/%v", guild.GetGuildId()), + } + channels, err := c.GuildService.FetchChannelList(info.GuildId) + if err != nil { + c.Warning("waring: fetch guild %v channel error %v. will use sync node to fill channel list field", guild.GuildId, err) + for _, node := range guild.ChannelNodes { + meta := new(channel.ChannelMsgMeta) + _ = proto.Unmarshal(node.Meta, meta) + info.Channels = append(info.Channels, &ChannelInfo{ + ChannelId: node.GetChannelId(), + ChannelName: utils.B2S(node.ChannelName), + Time: node.GetTime(), + EventTime: node.GetEventTime(), + NotifyType: node.GetNotifyType(), + ChannelType: ChannelType(node.GetChannelType()), + AtAllSeq: meta.GetAtAllSeq(), + }) + } + } else { + info.Channels = channels + } + info.Bots, info.Members, info.Admins, _ = c.GuildService.GetGuildMembers(info.GuildId) + c.GuildService.Guilds = append(c.GuildService.Guilds, info) + } + } + if len(firstViewMsg.ChannelMsgs) > 0 { // sync msg + + } + return nil, nil +} diff --git a/client/guild_eventflow.go b/client/guild_eventflow.go new file mode 100644 index 00000000..98401c22 --- /dev/null +++ b/client/guild_eventflow.go @@ -0,0 +1,128 @@ +package client + +import ( + "time" + + "github.com/Mrs4s/MiraiGo/client/pb/channel" + "github.com/Mrs4s/MiraiGo/client/pb/msg" + "github.com/Mrs4s/MiraiGo/internal/packets" + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" +) + +func init() { + decoders["MsgPush.PushGroupProMsg"] = decodeGuildEventFlowPacket +} + +func decodeGuildEventFlowPacket(c *QQClient, _ *incomingPacketInfo, payload []byte) (interface{}, error) { + push := new(channel.MsgOnlinePush) + if err := proto.Unmarshal(payload, push); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + for _, m := range push.Msgs { + if m.Head.ContentHead.GetType() == 3841 { + type tipsPushInfo struct { + TinyId uint64 + TargetMessageSenderUin int64 + GuildId uint64 + ChannelId uint64 + } + // todo: 回头 event flow 的处理移出去重构下逻辑, 先暂时这样方便改 + var common *msg.CommonElem + if m.Body != nil { + for _, e := range m.Body.RichText.Elems { + if e.CommonElem != nil { + common = e.CommonElem + break + } + } + } + if m.Head.ContentHead.GetSubType() == 2 { // todo: tips? + if common == nil { // empty tips + + } + tipsInfo := &tipsPushInfo{ + TinyId: m.Head.RoutingHead.GetFromTinyid(), + GuildId: m.Head.RoutingHead.GetGuildId(), + ChannelId: m.Head.RoutingHead.GetChannelId(), + } + if len(m.CtrlHead.IncludeUin) > 0 { + tipsInfo.TargetMessageSenderUin = int64(m.CtrlHead.IncludeUin[0]) + } + return tipsInfo, nil + } + if common == nil || common.GetServiceType() != 500 { + continue + } + eventBody := new(channel.EventBody) + if err := proto.Unmarshal(common.PbElem, eventBody); err != nil { + c.Error("failed to unmarshal guild channel event body: %v", err) + continue + } + if eventBody.UpdateMsg != nil { + if eventBody.UpdateMsg.GetEventType() == 1 || eventBody.UpdateMsg.GetEventType() == 2 { // todo: 撤回消息 + continue + } + if eventBody.UpdateMsg.GetEventType() == 4 { // 消息贴表情更新 (包含添加或删除) + t, err := c.GuildService.pullRoamMsgByEventFlow(m.Head.RoutingHead.GetGuildId(), m.Head.RoutingHead.GetChannelId(), eventBody.UpdateMsg.GetMsgSeq(), eventBody.UpdateMsg.GetMsgSeq(), eventBody.UpdateMsg.GetEventVersion()-1) + if err != nil || len(t) == 0 { + c.Error("process guild event flow error: pull eventMsg message error: %v", err) + continue + } + // 自己的消息被贴表情会单独推送一个tips, 这里不需要解析 + if t[0].Head.RoutingHead.GetFromTinyid() == c.GuildService.TinyId { + continue + } + updatedEvent := &GuildMessageReactionsUpdatedEvent{ + GuildId: m.Head.RoutingHead.GetGuildId(), + ChannelId: m.Head.RoutingHead.GetChannelId(), + MessageId: t[0].Head.ContentHead.GetSeq(), + CurrentReactions: decodeGuildMessageEmojiReactions(t[0]), + } + tipsInfo, err := c.waitPacketTimeoutSyncF("MsgPush.PushGroupProMsg", time.Second, func(i interface{}) bool { + if i == nil { + return false + } + _, ok := i.(*tipsPushInfo) + return ok + }) + if err == nil { + updatedEvent.OperatorId = tipsInfo.(*tipsPushInfo).TinyId + updatedEvent.MessageSenderUin = tipsInfo.(*tipsPushInfo).TargetMessageSenderUin + } + c.dispatchGuildMessageReactionsUpdatedEvent(updatedEvent) + } + } + continue + } + if cm := c.parseGuildChannelMessage(m); cm != nil { + c.dispatchGuildChannelMessage(cm) + } + } + return nil, nil +} + +func (s *GuildService) pullRoamMsgByEventFlow(guildId, channelId, beginSeq, endSeq, eventVersion uint64) ([]*channel.ChannelMsgContent, error) { + payload, _ := proto.Marshal(&channel.ChannelMsgReq{ + ChannelParam: &channel.ChannelParam{ + GuildId: &guildId, + ChannelId: &channelId, + BeginSeq: &beginSeq, + EndSeq: &endSeq, + Version: []uint64{eventVersion}, + }, + WithVersionFlag: proto.Uint32(1), + DirectMessageFlag: proto.Uint32(0), + }) + seq := s.c.nextSeq() + packet := packets.BuildUniPacket(s.c.Uin, seq, "trpc.group_pro.synclogic.SyncLogic.GetChannelMsg", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + msgRsp := new(channel.ChannelMsgRsp) + if err = proto.Unmarshal(rsp, msgRsp); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + return msgRsp.ChannelMsg.Msgs, nil +} diff --git a/client/guild_msg.go b/client/guild_msg.go new file mode 100644 index 00000000..cffa977e --- /dev/null +++ b/client/guild_msg.go @@ -0,0 +1,161 @@ +package client + +import ( + "encoding/hex" + "math/rand" + "strconv" + + "github.com/Mrs4s/MiraiGo/client/pb/cmd0x388" + "github.com/Mrs4s/MiraiGo/internal/packets" + + "github.com/pkg/errors" + + "github.com/Mrs4s/MiraiGo/client/pb/channel" + "github.com/Mrs4s/MiraiGo/client/pb/msg" + "github.com/Mrs4s/MiraiGo/message" + "google.golang.org/protobuf/proto" +) + +func (s *GuildService) SendGuildChannelMessage(guildId, channelId uint64, m *message.SendingMessage) error { + mr := rand.Uint32() // 客户端似乎是生成的 u32 虽然类型是u64 + req := &channel.DF62ReqBody{Msg: &channel.ChannelMsgContent{ + Head: &channel.ChannelMsgHead{ + RoutingHead: &channel.ChannelRoutingHead{ + GuildId: &guildId, + ChannelId: &channelId, + FromUin: proto.Uint64(uint64(s.c.Uin)), + }, + ContentHead: &channel.ChannelContentHead{ + Type: proto.Uint64(3840), // const + Random: proto.Uint64(uint64(mr)), + }, + }, + Body: &msg.MessageBody{ + RichText: &msg.RichText{ + Elems: message.ToProtoElems(m.Elements, true), + }, + }, + }} + seq := s.c.nextSeq() + payload, _ := proto.Marshal(req) + packet := packets.BuildUniPacket(s.c.Uin, seq, "MsgProxy.SendMsg", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return errors.Wrap(err, "send packet error") + } + body := new(channel.DF62RspBody) + if err = proto.Unmarshal(rsp, body); err != nil { + return errors.Wrap(err, "failed to unmarshal protobuf message") + } + if body.GetResult() != 0 { + return errors.Errorf("send channel message error: server response %v", body.GetResult()) + } + // todo: 返回 *message.GuildMessage + return nil +} + +func (s *GuildService) QueryImage(guildId, channelId uint64, hash []byte, size uint64) (*message.GuildImageElement, error) { + seq := s.c.nextSeq() + payload, _ := proto.Marshal(&cmd0x388.D388ReqBody{ + NetType: proto.Uint32(3), + Subcmd: proto.Uint32(1), + TryupImgReq: []*cmd0x388.TryUpImgReq{ + { + GroupCode: &channelId, + SrcUin: proto.Uint64(uint64(s.c.Uin)), + FileId: proto.Uint64(0), + FileMd5: hash, + FileSize: &size, + FileName: []byte(hex.EncodeToString(hash) + ".jpg"), + SrcTerm: proto.Uint32(5), + PlatformType: proto.Uint32(9), + BuType: proto.Uint32(211), + PicType: proto.Uint32(1000), + BuildVer: []byte("8.8.38.2266"), + AppPicType: proto.Uint32(1052), + SrvUpload: proto.Uint32(0), + QqmeetGuildId: &guildId, + QqmeetChannelId: &channelId, + }, + }, + CommandId: proto.Uint32(83), + }) + packet := packets.BuildUniPacket(s.c.Uin, seq, "ImgStore.QQMeetPicUp", 1, s.c.OutGoingPacketSessionId, []byte{}, s.c.sigInfo.d2Key, payload) + rsp, err := s.c.sendAndWaitDynamic(seq, packet) + if err != nil { + return nil, errors.Wrap(err, "send packet error") + } + body := new(cmd0x388.D388RspBody) + if err = proto.Unmarshal(rsp, body); err != nil { + return nil, errors.Wrap(err, "failed to unmarshal protobuf message") + } + if len(body.TryupImgRsp) == 0 { + return nil, errors.New("response is empty") + } + if body.TryupImgRsp[0].GetFileExit() { + return &message.GuildImageElement{ + FileId: body.TryupImgRsp[0].GetFileid(), + FilePath: hex.EncodeToString(hash) + ".jpg", + Size: int32(size), + DownloadIndex: string(body.TryupImgRsp[0].GetDownloadIndex()), + Md5: hash, + }, nil + } + return nil, errors.New("image is not exists") +} + +func decodeGuildMessageEmojiReactions(content *channel.ChannelMsgContent) (r []*message.GuildMessageEmojiReaction) { + r = []*message.GuildMessageEmojiReaction{} + var common *msg.CommonElem + for _, elem := range content.Body.RichText.Elems { + if elem.CommonElem != nil && elem.CommonElem.GetServiceType() == 38 { + common = elem.CommonElem + break + } + } + if common == nil { + return + } + serv38 := new(msg.MsgElemInfoServtype38) + _ = proto.Unmarshal(common.PbElem, serv38) + if len(serv38.ReactData) > 0 { + cnt := new(channel.MsgCnt) + _ = proto.Unmarshal(serv38.ReactData, cnt) + if len(cnt.EmojiReaction) == 0 { + return + } + for _, e := range cnt.EmojiReaction { + reaction := &message.GuildMessageEmojiReaction{ + EmojiId: e.GetEmojiId(), + EmojiType: e.GetEmojiType(), + Count: int32(e.GetCnt()), + Clicked: e.GetIsClicked(), + } + if index, err := strconv.ParseInt(e.GetEmojiId(), 10, 32); err == nil { + reaction.Face = message.NewFace(int32(index)) + } + r = append(r, reaction) + } + } + return +} + +func (c *QQClient) parseGuildChannelMessage(msg *channel.ChannelMsgContent) *message.GuildChannelMessage { + guild := c.GuildService.FindGuild(msg.Head.RoutingHead.GetGuildId()) + if guild == nil { + return nil // todo: sync guild info + } + // mem := guild.FindMember(msg.Head.RoutingHead.GetFromTinyid()) + return &message.GuildChannelMessage{ + Id: msg.Head.ContentHead.GetSeq(), + InternalId: msg.Body.RichText.Attr.GetRandom(), + GuildId: msg.Head.RoutingHead.GetGuildId(), + ChannelId: msg.Head.RoutingHead.GetChannelId(), + Time: int64(msg.Head.ContentHead.GetTime()), + Sender: &message.GuildSender{ + TinyId: msg.Head.RoutingHead.GetFromTinyid(), + Nickname: string(msg.ExtInfo.GetFromNick()), + }, + Elements: message.ParseMessageElems(msg.Body.RichText.Elems), + } +} diff --git a/client/network.go b/client/network.go index 994756b3..2e82737c 100644 --- a/client/network.go +++ b/client/network.go @@ -213,6 +213,25 @@ func (c *QQClient) waitPacket(cmd string, f func(interface{}, error)) func() { } } +// waitPacketTimeoutSyncF +// 等待一个数据包解析, 优先级低于 sendAndWait +func (c *QQClient) waitPacketTimeoutSyncF(cmd string, timeout time.Duration, filter func(interface{}) bool) (r interface{}, e error) { + notifyChan := make(chan bool) + defer c.waitPacket(cmd, func(i interface{}, err error) { + if filter(i) { + r = i + e = err + notifyChan <- true + } + })() + select { + case <-notifyChan: + return + case <-time.After(timeout): + return nil, errors.New("timeout") + } +} + // sendAndWaitDynamic // 发送数据包并返回需要解析的 response func (c *QQClient) sendAndWaitDynamic(seq uint16, pkt []byte) ([]byte, error) { diff --git a/client/pb/channel/MsgResponsesSvr.pb.go b/client/pb/channel/MsgResponsesSvr.pb.go new file mode 100644 index 00000000..9e477770 --- /dev/null +++ b/client/pb/channel/MsgResponsesSvr.pb.go @@ -0,0 +1,822 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/MsgResponsesSvr.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type BatchGetMsgRspCountReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildMsgList []*GuildMsg `protobuf:"bytes,1,rep,name=guildMsgList" json:"guildMsgList,omitempty"` +} + +func (x *BatchGetMsgRspCountReq) Reset() { + *x = BatchGetMsgRspCountReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchGetMsgRspCountReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetMsgRspCountReq) ProtoMessage() {} + +func (x *BatchGetMsgRspCountReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchGetMsgRspCountReq.ProtoReflect.Descriptor instead. +func (*BatchGetMsgRspCountReq) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{0} +} + +func (x *BatchGetMsgRspCountReq) GetGuildMsgList() []*GuildMsg { + if x != nil { + return x.GuildMsgList + } + return nil +} + +type BatchGetMsgRspCountRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildMsgInfoList []*GuildMsgInfo `protobuf:"bytes,1,rep,name=guildMsgInfoList" json:"guildMsgInfoList,omitempty"` +} + +func (x *BatchGetMsgRspCountRsp) Reset() { + *x = BatchGetMsgRspCountRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchGetMsgRspCountRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchGetMsgRspCountRsp) ProtoMessage() {} + +func (x *BatchGetMsgRspCountRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchGetMsgRspCountRsp.ProtoReflect.Descriptor instead. +func (*BatchGetMsgRspCountRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{1} +} + +func (x *BatchGetMsgRspCountRsp) GetGuildMsgInfoList() []*GuildMsgInfo { + if x != nil { + return x.GuildMsgInfoList + } + return nil +} + +type SvrChannelMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + Id []*MsgId `protobuf:"bytes,2,rep,name=id" json:"id,omitempty"` +} + +func (x *SvrChannelMsg) Reset() { + *x = SvrChannelMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SvrChannelMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SvrChannelMsg) ProtoMessage() {} + +func (x *SvrChannelMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SvrChannelMsg.ProtoReflect.Descriptor instead. +func (*SvrChannelMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{2} +} + +func (x *SvrChannelMsg) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *SvrChannelMsg) GetId() []*MsgId { + if x != nil { + return x.Id + } + return nil +} + +type ChannelMsgInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + RespData []*MsgRespData `protobuf:"bytes,2,rep,name=respData" json:"respData,omitempty"` +} + +func (x *ChannelMsgInfo) Reset() { + *x = ChannelMsgInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgInfo) ProtoMessage() {} + +func (x *ChannelMsgInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgInfo.ProtoReflect.Descriptor instead. +func (*ChannelMsgInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{3} +} + +func (x *ChannelMsgInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ChannelMsgInfo) GetRespData() []*MsgRespData { + if x != nil { + return x.RespData + } + return nil +} + +type EmojiReaction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EmojiId *string `protobuf:"bytes,1,opt,name=emojiId" json:"emojiId,omitempty"` + EmojiType *uint64 `protobuf:"varint,2,opt,name=emojiType" json:"emojiType,omitempty"` + Cnt *uint64 `protobuf:"varint,3,opt,name=cnt" json:"cnt,omitempty"` + IsClicked *bool `protobuf:"varint,4,opt,name=isClicked" json:"isClicked,omitempty"` +} + +func (x *EmojiReaction) Reset() { + *x = EmojiReaction{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EmojiReaction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EmojiReaction) ProtoMessage() {} + +func (x *EmojiReaction) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EmojiReaction.ProtoReflect.Descriptor instead. +func (*EmojiReaction) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{4} +} + +func (x *EmojiReaction) GetEmojiId() string { + if x != nil && x.EmojiId != nil { + return *x.EmojiId + } + return "" +} + +func (x *EmojiReaction) GetEmojiType() uint64 { + if x != nil && x.EmojiType != nil { + return *x.EmojiType + } + return 0 +} + +func (x *EmojiReaction) GetCnt() uint64 { + if x != nil && x.Cnt != nil { + return *x.Cnt + } + return 0 +} + +func (x *EmojiReaction) GetIsClicked() bool { + if x != nil && x.IsClicked != nil { + return *x.IsClicked + } + return false +} + +type GuildMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelMsgList []*SvrChannelMsg `protobuf:"bytes,2,rep,name=channelMsgList" json:"channelMsgList,omitempty"` +} + +func (x *GuildMsg) Reset() { + *x = GuildMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMsg) ProtoMessage() {} + +func (x *GuildMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildMsg.ProtoReflect.Descriptor instead. +func (*GuildMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{5} +} + +func (x *GuildMsg) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildMsg) GetChannelMsgList() []*SvrChannelMsg { + if x != nil { + return x.ChannelMsgList + } + return nil +} + +type GuildMsgInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelMsgInfoList []*ChannelMsgInfo `protobuf:"bytes,2,rep,name=channelMsgInfoList" json:"channelMsgInfoList,omitempty"` +} + +func (x *GuildMsgInfo) Reset() { + *x = GuildMsgInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMsgInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMsgInfo) ProtoMessage() {} + +func (x *GuildMsgInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildMsgInfo.ProtoReflect.Descriptor instead. +func (*GuildMsgInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{6} +} + +func (x *GuildMsgInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildMsgInfo) GetChannelMsgInfoList() []*ChannelMsgInfo { + if x != nil { + return x.ChannelMsgInfoList + } + return nil +} + +type MsgCnt struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *MsgId `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + EmojiReaction []*EmojiReaction `protobuf:"bytes,2,rep,name=emojiReaction" json:"emojiReaction,omitempty"` +} + +func (x *MsgCnt) Reset() { + *x = MsgCnt{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgCnt) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgCnt) ProtoMessage() {} + +func (x *MsgCnt) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgCnt.ProtoReflect.Descriptor instead. +func (*MsgCnt) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{7} +} + +func (x *MsgCnt) GetId() *MsgId { + if x != nil { + return x.Id + } + return nil +} + +func (x *MsgCnt) GetEmojiReaction() []*EmojiReaction { + if x != nil { + return x.EmojiReaction + } + return nil +} + +type MsgId struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Version *uint64 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"` + Seq *uint64 `protobuf:"varint,2,opt,name=seq" json:"seq,omitempty"` +} + +func (x *MsgId) Reset() { + *x = MsgId{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgId) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgId) ProtoMessage() {} + +func (x *MsgId) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgId.ProtoReflect.Descriptor instead. +func (*MsgId) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{8} +} + +func (x *MsgId) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *MsgId) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +type MsgRespData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *MsgId `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` + Cnt []byte `protobuf:"bytes,2,opt,name=cnt" json:"cnt,omitempty"` +} + +func (x *MsgRespData) Reset() { + *x = MsgRespData{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgRespData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgRespData) ProtoMessage() {} + +func (x *MsgRespData) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_MsgResponsesSvr_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgRespData.ProtoReflect.Descriptor instead. +func (*MsgRespData) Descriptor() ([]byte, []int) { + return file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP(), []int{9} +} + +func (x *MsgRespData) GetId() *MsgId { + if x != nil { + return x.Id + } + return nil +} + +func (x *MsgRespData) GetCnt() []byte { + if x != nil { + return x.Cnt + } + return nil +} + +var File_pb_channel_MsgResponsesSvr_proto protoreflect.FileDescriptor + +var file_pb_channel_MsgResponsesSvr_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x4d, 0x73, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x53, 0x76, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0x47, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x4d, 0x73, + 0x67, 0x52, 0x73, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x2d, 0x0a, 0x0c, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x0c, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x53, 0x0a, 0x16, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x10, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x45, 0x0a, 0x0d, 0x53, 0x76, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x22, 0x58, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x73, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x44, 0x61, 0x74, + 0x61, 0x22, 0x77, 0x0a, 0x0d, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x63, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x69, 0x73, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x22, 0x5c, 0x0a, 0x08, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x12, 0x36, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x53, 0x76, 0x72, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x12, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x56, 0x0a, 0x06, 0x4d, 0x73, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x16, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x73, 0x67, 0x49, + 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x45, + 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x65, 0x6d, + 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x05, 0x4d, + 0x73, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, + 0x22, 0x37, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x16, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x06, 0x2e, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x63, 0x6e, 0x74, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_MsgResponsesSvr_proto_rawDescOnce sync.Once + file_pb_channel_MsgResponsesSvr_proto_rawDescData = file_pb_channel_MsgResponsesSvr_proto_rawDesc +) + +func file_pb_channel_MsgResponsesSvr_proto_rawDescGZIP() []byte { + file_pb_channel_MsgResponsesSvr_proto_rawDescOnce.Do(func() { + file_pb_channel_MsgResponsesSvr_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_MsgResponsesSvr_proto_rawDescData) + }) + return file_pb_channel_MsgResponsesSvr_proto_rawDescData +} + +var file_pb_channel_MsgResponsesSvr_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_pb_channel_MsgResponsesSvr_proto_goTypes = []interface{}{ + (*BatchGetMsgRspCountReq)(nil), // 0: BatchGetMsgRspCountReq + (*BatchGetMsgRspCountRsp)(nil), // 1: BatchGetMsgRspCountRsp + (*SvrChannelMsg)(nil), // 2: SvrChannelMsg + (*ChannelMsgInfo)(nil), // 3: ChannelMsgInfo + (*EmojiReaction)(nil), // 4: EmojiReaction + (*GuildMsg)(nil), // 5: GuildMsg + (*GuildMsgInfo)(nil), // 6: GuildMsgInfo + (*MsgCnt)(nil), // 7: MsgCnt + (*MsgId)(nil), // 8: MsgId + (*MsgRespData)(nil), // 9: MsgRespData +} +var file_pb_channel_MsgResponsesSvr_proto_depIdxs = []int32{ + 5, // 0: BatchGetMsgRspCountReq.guildMsgList:type_name -> GuildMsg + 6, // 1: BatchGetMsgRspCountRsp.guildMsgInfoList:type_name -> GuildMsgInfo + 8, // 2: SvrChannelMsg.id:type_name -> MsgId + 9, // 3: ChannelMsgInfo.respData:type_name -> MsgRespData + 2, // 4: GuildMsg.channelMsgList:type_name -> SvrChannelMsg + 3, // 5: GuildMsgInfo.channelMsgInfoList:type_name -> ChannelMsgInfo + 8, // 6: MsgCnt.id:type_name -> MsgId + 4, // 7: MsgCnt.emojiReaction:type_name -> EmojiReaction + 8, // 8: MsgRespData.id:type_name -> MsgId + 9, // [9:9] is the sub-list for method output_type + 9, // [9:9] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_pb_channel_MsgResponsesSvr_proto_init() } +func file_pb_channel_MsgResponsesSvr_proto_init() { + if File_pb_channel_MsgResponsesSvr_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_channel_MsgResponsesSvr_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchGetMsgRspCountReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchGetMsgRspCountRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SvrChannelMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EmojiReaction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMsgInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgCnt); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgId); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_MsgResponsesSvr_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgRespData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_MsgResponsesSvr_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_MsgResponsesSvr_proto_goTypes, + DependencyIndexes: file_pb_channel_MsgResponsesSvr_proto_depIdxs, + MessageInfos: file_pb_channel_MsgResponsesSvr_proto_msgTypes, + }.Build() + File_pb_channel_MsgResponsesSvr_proto = out.File + file_pb_channel_MsgResponsesSvr_proto_rawDesc = nil + file_pb_channel_MsgResponsesSvr_proto_goTypes = nil + file_pb_channel_MsgResponsesSvr_proto_depIdxs = nil +} diff --git a/client/pb/channel/MsgResponsesSvr.proto b/client/pb/channel/MsgResponsesSvr.proto new file mode 100644 index 00000000..4028abdc --- /dev/null +++ b/client/pb/channel/MsgResponsesSvr.proto @@ -0,0 +1,56 @@ +syntax = "proto2"; + +option go_package = "pb/channel;channel"; + + +message BatchGetMsgRspCountReq { + repeated GuildMsg guildMsgList = 1; +} + +message BatchGetMsgRspCountRsp { + repeated GuildMsgInfo guildMsgInfoList = 1; +} + +message SvrChannelMsg { + optional uint64 channelId = 1; + repeated MsgId id = 2; +} + +message ChannelMsgInfo { + optional uint64 channelId = 1; + repeated MsgRespData respData = 2; +} + +message EmojiReaction { + optional string emojiId = 1; + optional uint64 emojiType = 2; + optional uint64 cnt = 3; + optional bool isClicked = 4; +} + +message GuildMsg { + optional uint64 guildId = 1; + repeated SvrChannelMsg channelMsgList = 2; +} + +message GuildMsgInfo { + optional uint64 guildId = 1; + repeated ChannelMsgInfo channelMsgInfoList = 2; +} + +message MsgCnt { + optional MsgId id = 1; + repeated EmojiReaction emojiReaction = 2; +} + +message MsgId { + optional uint64 version = 1; + optional uint64 seq = 2; +} + +message MsgRespData { + optional MsgId id = 1; + optional bytes cnt = 2; +} + + diff --git a/client/pb/channel/common.pb.go b/client/pb/channel/common.pb.go new file mode 100644 index 00000000..34774c6f --- /dev/null +++ b/client/pb/channel/common.pb.go @@ -0,0 +1,1754 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/common.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + msg "github.com/Mrs4s/MiraiGo/client/pb/msg" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChannelContentHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint64 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + SubType *uint64 `protobuf:"varint,2,opt,name=subType" json:"subType,omitempty"` + Random *uint64 `protobuf:"varint,3,opt,name=random" json:"random,omitempty"` + Seq *uint64 `protobuf:"varint,4,opt,name=seq" json:"seq,omitempty"` + CntSeq *uint64 `protobuf:"varint,5,opt,name=cntSeq" json:"cntSeq,omitempty"` + Time *uint64 `protobuf:"varint,6,opt,name=time" json:"time,omitempty"` + Meta []byte `protobuf:"bytes,7,opt,name=meta" json:"meta,omitempty"` +} + +func (x *ChannelContentHead) Reset() { + *x = ChannelContentHead{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelContentHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelContentHead) ProtoMessage() {} + +func (x *ChannelContentHead) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelContentHead.ProtoReflect.Descriptor instead. +func (*ChannelContentHead) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{0} +} + +func (x *ChannelContentHead) GetType() uint64 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *ChannelContentHead) GetSubType() uint64 { + if x != nil && x.SubType != nil { + return *x.SubType + } + return 0 +} + +func (x *ChannelContentHead) GetRandom() uint64 { + if x != nil && x.Random != nil { + return *x.Random + } + return 0 +} + +func (x *ChannelContentHead) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *ChannelContentHead) GetCntSeq() uint64 { + if x != nil && x.CntSeq != nil { + return *x.CntSeq + } + return 0 +} + +func (x *ChannelContentHead) GetTime() uint64 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +func (x *ChannelContentHead) GetMeta() []byte { + if x != nil { + return x.Meta + } + return nil +} + +type DirectMessageMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uin *uint64 `protobuf:"varint,1,opt,name=uin" json:"uin,omitempty"` + Tinyid *uint64 `protobuf:"varint,2,opt,name=tinyid" json:"tinyid,omitempty"` + SourceGuildId *uint64 `protobuf:"varint,3,opt,name=sourceGuildId" json:"sourceGuildId,omitempty"` + SourceGuildName []byte `protobuf:"bytes,4,opt,name=sourceGuildName" json:"sourceGuildName,omitempty"` + NickName []byte `protobuf:"bytes,5,opt,name=nickName" json:"nickName,omitempty"` + MemberName []byte `protobuf:"bytes,6,opt,name=memberName" json:"memberName,omitempty"` + NotifyType *uint32 `protobuf:"varint,7,opt,name=notifyType" json:"notifyType,omitempty"` +} + +func (x *DirectMessageMember) Reset() { + *x = DirectMessageMember{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectMessageMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectMessageMember) ProtoMessage() {} + +func (x *DirectMessageMember) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DirectMessageMember.ProtoReflect.Descriptor instead. +func (*DirectMessageMember) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{1} +} + +func (x *DirectMessageMember) GetUin() uint64 { + if x != nil && x.Uin != nil { + return *x.Uin + } + return 0 +} + +func (x *DirectMessageMember) GetTinyid() uint64 { + if x != nil && x.Tinyid != nil { + return *x.Tinyid + } + return 0 +} + +func (x *DirectMessageMember) GetSourceGuildId() uint64 { + if x != nil && x.SourceGuildId != nil { + return *x.SourceGuildId + } + return 0 +} + +func (x *DirectMessageMember) GetSourceGuildName() []byte { + if x != nil { + return x.SourceGuildName + } + return nil +} + +func (x *DirectMessageMember) GetNickName() []byte { + if x != nil { + return x.NickName + } + return nil +} + +func (x *DirectMessageMember) GetMemberName() []byte { + if x != nil { + return x.MemberName + } + return nil +} + +func (x *DirectMessageMember) GetNotifyType() uint32 { + if x != nil && x.NotifyType != nil { + return *x.NotifyType + } + return 0 +} + +type ChannelEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint64 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Version *uint64 `protobuf:"varint,2,opt,name=version" json:"version,omitempty"` + OpInfo *ChannelMsgOpInfo `protobuf:"bytes,3,opt,name=opInfo" json:"opInfo,omitempty"` +} + +func (x *ChannelEvent) Reset() { + *x = ChannelEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelEvent) ProtoMessage() {} + +func (x *ChannelEvent) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelEvent.ProtoReflect.Descriptor instead. +func (*ChannelEvent) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{2} +} + +func (x *ChannelEvent) GetType() uint64 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *ChannelEvent) GetVersion() uint64 { + if x != nil && x.Version != nil { + return *x.Version + } + return 0 +} + +func (x *ChannelEvent) GetOpInfo() *ChannelMsgOpInfo { + if x != nil { + return x.OpInfo + } + return nil +} + +type ChannelExtInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromNick []byte `protobuf:"bytes,1,opt,name=fromNick" json:"fromNick,omitempty"` + GuildName []byte `protobuf:"bytes,2,opt,name=guildName" json:"guildName,omitempty"` + ChannelName []byte `protobuf:"bytes,3,opt,name=channelName" json:"channelName,omitempty"` + Visibility *uint32 `protobuf:"varint,4,opt,name=visibility" json:"visibility,omitempty"` + NotifyType *uint32 `protobuf:"varint,5,opt,name=notifyType" json:"notifyType,omitempty"` + OfflineFlag *uint32 `protobuf:"varint,6,opt,name=offlineFlag" json:"offlineFlag,omitempty"` + NameType *uint32 `protobuf:"varint,7,opt,name=nameType" json:"nameType,omitempty"` + MemberName []byte `protobuf:"bytes,8,opt,name=memberName" json:"memberName,omitempty"` + Timestamp *uint32 `protobuf:"varint,9,opt,name=timestamp" json:"timestamp,omitempty"` + EventVersion *uint64 `protobuf:"varint,10,opt,name=eventVersion" json:"eventVersion,omitempty"` + Events []*ChannelEvent `protobuf:"bytes,11,rep,name=events" json:"events,omitempty"` + FromRoleInfo *ChannelRole `protobuf:"bytes,12,opt,name=fromRoleInfo" json:"fromRoleInfo,omitempty"` + FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,13,opt,name=freqLimitInfo" json:"freqLimitInfo,omitempty"` + DirectMessageMember []*DirectMessageMember `protobuf:"bytes,14,rep,name=directMessageMember" json:"directMessageMember,omitempty"` +} + +func (x *ChannelExtInfo) Reset() { + *x = ChannelExtInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelExtInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelExtInfo) ProtoMessage() {} + +func (x *ChannelExtInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelExtInfo.ProtoReflect.Descriptor instead. +func (*ChannelExtInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{3} +} + +func (x *ChannelExtInfo) GetFromNick() []byte { + if x != nil { + return x.FromNick + } + return nil +} + +func (x *ChannelExtInfo) GetGuildName() []byte { + if x != nil { + return x.GuildName + } + return nil +} + +func (x *ChannelExtInfo) GetChannelName() []byte { + if x != nil { + return x.ChannelName + } + return nil +} + +func (x *ChannelExtInfo) GetVisibility() uint32 { + if x != nil && x.Visibility != nil { + return *x.Visibility + } + return 0 +} + +func (x *ChannelExtInfo) GetNotifyType() uint32 { + if x != nil && x.NotifyType != nil { + return *x.NotifyType + } + return 0 +} + +func (x *ChannelExtInfo) GetOfflineFlag() uint32 { + if x != nil && x.OfflineFlag != nil { + return *x.OfflineFlag + } + return 0 +} + +func (x *ChannelExtInfo) GetNameType() uint32 { + if x != nil && x.NameType != nil { + return *x.NameType + } + return 0 +} + +func (x *ChannelExtInfo) GetMemberName() []byte { + if x != nil { + return x.MemberName + } + return nil +} + +func (x *ChannelExtInfo) GetTimestamp() uint32 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *ChannelExtInfo) GetEventVersion() uint64 { + if x != nil && x.EventVersion != nil { + return *x.EventVersion + } + return 0 +} + +func (x *ChannelExtInfo) GetEvents() []*ChannelEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *ChannelExtInfo) GetFromRoleInfo() *ChannelRole { + if x != nil { + return x.FromRoleInfo + } + return nil +} + +func (x *ChannelExtInfo) GetFreqLimitInfo() *ChannelFreqLimitInfo { + if x != nil { + return x.FreqLimitInfo + } + return nil +} + +func (x *ChannelExtInfo) GetDirectMessageMember() []*DirectMessageMember { + if x != nil { + return x.DirectMessageMember + } + return nil +} + +type ChannelFreqLimitInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsLimited *uint32 `protobuf:"varint,1,opt,name=isLimited" json:"isLimited,omitempty"` + LeftCount *uint32 `protobuf:"varint,2,opt,name=leftCount" json:"leftCount,omitempty"` + LimitTimestamp *uint64 `protobuf:"varint,3,opt,name=limitTimestamp" json:"limitTimestamp,omitempty"` +} + +func (x *ChannelFreqLimitInfo) Reset() { + *x = ChannelFreqLimitInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelFreqLimitInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelFreqLimitInfo) ProtoMessage() {} + +func (x *ChannelFreqLimitInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelFreqLimitInfo.ProtoReflect.Descriptor instead. +func (*ChannelFreqLimitInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{4} +} + +func (x *ChannelFreqLimitInfo) GetIsLimited() uint32 { + if x != nil && x.IsLimited != nil { + return *x.IsLimited + } + return 0 +} + +func (x *ChannelFreqLimitInfo) GetLeftCount() uint32 { + if x != nil && x.LeftCount != nil { + return *x.LeftCount + } + return 0 +} + +func (x *ChannelFreqLimitInfo) GetLimitTimestamp() uint64 { + if x != nil && x.LimitTimestamp != nil { + return *x.LimitTimestamp + } + return 0 +} + +type ChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Name []byte `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Color *uint32 `protobuf:"varint,3,opt,name=color" json:"color,omitempty"` + Hoist *uint32 `protobuf:"varint,4,opt,name=hoist" json:"hoist,omitempty"` +} + +func (x *ChannelInfo) Reset() { + *x = ChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelInfo) ProtoMessage() {} + +func (x *ChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelInfo.ProtoReflect.Descriptor instead. +func (*ChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{5} +} + +func (x *ChannelInfo) GetId() uint64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *ChannelInfo) GetName() []byte { + if x != nil { + return x.Name + } + return nil +} + +func (x *ChannelInfo) GetColor() uint32 { + if x != nil && x.Color != nil { + return *x.Color + } + return 0 +} + +func (x *ChannelInfo) GetHoist() uint32 { + if x != nil && x.Hoist != nil { + return *x.Hoist + } + return 0 +} + +type ChannelLoginSig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` + Sig []byte `protobuf:"bytes,2,opt,name=sig" json:"sig,omitempty"` + Appid *uint32 `protobuf:"varint,3,opt,name=appid" json:"appid,omitempty"` +} + +func (x *ChannelLoginSig) Reset() { + *x = ChannelLoginSig{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelLoginSig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelLoginSig) ProtoMessage() {} + +func (x *ChannelLoginSig) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelLoginSig.ProtoReflect.Descriptor instead. +func (*ChannelLoginSig) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{6} +} + +func (x *ChannelLoginSig) GetType() uint32 { + if x != nil && x.Type != nil { + return *x.Type + } + return 0 +} + +func (x *ChannelLoginSig) GetSig() []byte { + if x != nil { + return x.Sig + } + return nil +} + +func (x *ChannelLoginSig) GetAppid() uint32 { + if x != nil && x.Appid != nil { + return *x.Appid + } + return 0 +} + +type ChannelMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUin *uint64 `protobuf:"varint,1,opt,name=fromUin" json:"fromUin,omitempty"` + LoginSig *ChannelLoginSig `protobuf:"bytes,2,opt,name=loginSig" json:"loginSig,omitempty"` +} + +func (x *ChannelMeta) Reset() { + *x = ChannelMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMeta) ProtoMessage() {} + +func (x *ChannelMeta) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMeta.ProtoReflect.Descriptor instead. +func (*ChannelMeta) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{7} +} + +func (x *ChannelMeta) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *ChannelMeta) GetLoginSig() *ChannelLoginSig { + if x != nil { + return x.LoginSig + } + return nil +} + +type ChannelMsgContent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Head *ChannelMsgHead `protobuf:"bytes,1,opt,name=head" json:"head,omitempty"` + CtrlHead *ChannelMsgCtrlHead `protobuf:"bytes,2,opt,name=ctrlHead" json:"ctrlHead,omitempty"` + Body *msg.MessageBody `protobuf:"bytes,3,opt,name=body" json:"body,omitempty"` + ExtInfo *ChannelExtInfo `protobuf:"bytes,4,opt,name=extInfo" json:"extInfo,omitempty"` +} + +func (x *ChannelMsgContent) Reset() { + *x = ChannelMsgContent{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgContent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgContent) ProtoMessage() {} + +func (x *ChannelMsgContent) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgContent.ProtoReflect.Descriptor instead. +func (*ChannelMsgContent) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{8} +} + +func (x *ChannelMsgContent) GetHead() *ChannelMsgHead { + if x != nil { + return x.Head + } + return nil +} + +func (x *ChannelMsgContent) GetCtrlHead() *ChannelMsgCtrlHead { + if x != nil { + return x.CtrlHead + } + return nil +} + +func (x *ChannelMsgContent) GetBody() *msg.MessageBody { + if x != nil { + return x.Body + } + return nil +} + +func (x *ChannelMsgContent) GetExtInfo() *ChannelExtInfo { + if x != nil { + return x.ExtInfo + } + return nil +} + +type ChannelMsgCtrlHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IncludeUin []uint64 `protobuf:"varint,1,rep,name=includeUin" json:"includeUin,omitempty"` + ExcludeUin []uint64 `protobuf:"varint,2,rep,name=excludeUin" json:"excludeUin,omitempty"` + Featureid []uint64 `protobuf:"varint,3,rep,name=featureid" json:"featureid,omitempty"` + OfflineFlag *uint32 `protobuf:"varint,4,opt,name=offlineFlag" json:"offlineFlag,omitempty"` + Visibility *uint32 `protobuf:"varint,5,opt,name=visibility" json:"visibility,omitempty"` + CtrlFlag *uint64 `protobuf:"varint,6,opt,name=ctrlFlag" json:"ctrlFlag,omitempty"` + Events []*ChannelEvent `protobuf:"bytes,7,rep,name=events" json:"events,omitempty"` + Level *uint64 `protobuf:"varint,8,opt,name=level" json:"level,omitempty"` + PersonalLevels []*PersonalLevel `protobuf:"bytes,9,rep,name=personalLevels" json:"personalLevels,omitempty"` + GuildSyncSeq *uint64 `protobuf:"varint,10,opt,name=guildSyncSeq" json:"guildSyncSeq,omitempty"` + MemberNum *uint32 `protobuf:"varint,11,opt,name=memberNum" json:"memberNum,omitempty"` + ChannelType *uint32 `protobuf:"varint,12,opt,name=channelType" json:"channelType,omitempty"` + PrivateType *uint32 `protobuf:"varint,13,opt,name=privateType" json:"privateType,omitempty"` +} + +func (x *ChannelMsgCtrlHead) Reset() { + *x = ChannelMsgCtrlHead{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgCtrlHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgCtrlHead) ProtoMessage() {} + +func (x *ChannelMsgCtrlHead) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgCtrlHead.ProtoReflect.Descriptor instead. +func (*ChannelMsgCtrlHead) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{9} +} + +func (x *ChannelMsgCtrlHead) GetIncludeUin() []uint64 { + if x != nil { + return x.IncludeUin + } + return nil +} + +func (x *ChannelMsgCtrlHead) GetExcludeUin() []uint64 { + if x != nil { + return x.ExcludeUin + } + return nil +} + +func (x *ChannelMsgCtrlHead) GetFeatureid() []uint64 { + if x != nil { + return x.Featureid + } + return nil +} + +func (x *ChannelMsgCtrlHead) GetOfflineFlag() uint32 { + if x != nil && x.OfflineFlag != nil { + return *x.OfflineFlag + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetVisibility() uint32 { + if x != nil && x.Visibility != nil { + return *x.Visibility + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetCtrlFlag() uint64 { + if x != nil && x.CtrlFlag != nil { + return *x.CtrlFlag + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetEvents() []*ChannelEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *ChannelMsgCtrlHead) GetLevel() uint64 { + if x != nil && x.Level != nil { + return *x.Level + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetPersonalLevels() []*PersonalLevel { + if x != nil { + return x.PersonalLevels + } + return nil +} + +func (x *ChannelMsgCtrlHead) GetGuildSyncSeq() uint64 { + if x != nil && x.GuildSyncSeq != nil { + return *x.GuildSyncSeq + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetMemberNum() uint32 { + if x != nil && x.MemberNum != nil { + return *x.MemberNum + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *ChannelMsgCtrlHead) GetPrivateType() uint32 { + if x != nil && x.PrivateType != nil { + return *x.PrivateType + } + return 0 +} + +type ChannelMsgHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoutingHead *ChannelRoutingHead `protobuf:"bytes,1,opt,name=routingHead" json:"routingHead,omitempty"` + ContentHead *ChannelContentHead `protobuf:"bytes,2,opt,name=contentHead" json:"contentHead,omitempty"` +} + +func (x *ChannelMsgHead) Reset() { + *x = ChannelMsgHead{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgHead) ProtoMessage() {} + +func (x *ChannelMsgHead) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgHead.ProtoReflect.Descriptor instead. +func (*ChannelMsgHead) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{10} +} + +func (x *ChannelMsgHead) GetRoutingHead() *ChannelRoutingHead { + if x != nil { + return x.RoutingHead + } + return nil +} + +func (x *ChannelMsgHead) GetContentHead() *ChannelContentHead { + if x != nil { + return x.ContentHead + } + return nil +} + +type ChannelMsgMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AtAllSeq *uint64 `protobuf:"varint,1,opt,name=atAllSeq" json:"atAllSeq,omitempty"` +} + +func (x *ChannelMsgMeta) Reset() { + *x = ChannelMsgMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgMeta) ProtoMessage() {} + +func (x *ChannelMsgMeta) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgMeta.ProtoReflect.Descriptor instead. +func (*ChannelMsgMeta) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{11} +} + +func (x *ChannelMsgMeta) GetAtAllSeq() uint64 { + if x != nil && x.AtAllSeq != nil { + return *x.AtAllSeq + } + return 0 +} + +type ChannelMsgOpInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorTinyid *uint64 `protobuf:"varint,1,opt,name=operatorTinyid" json:"operatorTinyid,omitempty"` + OperatorRole *uint64 `protobuf:"varint,2,opt,name=operatorRole" json:"operatorRole,omitempty"` + Reason *uint64 `protobuf:"varint,3,opt,name=reason" json:"reason,omitempty"` + Timestamp *uint64 `protobuf:"varint,4,opt,name=timestamp" json:"timestamp,omitempty"` + AtType *uint64 `protobuf:"varint,5,opt,name=atType" json:"atType,omitempty"` +} + +func (x *ChannelMsgOpInfo) Reset() { + *x = ChannelMsgOpInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgOpInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgOpInfo) ProtoMessage() {} + +func (x *ChannelMsgOpInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgOpInfo.ProtoReflect.Descriptor instead. +func (*ChannelMsgOpInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{12} +} + +func (x *ChannelMsgOpInfo) GetOperatorTinyid() uint64 { + if x != nil && x.OperatorTinyid != nil { + return *x.OperatorTinyid + } + return 0 +} + +func (x *ChannelMsgOpInfo) GetOperatorRole() uint64 { + if x != nil && x.OperatorRole != nil { + return *x.OperatorRole + } + return 0 +} + +func (x *ChannelMsgOpInfo) GetReason() uint64 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +func (x *ChannelMsgOpInfo) GetTimestamp() uint64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +func (x *ChannelMsgOpInfo) GetAtType() uint64 { + if x != nil && x.AtType != nil { + return *x.AtType + } + return 0 +} + +type PersonalLevel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ToUin *uint64 `protobuf:"varint,1,opt,name=toUin" json:"toUin,omitempty"` + Level *uint64 `protobuf:"varint,2,opt,name=level" json:"level,omitempty"` +} + +func (x *PersonalLevel) Reset() { + *x = PersonalLevel{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalLevel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalLevel) ProtoMessage() {} + +func (x *PersonalLevel) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PersonalLevel.ProtoReflect.Descriptor instead. +func (*PersonalLevel) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{13} +} + +func (x *PersonalLevel) GetToUin() uint64 { + if x != nil && x.ToUin != nil { + return *x.ToUin + } + return 0 +} + +func (x *PersonalLevel) GetLevel() uint64 { + if x != nil && x.Level != nil { + return *x.Level + } + return 0 +} + +type ChannelRole struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *uint64 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"` + Info []byte `protobuf:"bytes,2,opt,name=info" json:"info,omitempty"` + Flag *uint32 `protobuf:"varint,3,opt,name=flag" json:"flag,omitempty"` +} + +func (x *ChannelRole) Reset() { + *x = ChannelRole{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelRole) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelRole) ProtoMessage() {} + +func (x *ChannelRole) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelRole.ProtoReflect.Descriptor instead. +func (*ChannelRole) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{14} +} + +func (x *ChannelRole) GetId() uint64 { + if x != nil && x.Id != nil { + return *x.Id + } + return 0 +} + +func (x *ChannelRole) GetInfo() []byte { + if x != nil { + return x.Info + } + return nil +} + +func (x *ChannelRole) GetFlag() uint32 { + if x != nil && x.Flag != nil { + return *x.Flag + } + return 0 +} + +type ChannelRoutingHead struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + FromUin *uint64 `protobuf:"varint,3,opt,name=fromUin" json:"fromUin,omitempty"` + FromTinyid *uint64 `protobuf:"varint,4,opt,name=fromTinyid" json:"fromTinyid,omitempty"` + GuildCode *uint64 `protobuf:"varint,5,opt,name=guildCode" json:"guildCode,omitempty"` + FromAppid *uint64 `protobuf:"varint,6,opt,name=fromAppid" json:"fromAppid,omitempty"` + DirectMessageFlag *uint32 `protobuf:"varint,7,opt,name=directMessageFlag" json:"directMessageFlag,omitempty"` +} + +func (x *ChannelRoutingHead) Reset() { + *x = ChannelRoutingHead{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_common_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelRoutingHead) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelRoutingHead) ProtoMessage() {} + +func (x *ChannelRoutingHead) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_common_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelRoutingHead.ProtoReflect.Descriptor instead. +func (*ChannelRoutingHead) Descriptor() ([]byte, []int) { + return file_pb_channel_common_proto_rawDescGZIP(), []int{15} +} + +func (x *ChannelRoutingHead) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChannelRoutingHead) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ChannelRoutingHead) GetFromUin() uint64 { + if x != nil && x.FromUin != nil { + return *x.FromUin + } + return 0 +} + +func (x *ChannelRoutingHead) GetFromTinyid() uint64 { + if x != nil && x.FromTinyid != nil { + return *x.FromTinyid + } + return 0 +} + +func (x *ChannelRoutingHead) GetGuildCode() uint64 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *ChannelRoutingHead) GetFromAppid() uint64 { + if x != nil && x.FromAppid != nil { + return *x.FromAppid + } + return 0 +} + +func (x *ChannelRoutingHead) GetDirectMessageFlag() uint32 { + if x != nil && x.DirectMessageFlag != nil { + return *x.DirectMessageFlag + } + return 0 +} + +var File_pb_channel_common_proto protoreflect.FileDescriptor + +var file_pb_channel_common_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x1a, 0x10, 0x70, 0x62, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x73, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, + 0x65, 0x74, 0x61, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, + 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x6f, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x31, 0x0a, 0x06, 0x6f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0xca, 0x04, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x78, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, + 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x22, 0x0a, + 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x2d, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x38, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0c, 0x66, 0x72, + 0x6f, 0x6d, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0d, 0x66, 0x72, + 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0d, 0x66, 0x72, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x4e, 0x0a, 0x13, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x13, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, + 0x7a, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x69, 0x73, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x5d, 0x0a, 0x0b, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, + 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x68, 0x6f, 0x69, 0x73, 0x74, 0x22, 0x4d, 0x0a, 0x0f, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x73, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0b, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, + 0x69, 0x6e, 0x12, 0x34, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x52, 0x08, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x22, 0xd2, 0x01, 0x0a, 0x11, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2b, + 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x37, 0x0a, 0x08, 0x63, + 0x74, 0x72, 0x6c, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x48, 0x65, 0x61, 0x64, 0x52, 0x08, 0x63, 0x74, 0x72, 0x6c, + 0x48, 0x65, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x65, 0x78, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x45, 0x78, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xdb, 0x03, + 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, + 0x48, 0x65, 0x61, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x69, 0x73, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x2d, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, + 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x79, + 0x6e, 0x63, 0x53, 0x65, 0x71, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x3d, + 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, + 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x3d, 0x0a, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x22, 0x2c, 0x0a, 0x0e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1a, + 0x0a, 0x08, 0x61, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x61, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x65, 0x71, 0x22, 0xac, 0x01, 0x0a, 0x10, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3b, 0x0a, 0x0d, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x45, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0xf0, 0x01, + 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, + 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x69, + 0x6e, 0x79, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, + 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, + 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_common_proto_rawDescOnce sync.Once + file_pb_channel_common_proto_rawDescData = file_pb_channel_common_proto_rawDesc +) + +func file_pb_channel_common_proto_rawDescGZIP() []byte { + file_pb_channel_common_proto_rawDescOnce.Do(func() { + file_pb_channel_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_common_proto_rawDescData) + }) + return file_pb_channel_common_proto_rawDescData +} + +var file_pb_channel_common_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_pb_channel_common_proto_goTypes = []interface{}{ + (*ChannelContentHead)(nil), // 0: channel.ChannelContentHead + (*DirectMessageMember)(nil), // 1: channel.DirectMessageMember + (*ChannelEvent)(nil), // 2: channel.ChannelEvent + (*ChannelExtInfo)(nil), // 3: channel.ChannelExtInfo + (*ChannelFreqLimitInfo)(nil), // 4: channel.ChannelFreqLimitInfo + (*ChannelInfo)(nil), // 5: channel.ChannelInfo + (*ChannelLoginSig)(nil), // 6: channel.ChannelLoginSig + (*ChannelMeta)(nil), // 7: channel.ChannelMeta + (*ChannelMsgContent)(nil), // 8: channel.ChannelMsgContent + (*ChannelMsgCtrlHead)(nil), // 9: channel.ChannelMsgCtrlHead + (*ChannelMsgHead)(nil), // 10: channel.ChannelMsgHead + (*ChannelMsgMeta)(nil), // 11: channel.ChannelMsgMeta + (*ChannelMsgOpInfo)(nil), // 12: channel.ChannelMsgOpInfo + (*PersonalLevel)(nil), // 13: channel.PersonalLevel + (*ChannelRole)(nil), // 14: channel.ChannelRole + (*ChannelRoutingHead)(nil), // 15: channel.ChannelRoutingHead + (*msg.MessageBody)(nil), // 16: msg.MessageBody +} +var file_pb_channel_common_proto_depIdxs = []int32{ + 12, // 0: channel.ChannelEvent.opInfo:type_name -> channel.ChannelMsgOpInfo + 2, // 1: channel.ChannelExtInfo.events:type_name -> channel.ChannelEvent + 14, // 2: channel.ChannelExtInfo.fromRoleInfo:type_name -> channel.ChannelRole + 4, // 3: channel.ChannelExtInfo.freqLimitInfo:type_name -> channel.ChannelFreqLimitInfo + 1, // 4: channel.ChannelExtInfo.directMessageMember:type_name -> channel.DirectMessageMember + 6, // 5: channel.ChannelMeta.loginSig:type_name -> channel.ChannelLoginSig + 10, // 6: channel.ChannelMsgContent.head:type_name -> channel.ChannelMsgHead + 9, // 7: channel.ChannelMsgContent.ctrlHead:type_name -> channel.ChannelMsgCtrlHead + 16, // 8: channel.ChannelMsgContent.body:type_name -> msg.MessageBody + 3, // 9: channel.ChannelMsgContent.extInfo:type_name -> channel.ChannelExtInfo + 2, // 10: channel.ChannelMsgCtrlHead.events:type_name -> channel.ChannelEvent + 13, // 11: channel.ChannelMsgCtrlHead.personalLevels:type_name -> channel.PersonalLevel + 15, // 12: channel.ChannelMsgHead.routingHead:type_name -> channel.ChannelRoutingHead + 0, // 13: channel.ChannelMsgHead.contentHead:type_name -> channel.ChannelContentHead + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name +} + +func init() { file_pb_channel_common_proto_init() } +func file_pb_channel_common_proto_init() { + if File_pb_channel_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_channel_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelContentHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectMessageMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelExtInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelFreqLimitInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelLoginSig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgContent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgCtrlHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgOpInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalLevel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelRole); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_common_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelRoutingHead); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 16, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_common_proto_goTypes, + DependencyIndexes: file_pb_channel_common_proto_depIdxs, + MessageInfos: file_pb_channel_common_proto_msgTypes, + }.Build() + File_pb_channel_common_proto = out.File + file_pb_channel_common_proto_rawDesc = nil + file_pb_channel_common_proto_goTypes = nil + file_pb_channel_common_proto_depIdxs = nil +} diff --git a/client/pb/channel/common.proto b/client/pb/channel/common.proto new file mode 100644 index 00000000..c44b728c --- /dev/null +++ b/client/pb/channel/common.proto @@ -0,0 +1,135 @@ +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; + +import "pb/msg/msg.proto"; + +message ChannelContentHead { + optional uint64 type = 1; + optional uint64 subType = 2; + optional uint64 random = 3; + optional uint64 seq = 4; + optional uint64 cntSeq = 5; + optional uint64 time = 6; + optional bytes meta = 7; +} + +message DirectMessageMember { + optional uint64 uin = 1; + optional uint64 tinyid = 2; + optional uint64 sourceGuildId = 3; + optional bytes sourceGuildName = 4; + optional bytes nickName = 5; + optional bytes memberName = 6; + optional uint32 notifyType = 7; +} + +message ChannelEvent { + optional uint64 type = 1; + optional uint64 version = 2; + optional ChannelMsgOpInfo opInfo = 3; +} + +message ChannelExtInfo { + optional bytes fromNick = 1; + optional bytes guildName = 2; + optional bytes channelName = 3; + optional uint32 visibility = 4; + optional uint32 notifyType = 5; + optional uint32 offlineFlag = 6; + optional uint32 nameType = 7; + optional bytes memberName = 8; + optional uint32 timestamp = 9; + optional uint64 eventVersion = 10; + repeated ChannelEvent events = 11; + optional ChannelRole fromRoleInfo = 12; + optional ChannelFreqLimitInfo freqLimitInfo = 13; + repeated DirectMessageMember directMessageMember = 14; +} + +message ChannelFreqLimitInfo { + optional uint32 isLimited = 1; + optional uint32 leftCount = 2; + optional uint64 limitTimestamp = 3; +} + +message ChannelInfo { + optional uint64 id = 1; + optional bytes name = 2; + optional uint32 color = 3; + optional uint32 hoist = 4; +} + +message ChannelLoginSig { + optional uint32 type = 1; + optional bytes sig = 2; + optional uint32 appid = 3; +} + +message ChannelMeta { + optional uint64 fromUin = 1; + optional ChannelLoginSig loginSig = 2; +} + +message ChannelMsgContent { + optional ChannelMsgHead head = 1; + optional ChannelMsgCtrlHead ctrlHead = 2; + optional msg.MessageBody body = 3; + optional ChannelExtInfo extInfo = 4; +} + +message ChannelMsgCtrlHead { + repeated uint64 includeUin = 1; + repeated uint64 excludeUin = 2; + repeated uint64 featureid = 3; + optional uint32 offlineFlag = 4; + optional uint32 visibility = 5; + optional uint64 ctrlFlag = 6; + repeated ChannelEvent events = 7; + optional uint64 level = 8; + repeated PersonalLevel personalLevels = 9; + optional uint64 guildSyncSeq = 10; + optional uint32 memberNum = 11; + optional uint32 channelType = 12; + optional uint32 privateType = 13; +} + +message ChannelMsgHead { + optional ChannelRoutingHead routingHead = 1; + optional ChannelContentHead contentHead = 2; +} + +message ChannelMsgMeta { + optional uint64 atAllSeq = 1; +} + +message ChannelMsgOpInfo { + optional uint64 operatorTinyid = 1; + optional uint64 operatorRole = 2; + optional uint64 reason = 3; + optional uint64 timestamp = 4; + optional uint64 atType = 5; +} + +message PersonalLevel { + optional uint64 toUin = 1; + optional uint64 level = 2; +} + +message ChannelRole { + optional uint64 id = 1; + optional bytes info = 2; + optional uint32 flag = 3; +} + +message ChannelRoutingHead { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint64 fromUin = 3; + optional uint64 fromTinyid = 4; + optional uint64 guildCode = 5; + optional uint64 fromAppid = 6; + optional uint32 directMessageFlag = 7; +} diff --git a/client/pb/channel/msgpush.pb.go b/client/pb/channel/msgpush.pb.go new file mode 100644 index 00000000..c5838490 --- /dev/null +++ b/client/pb/channel/msgpush.pb.go @@ -0,0 +1,494 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/msgpush.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type FocusInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelIdList []uint64 `protobuf:"varint,1,rep,name=channelIdList" json:"channelIdList,omitempty"` +} + +func (x *FocusInfo) Reset() { + *x = FocusInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_msgpush_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FocusInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FocusInfo) ProtoMessage() {} + +func (x *FocusInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_msgpush_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FocusInfo.ProtoReflect.Descriptor instead. +func (*FocusInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_msgpush_proto_rawDescGZIP(), []int{0} +} + +func (x *FocusInfo) GetChannelIdList() []uint64 { + if x != nil { + return x.ChannelIdList + } + return nil +} + +type MsgOnlinePush struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msgs []*ChannelMsgContent `protobuf:"bytes,1,rep,name=msgs" json:"msgs,omitempty"` + GeneralFlag *uint32 `protobuf:"varint,2,opt,name=generalFlag" json:"generalFlag,omitempty"` + NeedResp *uint32 `protobuf:"varint,3,opt,name=needResp" json:"needResp,omitempty"` + ServerBuf []byte `protobuf:"bytes,4,opt,name=serverBuf" json:"serverBuf,omitempty"` + CompressFlag *uint32 `protobuf:"varint,5,opt,name=compressFlag" json:"compressFlag,omitempty"` + CompressMsg []byte `protobuf:"bytes,6,opt,name=compressMsg" json:"compressMsg,omitempty"` + FocusInfo *FocusInfo `protobuf:"bytes,7,opt,name=focusInfo" json:"focusInfo,omitempty"` + HugeFlag *uint32 `protobuf:"varint,8,opt,name=hugeFlag" json:"hugeFlag,omitempty"` +} + +func (x *MsgOnlinePush) Reset() { + *x = MsgOnlinePush{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_msgpush_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgOnlinePush) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgOnlinePush) ProtoMessage() {} + +func (x *MsgOnlinePush) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_msgpush_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgOnlinePush.ProtoReflect.Descriptor instead. +func (*MsgOnlinePush) Descriptor() ([]byte, []int) { + return file_pb_channel_msgpush_proto_rawDescGZIP(), []int{1} +} + +func (x *MsgOnlinePush) GetMsgs() []*ChannelMsgContent { + if x != nil { + return x.Msgs + } + return nil +} + +func (x *MsgOnlinePush) GetGeneralFlag() uint32 { + if x != nil && x.GeneralFlag != nil { + return *x.GeneralFlag + } + return 0 +} + +func (x *MsgOnlinePush) GetNeedResp() uint32 { + if x != nil && x.NeedResp != nil { + return *x.NeedResp + } + return 0 +} + +func (x *MsgOnlinePush) GetServerBuf() []byte { + if x != nil { + return x.ServerBuf + } + return nil +} + +func (x *MsgOnlinePush) GetCompressFlag() uint32 { + if x != nil && x.CompressFlag != nil { + return *x.CompressFlag + } + return 0 +} + +func (x *MsgOnlinePush) GetCompressMsg() []byte { + if x != nil { + return x.CompressMsg + } + return nil +} + +func (x *MsgOnlinePush) GetFocusInfo() *FocusInfo { + if x != nil { + return x.FocusInfo + } + return nil +} + +func (x *MsgOnlinePush) GetHugeFlag() uint32 { + if x != nil && x.HugeFlag != nil { + return *x.HugeFlag + } + return 0 +} + +type MsgPushResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerBuf []byte `protobuf:"bytes,1,opt,name=serverBuf" json:"serverBuf,omitempty"` +} + +func (x *MsgPushResp) Reset() { + *x = MsgPushResp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_msgpush_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgPushResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgPushResp) ProtoMessage() {} + +func (x *MsgPushResp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_msgpush_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgPushResp.ProtoReflect.Descriptor instead. +func (*MsgPushResp) Descriptor() ([]byte, []int) { + return file_pb_channel_msgpush_proto_rawDescGZIP(), []int{2} +} + +func (x *MsgPushResp) GetServerBuf() []byte { + if x != nil { + return x.ServerBuf + } + return nil +} + +type PressMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msgs []*ChannelMsgContent `protobuf:"bytes,1,rep,name=msgs" json:"msgs,omitempty"` +} + +func (x *PressMsg) Reset() { + *x = PressMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_msgpush_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PressMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PressMsg) ProtoMessage() {} + +func (x *PressMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_msgpush_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PressMsg.ProtoReflect.Descriptor instead. +func (*PressMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_msgpush_proto_rawDescGZIP(), []int{3} +} + +func (x *PressMsg) GetMsgs() []*ChannelMsgContent { + if x != nil { + return x.Msgs + } + return nil +} + +type ServerBuf struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SvrIp *uint32 `protobuf:"varint,1,opt,name=svrIp" json:"svrIp,omitempty"` + SvrPort *uint32 `protobuf:"varint,2,opt,name=svrPort" json:"svrPort,omitempty"` + EchoKey []byte `protobuf:"bytes,3,opt,name=echoKey" json:"echoKey,omitempty"` +} + +func (x *ServerBuf) Reset() { + *x = ServerBuf{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_msgpush_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerBuf) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerBuf) ProtoMessage() {} + +func (x *ServerBuf) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_msgpush_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerBuf.ProtoReflect.Descriptor instead. +func (*ServerBuf) Descriptor() ([]byte, []int) { + return file_pb_channel_msgpush_proto_rawDescGZIP(), []int{4} +} + +func (x *ServerBuf) GetSvrIp() uint32 { + if x != nil && x.SvrIp != nil { + return *x.SvrIp + } + return 0 +} + +func (x *ServerBuf) GetSvrPort() uint32 { + if x != nil && x.SvrPort != nil { + return *x.SvrPort + } + return 0 +} + +func (x *ServerBuf) GetEchoKey() []byte { + if x != nil { + return x.EchoKey + } + return nil +} + +var File_pb_channel_msgpush_proto protoreflect.FileDescriptor + +var file_pb_channel_msgpush_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x73, 0x67, + 0x70, 0x75, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x1a, 0x17, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x31, 0x0a, 0x09, + 0x46, 0x6f, 0x63, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xaf, 0x02, 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, + 0x68, 0x12, 0x2e, 0x0a, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6d, 0x73, 0x67, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x12, 0x22, 0x0a, + 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x73, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x4d, 0x73, 0x67, 0x12, 0x30, 0x0a, 0x09, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x46, 0x6f, 0x63, 0x75, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x66, 0x6f, 0x63, 0x75, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x75, 0x67, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68, 0x75, 0x67, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x22, 0x2b, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x22, 0x3a, + 0x0a, 0x08, 0x50, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6d, 0x73, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0x55, 0x0a, 0x09, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x76, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x73, 0x76, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x63, 0x68, 0x6f, 0x4b, + 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x65, 0x63, 0x68, 0x6f, 0x4b, 0x65, + 0x79, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_msgpush_proto_rawDescOnce sync.Once + file_pb_channel_msgpush_proto_rawDescData = file_pb_channel_msgpush_proto_rawDesc +) + +func file_pb_channel_msgpush_proto_rawDescGZIP() []byte { + file_pb_channel_msgpush_proto_rawDescOnce.Do(func() { + file_pb_channel_msgpush_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_msgpush_proto_rawDescData) + }) + return file_pb_channel_msgpush_proto_rawDescData +} + +var file_pb_channel_msgpush_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_pb_channel_msgpush_proto_goTypes = []interface{}{ + (*FocusInfo)(nil), // 0: channel.FocusInfo + (*MsgOnlinePush)(nil), // 1: channel.MsgOnlinePush + (*MsgPushResp)(nil), // 2: channel.MsgPushResp + (*PressMsg)(nil), // 3: channel.PressMsg + (*ServerBuf)(nil), // 4: channel.ServerBuf + (*ChannelMsgContent)(nil), // 5: channel.ChannelMsgContent +} +var file_pb_channel_msgpush_proto_depIdxs = []int32{ + 5, // 0: channel.MsgOnlinePush.msgs:type_name -> channel.ChannelMsgContent + 0, // 1: channel.MsgOnlinePush.focusInfo:type_name -> channel.FocusInfo + 5, // 2: channel.PressMsg.msgs:type_name -> channel.ChannelMsgContent + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_pb_channel_msgpush_proto_init() } +func file_pb_channel_msgpush_proto_init() { + if File_pb_channel_msgpush_proto != nil { + return + } + file_pb_channel_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_pb_channel_msgpush_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FocusInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_msgpush_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgOnlinePush); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_msgpush_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgPushResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_msgpush_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PressMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_msgpush_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerBuf); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_msgpush_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_msgpush_proto_goTypes, + DependencyIndexes: file_pb_channel_msgpush_proto_depIdxs, + MessageInfos: file_pb_channel_msgpush_proto_msgTypes, + }.Build() + File_pb_channel_msgpush_proto = out.File + file_pb_channel_msgpush_proto_rawDesc = nil + file_pb_channel_msgpush_proto_goTypes = nil + file_pb_channel_msgpush_proto_depIdxs = nil +} diff --git a/client/pb/channel/msgpush.proto b/client/pb/channel/msgpush.proto new file mode 100644 index 00000000..a686ae08 --- /dev/null +++ b/client/pb/channel/msgpush.proto @@ -0,0 +1,38 @@ +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; + +import "pb/channel/common.proto"; + +message FocusInfo { + repeated uint64 channelIdList = 1; +} + +message MsgOnlinePush { + repeated ChannelMsgContent msgs = 1; + optional uint32 generalFlag = 2; + optional uint32 needResp = 3; + optional bytes serverBuf = 4; + optional uint32 compressFlag = 5; + optional bytes compressMsg = 6; + optional FocusInfo focusInfo = 7; + optional uint32 hugeFlag = 8; +} + +message MsgPushResp { + optional bytes serverBuf = 1; +} + +message PressMsg { + repeated ChannelMsgContent msgs = 1; +} + +message ServerBuf { + optional uint32 svrIp = 1; + optional uint32 svrPort = 2; + optional bytes echoKey = 3; +} + + diff --git a/client/pb/channel/oidb0xf62.pb.go b/client/pb/channel/oidb0xf62.pb.go new file mode 100644 index 00000000..c46e9d32 --- /dev/null +++ b/client/pb/channel/oidb0xf62.pb.go @@ -0,0 +1,372 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/oidb0xf62.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DF62ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg *ChannelMsgContent `protobuf:"bytes,1,opt,name=msg" json:"msg,omitempty"` +} + +func (x *DF62ReqBody) Reset() { + *x = DF62ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_oidb0xf62_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DF62ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DF62ReqBody) ProtoMessage() {} + +func (x *DF62ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_oidb0xf62_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DF62ReqBody.ProtoReflect.Descriptor instead. +func (*DF62ReqBody) Descriptor() ([]byte, []int) { + return file_pb_channel_oidb0xf62_proto_rawDescGZIP(), []int{0} +} + +func (x *DF62ReqBody) GetMsg() *ChannelMsgContent { + if x != nil { + return x.Msg + } + return nil +} + +type DF62RspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` + Errmsg []byte `protobuf:"bytes,2,opt,name=errmsg" json:"errmsg,omitempty"` + SendTime *uint32 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` + Head *ChannelMsgHead `protobuf:"bytes,4,opt,name=head" json:"head,omitempty"` + ErrType *uint32 `protobuf:"varint,5,opt,name=errType" json:"errType,omitempty"` + TransSvrInfo *TransSvrInfo `protobuf:"bytes,6,opt,name=transSvrInfo" json:"transSvrInfo,omitempty"` + FreqLimitInfo *ChannelFreqLimitInfo `protobuf:"bytes,7,opt,name=freqLimitInfo" json:"freqLimitInfo,omitempty"` +} + +func (x *DF62RspBody) Reset() { + *x = DF62RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_oidb0xf62_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DF62RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DF62RspBody) ProtoMessage() {} + +func (x *DF62RspBody) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_oidb0xf62_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DF62RspBody.ProtoReflect.Descriptor instead. +func (*DF62RspBody) Descriptor() ([]byte, []int) { + return file_pb_channel_oidb0xf62_proto_rawDescGZIP(), []int{1} +} + +func (x *DF62RspBody) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *DF62RspBody) GetErrmsg() []byte { + if x != nil { + return x.Errmsg + } + return nil +} + +func (x *DF62RspBody) GetSendTime() uint32 { + if x != nil && x.SendTime != nil { + return *x.SendTime + } + return 0 +} + +func (x *DF62RspBody) GetHead() *ChannelMsgHead { + if x != nil { + return x.Head + } + return nil +} + +func (x *DF62RspBody) GetErrType() uint32 { + if x != nil && x.ErrType != nil { + return *x.ErrType + } + return 0 +} + +func (x *DF62RspBody) GetTransSvrInfo() *TransSvrInfo { + if x != nil { + return x.TransSvrInfo + } + return nil +} + +func (x *DF62RspBody) GetFreqLimitInfo() *ChannelFreqLimitInfo { + if x != nil { + return x.FreqLimitInfo + } + return nil +} + +type TransSvrInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SubType *uint32 `protobuf:"varint,1,opt,name=subType" json:"subType,omitempty"` + RetCode *int32 `protobuf:"varint,2,opt,name=retCode" json:"retCode,omitempty"` + ErrMsg []byte `protobuf:"bytes,3,opt,name=errMsg" json:"errMsg,omitempty"` + TransInfo []byte `protobuf:"bytes,4,opt,name=transInfo" json:"transInfo,omitempty"` +} + +func (x *TransSvrInfo) Reset() { + *x = TransSvrInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_oidb0xf62_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransSvrInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransSvrInfo) ProtoMessage() {} + +func (x *TransSvrInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_oidb0xf62_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TransSvrInfo.ProtoReflect.Descriptor instead. +func (*TransSvrInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_oidb0xf62_proto_rawDescGZIP(), []int{2} +} + +func (x *TransSvrInfo) GetSubType() uint32 { + if x != nil && x.SubType != nil { + return *x.SubType + } + return 0 +} + +func (x *TransSvrInfo) GetRetCode() int32 { + if x != nil && x.RetCode != nil { + return *x.RetCode + } + return 0 +} + +func (x *TransSvrInfo) GetErrMsg() []byte { + if x != nil { + return x.ErrMsg + } + return nil +} + +func (x *TransSvrInfo) GetTransInfo() []byte { + if x != nil { + return x.TransInfo + } + return nil +} + +var File_pb_channel_oidb0xf62_proto protoreflect.FileDescriptor + +var file_pb_channel_oidb0xf62_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x6f, 0x69, 0x64, + 0x62, 0x30, 0x78, 0x66, 0x36, 0x32, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x17, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3b, + 0x0a, 0x0b, 0x44, 0x46, 0x36, 0x32, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x2c, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xa0, 0x02, 0x0a, 0x0b, + 0x44, 0x46, 0x36, 0x32, 0x52, 0x73, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x04, + 0x68, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x72, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x39, + 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x53, 0x76, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x53, 0x76, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x53, 0x76, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x0d, 0x66, 0x72, 0x65, + 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0d, 0x66, 0x72, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x78, + 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x53, 0x76, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_oidb0xf62_proto_rawDescOnce sync.Once + file_pb_channel_oidb0xf62_proto_rawDescData = file_pb_channel_oidb0xf62_proto_rawDesc +) + +func file_pb_channel_oidb0xf62_proto_rawDescGZIP() []byte { + file_pb_channel_oidb0xf62_proto_rawDescOnce.Do(func() { + file_pb_channel_oidb0xf62_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_oidb0xf62_proto_rawDescData) + }) + return file_pb_channel_oidb0xf62_proto_rawDescData +} + +var file_pb_channel_oidb0xf62_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_pb_channel_oidb0xf62_proto_goTypes = []interface{}{ + (*DF62ReqBody)(nil), // 0: channel.DF62ReqBody + (*DF62RspBody)(nil), // 1: channel.DF62RspBody + (*TransSvrInfo)(nil), // 2: channel.TransSvrInfo + (*ChannelMsgContent)(nil), // 3: channel.ChannelMsgContent + (*ChannelMsgHead)(nil), // 4: channel.ChannelMsgHead + (*ChannelFreqLimitInfo)(nil), // 5: channel.ChannelFreqLimitInfo +} +var file_pb_channel_oidb0xf62_proto_depIdxs = []int32{ + 3, // 0: channel.DF62ReqBody.msg:type_name -> channel.ChannelMsgContent + 4, // 1: channel.DF62RspBody.head:type_name -> channel.ChannelMsgHead + 2, // 2: channel.DF62RspBody.transSvrInfo:type_name -> channel.TransSvrInfo + 5, // 3: channel.DF62RspBody.freqLimitInfo:type_name -> channel.ChannelFreqLimitInfo + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_pb_channel_oidb0xf62_proto_init() } +func file_pb_channel_oidb0xf62_proto_init() { + if File_pb_channel_oidb0xf62_proto != nil { + return + } + file_pb_channel_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_pb_channel_oidb0xf62_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DF62ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_oidb0xf62_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DF62RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_oidb0xf62_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransSvrInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_oidb0xf62_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_oidb0xf62_proto_goTypes, + DependencyIndexes: file_pb_channel_oidb0xf62_proto_depIdxs, + MessageInfos: file_pb_channel_oidb0xf62_proto_msgTypes, + }.Build() + File_pb_channel_oidb0xf62_proto = out.File + file_pb_channel_oidb0xf62_proto_rawDesc = nil + file_pb_channel_oidb0xf62_proto_goTypes = nil + file_pb_channel_oidb0xf62_proto_depIdxs = nil +} diff --git a/client/pb/channel/oidb0xf62.proto b/client/pb/channel/oidb0xf62.proto new file mode 100644 index 00000000..96a3f389 --- /dev/null +++ b/client/pb/channel/oidb0xf62.proto @@ -0,0 +1,27 @@ +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; +import "pb/channel/common.proto"; + +message DF62ReqBody { + optional ChannelMsgContent msg = 1; +} + +message DF62RspBody { + optional uint32 result = 1; + optional bytes errmsg = 2; + optional uint32 sendTime = 3; + optional ChannelMsgHead head = 4; + optional uint32 errType = 5; + optional TransSvrInfo transSvrInfo = 6; + optional ChannelFreqLimitInfo freqLimitInfo = 7; +} + +message TransSvrInfo { + optional uint32 subType = 1; + optional int32 retCode = 2; + optional bytes errMsg = 3; + optional bytes transInfo = 4; +} diff --git a/client/pb/channel/servtype.pb.go b/client/pb/channel/servtype.pb.go new file mode 100644 index 00000000..66de229e --- /dev/null +++ b/client/pb/channel/servtype.pb.go @@ -0,0 +1,4358 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/servtype.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AppChannelMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Summary *string `protobuf:"bytes,1,opt,name=summary" json:"summary,omitempty"` + Msg *string `protobuf:"bytes,2,opt,name=msg" json:"msg,omitempty"` + ExpireTimeMs *uint64 `protobuf:"varint,3,opt,name=expireTimeMs" json:"expireTimeMs,omitempty"` + SchemaType *uint32 `protobuf:"varint,4,opt,name=schemaType" json:"schemaType,omitempty"` + Schema *string `protobuf:"bytes,5,opt,name=schema" json:"schema,omitempty"` +} + +func (x *AppChannelMsg) Reset() { + *x = AppChannelMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppChannelMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppChannelMsg) ProtoMessage() {} + +func (x *AppChannelMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AppChannelMsg.ProtoReflect.Descriptor instead. +func (*AppChannelMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{0} +} + +func (x *AppChannelMsg) GetSummary() string { + if x != nil && x.Summary != nil { + return *x.Summary + } + return "" +} + +func (x *AppChannelMsg) GetMsg() string { + if x != nil && x.Msg != nil { + return *x.Msg + } + return "" +} + +func (x *AppChannelMsg) GetExpireTimeMs() uint64 { + if x != nil && x.ExpireTimeMs != nil { + return *x.ExpireTimeMs + } + return 0 +} + +func (x *AppChannelMsg) GetSchemaType() uint32 { + if x != nil && x.SchemaType != nil { + return *x.SchemaType + } + return 0 +} + +func (x *AppChannelMsg) GetSchema() string { + if x != nil && x.Schema != nil { + return *x.Schema + } + return "" +} + +type CategoryChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelIndex *uint32 `protobuf:"varint,1,opt,name=channelIndex" json:"channelIndex,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` +} + +func (x *CategoryChannelInfo) Reset() { + *x = CategoryChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CategoryChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CategoryChannelInfo) ProtoMessage() {} + +func (x *CategoryChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CategoryChannelInfo.ProtoReflect.Descriptor instead. +func (*CategoryChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{1} +} + +func (x *CategoryChannelInfo) GetChannelIndex() uint32 { + if x != nil && x.ChannelIndex != nil { + return *x.ChannelIndex + } + return 0 +} + +func (x *CategoryChannelInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +type CategoryInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CategoryIndex *uint32 `protobuf:"varint,1,opt,name=categoryIndex" json:"categoryIndex,omitempty"` + ChannelInfo []*CategoryChannelInfo `protobuf:"bytes,2,rep,name=channelInfo" json:"channelInfo,omitempty"` + CategoryName []byte `protobuf:"bytes,3,opt,name=categoryName" json:"categoryName,omitempty"` + CategoryId *uint64 `protobuf:"varint,4,opt,name=categoryId" json:"categoryId,omitempty"` +} + +func (x *CategoryInfo) Reset() { + *x = CategoryInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CategoryInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CategoryInfo) ProtoMessage() {} + +func (x *CategoryInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CategoryInfo.ProtoReflect.Descriptor instead. +func (*CategoryInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{2} +} + +func (x *CategoryInfo) GetCategoryIndex() uint32 { + if x != nil && x.CategoryIndex != nil { + return *x.CategoryIndex + } + return 0 +} + +func (x *CategoryInfo) GetChannelInfo() []*CategoryChannelInfo { + if x != nil { + return x.ChannelInfo + } + return nil +} + +func (x *CategoryInfo) GetCategoryName() []byte { + if x != nil { + return x.CategoryName + } + return nil +} + +func (x *CategoryInfo) GetCategoryId() uint64 { + if x != nil && x.CategoryId != nil { + return *x.CategoryId + } + return 0 +} + +type ChanInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelName *uint32 `protobuf:"varint,2,opt,name=channelName" json:"channelName,omitempty"` + CreatorId *uint32 `protobuf:"varint,3,opt,name=creatorId" json:"creatorId,omitempty"` + CreateTime *uint32 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + GuildId *uint32 `protobuf:"varint,5,opt,name=guildId" json:"guildId,omitempty"` + MsgNotifyType *uint32 `protobuf:"varint,6,opt,name=msgNotifyType" json:"msgNotifyType,omitempty"` + ChannelType *uint32 `protobuf:"varint,7,opt,name=channelType" json:"channelType,omitempty"` + SpeakPermission *uint32 `protobuf:"varint,8,opt,name=speakPermission" json:"speakPermission,omitempty"` + LastMsgSeq *uint32 `protobuf:"varint,11,opt,name=lastMsgSeq" json:"lastMsgSeq,omitempty"` + LastCntMsgSeq *uint32 `protobuf:"varint,12,opt,name=lastCntMsgSeq" json:"lastCntMsgSeq,omitempty"` + VoiceChannelInfoFilter *VoiceChannelInfoFilter `protobuf:"bytes,14,opt,name=voiceChannelInfoFilter" json:"voiceChannelInfoFilter,omitempty"` + LiveChannelInfoFilter *LiveChannelInfoFilter `protobuf:"bytes,15,opt,name=liveChannelInfoFilter" json:"liveChannelInfoFilter,omitempty"` + BannedSpeak *uint32 `protobuf:"varint,16,opt,name=bannedSpeak" json:"bannedSpeak,omitempty"` +} + +func (x *ChanInfoFilter) Reset() { + *x = ChanInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChanInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChanInfoFilter) ProtoMessage() {} + +func (x *ChanInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChanInfoFilter.ProtoReflect.Descriptor instead. +func (*ChanInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{3} +} + +func (x *ChanInfoFilter) GetChannelName() uint32 { + if x != nil && x.ChannelName != nil { + return *x.ChannelName + } + return 0 +} + +func (x *ChanInfoFilter) GetCreatorId() uint32 { + if x != nil && x.CreatorId != nil { + return *x.CreatorId + } + return 0 +} + +func (x *ChanInfoFilter) GetCreateTime() uint32 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *ChanInfoFilter) GetGuildId() uint32 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChanInfoFilter) GetMsgNotifyType() uint32 { + if x != nil && x.MsgNotifyType != nil { + return *x.MsgNotifyType + } + return 0 +} + +func (x *ChanInfoFilter) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *ChanInfoFilter) GetSpeakPermission() uint32 { + if x != nil && x.SpeakPermission != nil { + return *x.SpeakPermission + } + return 0 +} + +func (x *ChanInfoFilter) GetLastMsgSeq() uint32 { + if x != nil && x.LastMsgSeq != nil { + return *x.LastMsgSeq + } + return 0 +} + +func (x *ChanInfoFilter) GetLastCntMsgSeq() uint32 { + if x != nil && x.LastCntMsgSeq != nil { + return *x.LastCntMsgSeq + } + return 0 +} + +func (x *ChanInfoFilter) GetVoiceChannelInfoFilter() *VoiceChannelInfoFilter { + if x != nil { + return x.VoiceChannelInfoFilter + } + return nil +} + +func (x *ChanInfoFilter) GetLiveChannelInfoFilter() *LiveChannelInfoFilter { + if x != nil { + return x.LiveChannelInfoFilter + } + return nil +} + +func (x *ChanInfoFilter) GetBannedSpeak() uint32 { + if x != nil && x.BannedSpeak != nil { + return *x.BannedSpeak + } + return 0 +} + +type ChangeChanInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChanId *uint64 `protobuf:"varint,2,opt,name=chanId" json:"chanId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + InfoSeq *MsgSeq `protobuf:"bytes,4,opt,name=infoSeq" json:"infoSeq,omitempty"` + UpdateType *uint32 `protobuf:"varint,5,opt,name=updateType" json:"updateType,omitempty"` + ChanInfoFilter *ChanInfoFilter `protobuf:"bytes,6,opt,name=chanInfoFilter" json:"chanInfoFilter,omitempty"` + ChanInfo *ServChannelInfo `protobuf:"bytes,7,opt,name=chanInfo" json:"chanInfo,omitempty"` +} + +func (x *ChangeChanInfo) Reset() { + *x = ChangeChanInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeChanInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeChanInfo) ProtoMessage() {} + +func (x *ChangeChanInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeChanInfo.ProtoReflect.Descriptor instead. +func (*ChangeChanInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{4} +} + +func (x *ChangeChanInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChangeChanInfo) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +func (x *ChangeChanInfo) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *ChangeChanInfo) GetInfoSeq() *MsgSeq { + if x != nil { + return x.InfoSeq + } + return nil +} + +func (x *ChangeChanInfo) GetUpdateType() uint32 { + if x != nil && x.UpdateType != nil { + return *x.UpdateType + } + return 0 +} + +func (x *ChangeChanInfo) GetChanInfoFilter() *ChanInfoFilter { + if x != nil { + return x.ChanInfoFilter + } + return nil +} + +func (x *ChangeChanInfo) GetChanInfo() *ServChannelInfo { + if x != nil { + return x.ChanInfo + } + return nil +} + +type ChangeGuildInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + OperatorId *uint64 `protobuf:"varint,2,opt,name=operatorId" json:"operatorId,omitempty"` + InfoSeq *MsgSeq `protobuf:"bytes,3,opt,name=infoSeq" json:"infoSeq,omitempty"` + FaceSeq *MsgSeq `protobuf:"bytes,4,opt,name=faceSeq" json:"faceSeq,omitempty"` + UpdateType *uint32 `protobuf:"varint,5,opt,name=updateType" json:"updateType,omitempty"` + GuildInfoFilter *GuildInfoFilter `protobuf:"bytes,6,opt,name=guildInfoFilter" json:"guildInfoFilter,omitempty"` + GuildInfo *GuildInfo `protobuf:"bytes,7,opt,name=guildInfo" json:"guildInfo,omitempty"` +} + +func (x *ChangeGuildInfo) Reset() { + *x = ChangeGuildInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeGuildInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeGuildInfo) ProtoMessage() {} + +func (x *ChangeGuildInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChangeGuildInfo.ProtoReflect.Descriptor instead. +func (*ChangeGuildInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{5} +} + +func (x *ChangeGuildInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChangeGuildInfo) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *ChangeGuildInfo) GetInfoSeq() *MsgSeq { + if x != nil { + return x.InfoSeq + } + return nil +} + +func (x *ChangeGuildInfo) GetFaceSeq() *MsgSeq { + if x != nil { + return x.FaceSeq + } + return nil +} + +func (x *ChangeGuildInfo) GetUpdateType() uint32 { + if x != nil && x.UpdateType != nil { + return *x.UpdateType + } + return 0 +} + +func (x *ChangeGuildInfo) GetGuildInfoFilter() *GuildInfoFilter { + if x != nil { + return x.GuildInfoFilter + } + return nil +} + +func (x *ChangeGuildInfo) GetGuildInfo() *GuildInfo { + if x != nil { + return x.GuildInfo + } + return nil +} + +type ChannelID struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChanId *uint64 `protobuf:"varint,1,opt,name=chanId" json:"chanId,omitempty"` +} + +func (x *ChannelID) Reset() { + *x = ChannelID{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelID) ProtoMessage() {} + +func (x *ChannelID) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelID.ProtoReflect.Descriptor instead. +func (*ChannelID) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{6} +} + +func (x *ChannelID) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +type ServChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + ChannelName []byte `protobuf:"bytes,2,opt,name=channelName" json:"channelName,omitempty"` + CreatorId *uint64 `protobuf:"varint,3,opt,name=creatorId" json:"creatorId,omitempty"` + CreateTime *uint64 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + GuildId *uint64 `protobuf:"varint,5,opt,name=guildId" json:"guildId,omitempty"` + MsgNotifyType *uint32 `protobuf:"varint,6,opt,name=msgNotifyType" json:"msgNotifyType,omitempty"` + ChannelType *uint32 `protobuf:"varint,7,opt,name=channelType" json:"channelType,omitempty"` + SpeakPermission *uint32 `protobuf:"varint,8,opt,name=speakPermission" json:"speakPermission,omitempty"` + LastMsgSeq *MsgSeq `protobuf:"bytes,11,opt,name=lastMsgSeq" json:"lastMsgSeq,omitempty"` + LastCntMsgSeq *MsgSeq `protobuf:"bytes,12,opt,name=lastCntMsgSeq" json:"lastCntMsgSeq,omitempty"` + VoiceChannelInfo *VoiceChannelInfo `protobuf:"bytes,14,opt,name=voiceChannelInfo" json:"voiceChannelInfo,omitempty"` + LiveChannelInfo *LiveChannelInfo `protobuf:"bytes,15,opt,name=liveChannelInfo" json:"liveChannelInfo,omitempty"` + BannedSpeak *uint32 `protobuf:"varint,16,opt,name=bannedSpeak" json:"bannedSpeak,omitempty"` +} + +func (x *ServChannelInfo) Reset() { + *x = ServChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServChannelInfo) ProtoMessage() {} + +func (x *ServChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServChannelInfo.ProtoReflect.Descriptor instead. +func (*ServChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{7} +} + +func (x *ServChannelInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ServChannelInfo) GetChannelName() []byte { + if x != nil { + return x.ChannelName + } + return nil +} + +func (x *ServChannelInfo) GetCreatorId() uint64 { + if x != nil && x.CreatorId != nil { + return *x.CreatorId + } + return 0 +} + +func (x *ServChannelInfo) GetCreateTime() uint64 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *ServChannelInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ServChannelInfo) GetMsgNotifyType() uint32 { + if x != nil && x.MsgNotifyType != nil { + return *x.MsgNotifyType + } + return 0 +} + +func (x *ServChannelInfo) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *ServChannelInfo) GetSpeakPermission() uint32 { + if x != nil && x.SpeakPermission != nil { + return *x.SpeakPermission + } + return 0 +} + +func (x *ServChannelInfo) GetLastMsgSeq() *MsgSeq { + if x != nil { + return x.LastMsgSeq + } + return nil +} + +func (x *ServChannelInfo) GetLastCntMsgSeq() *MsgSeq { + if x != nil { + return x.LastCntMsgSeq + } + return nil +} + +func (x *ServChannelInfo) GetVoiceChannelInfo() *VoiceChannelInfo { + if x != nil { + return x.VoiceChannelInfo + } + return nil +} + +func (x *ServChannelInfo) GetLiveChannelInfo() *LiveChannelInfo { + if x != nil { + return x.LiveChannelInfo + } + return nil +} + +func (x *ServChannelInfo) GetBannedSpeak() uint32 { + if x != nil && x.BannedSpeak != nil { + return *x.BannedSpeak + } + return 0 +} + +type CommGrayTips struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BusiType *uint64 `protobuf:"varint,1,opt,name=busiType" json:"busiType,omitempty"` + BusiId *uint64 `protobuf:"varint,2,opt,name=busiId" json:"busiId,omitempty"` + CtrlFlag *uint32 `protobuf:"varint,3,opt,name=ctrlFlag" json:"ctrlFlag,omitempty"` + TemplId *uint64 `protobuf:"varint,4,opt,name=templId" json:"templId,omitempty"` + TemplParam []*CommGrayTips_TemplParam `protobuf:"bytes,5,rep,name=templParam" json:"templParam,omitempty"` + Content []byte `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"` + TipsSeqId *uint64 `protobuf:"varint,10,opt,name=tipsSeqId" json:"tipsSeqId,omitempty"` + PbReserv []byte `protobuf:"bytes,100,opt,name=pbReserv" json:"pbReserv,omitempty"` +} + +func (x *CommGrayTips) Reset() { + *x = CommGrayTips{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommGrayTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommGrayTips) ProtoMessage() {} + +func (x *CommGrayTips) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommGrayTips.ProtoReflect.Descriptor instead. +func (*CommGrayTips) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{8} +} + +func (x *CommGrayTips) GetBusiType() uint64 { + if x != nil && x.BusiType != nil { + return *x.BusiType + } + return 0 +} + +func (x *CommGrayTips) GetBusiId() uint64 { + if x != nil && x.BusiId != nil { + return *x.BusiId + } + return 0 +} + +func (x *CommGrayTips) GetCtrlFlag() uint32 { + if x != nil && x.CtrlFlag != nil { + return *x.CtrlFlag + } + return 0 +} + +func (x *CommGrayTips) GetTemplId() uint64 { + if x != nil && x.TemplId != nil { + return *x.TemplId + } + return 0 +} + +func (x *CommGrayTips) GetTemplParam() []*CommGrayTips_TemplParam { + if x != nil { + return x.TemplParam + } + return nil +} + +func (x *CommGrayTips) GetContent() []byte { + if x != nil { + return x.Content + } + return nil +} + +func (x *CommGrayTips) GetTipsSeqId() uint64 { + if x != nil && x.TipsSeqId != nil { + return *x.TipsSeqId + } + return 0 +} + +func (x *CommGrayTips) GetPbReserv() []byte { + if x != nil { + return x.PbReserv + } + return nil +} + +type CreateChan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + CreateId []*ChannelID `protobuf:"bytes,4,rep,name=createId" json:"createId,omitempty"` +} + +func (x *CreateChan) Reset() { + *x = CreateChan{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateChan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateChan) ProtoMessage() {} + +func (x *CreateChan) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateChan.ProtoReflect.Descriptor instead. +func (*CreateChan) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateChan) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *CreateChan) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *CreateChan) GetCreateId() []*ChannelID { + if x != nil { + return x.CreateId + } + return nil +} + +type CreateGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorId *uint64 `protobuf:"varint,1,opt,name=operatorId" json:"operatorId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` +} + +func (x *CreateGuild) Reset() { + *x = CreateGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGuild) ProtoMessage() {} + +func (x *CreateGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateGuild.ProtoReflect.Descriptor instead. +func (*CreateGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{10} +} + +func (x *CreateGuild) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *CreateGuild) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +type DestroyChan struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + DeleteId []*ChannelID `protobuf:"bytes,4,rep,name=deleteId" json:"deleteId,omitempty"` +} + +func (x *DestroyChan) Reset() { + *x = DestroyChan{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroyChan) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyChan) ProtoMessage() {} + +func (x *DestroyChan) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyChan.ProtoReflect.Descriptor instead. +func (*DestroyChan) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{11} +} + +func (x *DestroyChan) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *DestroyChan) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *DestroyChan) GetDeleteId() []*ChannelID { + if x != nil { + return x.DeleteId + } + return nil +} + +type DestroyGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperatorId *uint64 `protobuf:"varint,1,opt,name=operatorId" json:"operatorId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` +} + +func (x *DestroyGuild) Reset() { + *x = DestroyGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DestroyGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DestroyGuild) ProtoMessage() {} + +func (x *DestroyGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DestroyGuild.ProtoReflect.Descriptor instead. +func (*DestroyGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{12} +} + +func (x *DestroyGuild) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *DestroyGuild) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +type EventBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReadNotify *ReadNotify `protobuf:"bytes,1,opt,name=readNotify" json:"readNotify,omitempty"` + CommGrayTips *CommGrayTips `protobuf:"bytes,2,opt,name=commGrayTips" json:"commGrayTips,omitempty"` + CreateGuild *CreateGuild `protobuf:"bytes,3,opt,name=createGuild" json:"createGuild,omitempty"` + DestroyGuild *DestroyGuild `protobuf:"bytes,4,opt,name=destroyGuild" json:"destroyGuild,omitempty"` + JoinGuild *JoinGuild `protobuf:"bytes,5,opt,name=joinGuild" json:"joinGuild,omitempty"` + KickOffGuild *KickOffGuild `protobuf:"bytes,6,opt,name=kickOffGuild" json:"kickOffGuild,omitempty"` + QuitGuild *QuitGuild `protobuf:"bytes,7,opt,name=quitGuild" json:"quitGuild,omitempty"` + ChangeGuildInfo *ChangeGuildInfo `protobuf:"bytes,8,opt,name=changeGuildInfo" json:"changeGuildInfo,omitempty"` + CreateChan *CreateChan `protobuf:"bytes,9,opt,name=createChan" json:"createChan,omitempty"` + DestroyChan *DestroyChan `protobuf:"bytes,10,opt,name=destroyChan" json:"destroyChan,omitempty"` + ChangeChanInfo *ChangeChanInfo `protobuf:"bytes,11,opt,name=changeChanInfo" json:"changeChanInfo,omitempty"` + SetAdmin *SetAdmin `protobuf:"bytes,12,opt,name=setAdmin" json:"setAdmin,omitempty"` + SetMsgRecvType *SetMsgRecvType `protobuf:"bytes,13,opt,name=setMsgRecvType" json:"setMsgRecvType,omitempty"` + UpdateMsg *UpdateMsg `protobuf:"bytes,14,opt,name=updateMsg" json:"updateMsg,omitempty"` + SetTop *SetTop `protobuf:"bytes,17,opt,name=setTop" json:"setTop,omitempty"` + SwitchChannel *SwitchVoiceChannel `protobuf:"bytes,18,opt,name=switchChannel" json:"switchChannel,omitempty"` + UpdateCategory *UpdateCategory `protobuf:"bytes,21,opt,name=updateCategory" json:"updateCategory,omitempty"` + UpdateVoiceBlockList *UpdateVoiceBlockList `protobuf:"bytes,22,opt,name=updateVoiceBlockList" json:"updateVoiceBlockList,omitempty"` + SetMute *SetMute `protobuf:"bytes,23,opt,name=setMute" json:"setMute,omitempty"` + LiveStatusChangeRoom *LiveRoomStatusChangeMsg `protobuf:"bytes,24,opt,name=liveStatusChangeRoom" json:"liveStatusChangeRoom,omitempty"` + SwitchLiveRoom *SwitchLiveRoom `protobuf:"bytes,25,opt,name=switchLiveRoom" json:"switchLiveRoom,omitempty"` + Events []*MsgEvent `protobuf:"bytes,39,rep,name=events" json:"events,omitempty"` + Scheduler *SchedulerMsg `protobuf:"bytes,40,opt,name=scheduler" json:"scheduler,omitempty"` + AppChannel *AppChannelMsg `protobuf:"bytes,41,opt,name=appChannel" json:"appChannel,omitempty"` + WeakMsgAppChannel *AppChannelMsg `protobuf:"bytes,46,opt,name=weakMsgAppChannel" json:"weakMsgAppChannel,omitempty"` +} + +func (x *EventBody) Reset() { + *x = EventBody{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventBody) ProtoMessage() {} + +func (x *EventBody) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventBody.ProtoReflect.Descriptor instead. +func (*EventBody) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{13} +} + +func (x *EventBody) GetReadNotify() *ReadNotify { + if x != nil { + return x.ReadNotify + } + return nil +} + +func (x *EventBody) GetCommGrayTips() *CommGrayTips { + if x != nil { + return x.CommGrayTips + } + return nil +} + +func (x *EventBody) GetCreateGuild() *CreateGuild { + if x != nil { + return x.CreateGuild + } + return nil +} + +func (x *EventBody) GetDestroyGuild() *DestroyGuild { + if x != nil { + return x.DestroyGuild + } + return nil +} + +func (x *EventBody) GetJoinGuild() *JoinGuild { + if x != nil { + return x.JoinGuild + } + return nil +} + +func (x *EventBody) GetKickOffGuild() *KickOffGuild { + if x != nil { + return x.KickOffGuild + } + return nil +} + +func (x *EventBody) GetQuitGuild() *QuitGuild { + if x != nil { + return x.QuitGuild + } + return nil +} + +func (x *EventBody) GetChangeGuildInfo() *ChangeGuildInfo { + if x != nil { + return x.ChangeGuildInfo + } + return nil +} + +func (x *EventBody) GetCreateChan() *CreateChan { + if x != nil { + return x.CreateChan + } + return nil +} + +func (x *EventBody) GetDestroyChan() *DestroyChan { + if x != nil { + return x.DestroyChan + } + return nil +} + +func (x *EventBody) GetChangeChanInfo() *ChangeChanInfo { + if x != nil { + return x.ChangeChanInfo + } + return nil +} + +func (x *EventBody) GetSetAdmin() *SetAdmin { + if x != nil { + return x.SetAdmin + } + return nil +} + +func (x *EventBody) GetSetMsgRecvType() *SetMsgRecvType { + if x != nil { + return x.SetMsgRecvType + } + return nil +} + +func (x *EventBody) GetUpdateMsg() *UpdateMsg { + if x != nil { + return x.UpdateMsg + } + return nil +} + +func (x *EventBody) GetSetTop() *SetTop { + if x != nil { + return x.SetTop + } + return nil +} + +func (x *EventBody) GetSwitchChannel() *SwitchVoiceChannel { + if x != nil { + return x.SwitchChannel + } + return nil +} + +func (x *EventBody) GetUpdateCategory() *UpdateCategory { + if x != nil { + return x.UpdateCategory + } + return nil +} + +func (x *EventBody) GetUpdateVoiceBlockList() *UpdateVoiceBlockList { + if x != nil { + return x.UpdateVoiceBlockList + } + return nil +} + +func (x *EventBody) GetSetMute() *SetMute { + if x != nil { + return x.SetMute + } + return nil +} + +func (x *EventBody) GetLiveStatusChangeRoom() *LiveRoomStatusChangeMsg { + if x != nil { + return x.LiveStatusChangeRoom + } + return nil +} + +func (x *EventBody) GetSwitchLiveRoom() *SwitchLiveRoom { + if x != nil { + return x.SwitchLiveRoom + } + return nil +} + +func (x *EventBody) GetEvents() []*MsgEvent { + if x != nil { + return x.Events + } + return nil +} + +func (x *EventBody) GetScheduler() *SchedulerMsg { + if x != nil { + return x.Scheduler + } + return nil +} + +func (x *EventBody) GetAppChannel() *AppChannelMsg { + if x != nil { + return x.AppChannel + } + return nil +} + +func (x *EventBody) GetWeakMsgAppChannel() *AppChannelMsg { + if x != nil { + return x.WeakMsgAppChannel + } + return nil +} + +type GroupProStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsEnable *uint32 `protobuf:"varint,1,opt,name=isEnable" json:"isEnable,omitempty"` + IsBanned *uint32 `protobuf:"varint,2,opt,name=isBanned" json:"isBanned,omitempty"` + IsFrozen *uint32 `protobuf:"varint,3,opt,name=isFrozen" json:"isFrozen,omitempty"` +} + +func (x *GroupProStatus) Reset() { + *x = GroupProStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupProStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupProStatus) ProtoMessage() {} + +func (x *GroupProStatus) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupProStatus.ProtoReflect.Descriptor instead. +func (*GroupProStatus) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{14} +} + +func (x *GroupProStatus) GetIsEnable() uint32 { + if x != nil && x.IsEnable != nil { + return *x.IsEnable + } + return 0 +} + +func (x *GroupProStatus) GetIsBanned() uint32 { + if x != nil && x.IsBanned != nil { + return *x.IsBanned + } + return 0 +} + +func (x *GroupProStatus) GetIsFrozen() uint32 { + if x != nil && x.IsFrozen != nil { + return *x.IsFrozen + } + return 0 +} + +type GuildInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildCode *uint64 `protobuf:"varint,2,opt,name=guildCode" json:"guildCode,omitempty"` + OwnerId *uint64 `protobuf:"varint,3,opt,name=ownerId" json:"ownerId,omitempty"` + CreateTime *uint64 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + MemberMaxNum *uint32 `protobuf:"varint,5,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` + MemberNum *uint32 `protobuf:"varint,6,opt,name=memberNum" json:"memberNum,omitempty"` + GuildType *uint32 `protobuf:"varint,7,opt,name=guildType" json:"guildType,omitempty"` + GuildName []byte `protobuf:"bytes,8,opt,name=guildName" json:"guildName,omitempty"` + RobotList []uint64 `protobuf:"varint,9,rep,name=robotList" json:"robotList,omitempty"` + AdminList []uint64 `protobuf:"varint,10,rep,name=adminList" json:"adminList,omitempty"` + RobotMaxNum *uint32 `protobuf:"varint,11,opt,name=robotMaxNum" json:"robotMaxNum,omitempty"` + AdminMaxNum *uint32 `protobuf:"varint,12,opt,name=adminMaxNum" json:"adminMaxNum,omitempty"` + Profile []byte `protobuf:"bytes,13,opt,name=profile" json:"profile,omitempty"` + FaceSeq *uint64 `protobuf:"varint,14,opt,name=faceSeq" json:"faceSeq,omitempty"` + GuildStatus *GroupProStatus `protobuf:"bytes,15,opt,name=guildStatus" json:"guildStatus,omitempty"` + ChannelNum *uint32 `protobuf:"varint,16,opt,name=channelNum" json:"channelNum,omitempty"` + MemberChangeSeq *MsgSeq `protobuf:"bytes,5002,opt,name=memberChangeSeq" json:"memberChangeSeq,omitempty"` + GuildInfoChangeSeq *MsgSeq `protobuf:"bytes,5003,opt,name=guildInfoChangeSeq" json:"guildInfoChangeSeq,omitempty"` + ChannelChangeSeq *MsgSeq `protobuf:"bytes,5004,opt,name=channelChangeSeq" json:"channelChangeSeq,omitempty"` +} + +func (x *GuildInfo) Reset() { + *x = GuildInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildInfo) ProtoMessage() {} + +func (x *GuildInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildInfo.ProtoReflect.Descriptor instead. +func (*GuildInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{15} +} + +func (x *GuildInfo) GetGuildCode() uint64 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *GuildInfo) GetOwnerId() uint64 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +func (x *GuildInfo) GetCreateTime() uint64 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *GuildInfo) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +func (x *GuildInfo) GetMemberNum() uint32 { + if x != nil && x.MemberNum != nil { + return *x.MemberNum + } + return 0 +} + +func (x *GuildInfo) GetGuildType() uint32 { + if x != nil && x.GuildType != nil { + return *x.GuildType + } + return 0 +} + +func (x *GuildInfo) GetGuildName() []byte { + if x != nil { + return x.GuildName + } + return nil +} + +func (x *GuildInfo) GetRobotList() []uint64 { + if x != nil { + return x.RobotList + } + return nil +} + +func (x *GuildInfo) GetAdminList() []uint64 { + if x != nil { + return x.AdminList + } + return nil +} + +func (x *GuildInfo) GetRobotMaxNum() uint32 { + if x != nil && x.RobotMaxNum != nil { + return *x.RobotMaxNum + } + return 0 +} + +func (x *GuildInfo) GetAdminMaxNum() uint32 { + if x != nil && x.AdminMaxNum != nil { + return *x.AdminMaxNum + } + return 0 +} + +func (x *GuildInfo) GetProfile() []byte { + if x != nil { + return x.Profile + } + return nil +} + +func (x *GuildInfo) GetFaceSeq() uint64 { + if x != nil && x.FaceSeq != nil { + return *x.FaceSeq + } + return 0 +} + +func (x *GuildInfo) GetGuildStatus() *GroupProStatus { + if x != nil { + return x.GuildStatus + } + return nil +} + +func (x *GuildInfo) GetChannelNum() uint32 { + if x != nil && x.ChannelNum != nil { + return *x.ChannelNum + } + return 0 +} + +func (x *GuildInfo) GetMemberChangeSeq() *MsgSeq { + if x != nil { + return x.MemberChangeSeq + } + return nil +} + +func (x *GuildInfo) GetGuildInfoChangeSeq() *MsgSeq { + if x != nil { + return x.GuildInfoChangeSeq + } + return nil +} + +func (x *GuildInfo) GetChannelChangeSeq() *MsgSeq { + if x != nil { + return x.ChannelChangeSeq + } + return nil +} + +type GuildInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildCode *uint32 `protobuf:"varint,2,opt,name=guildCode" json:"guildCode,omitempty"` + OwnerId *uint32 `protobuf:"varint,3,opt,name=ownerId" json:"ownerId,omitempty"` + CreateTime *uint32 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + MemberMaxNum *uint32 `protobuf:"varint,5,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` + MemberNum *uint32 `protobuf:"varint,6,opt,name=memberNum" json:"memberNum,omitempty"` + GuildType *uint32 `protobuf:"varint,7,opt,name=guildType" json:"guildType,omitempty"` + GuildName *uint32 `protobuf:"varint,8,opt,name=guildName" json:"guildName,omitempty"` + RobotList *uint32 `protobuf:"varint,9,opt,name=robotList" json:"robotList,omitempty"` + AdminList *uint32 `protobuf:"varint,10,opt,name=adminList" json:"adminList,omitempty"` + RobotMaxNum *uint32 `protobuf:"varint,11,opt,name=robotMaxNum" json:"robotMaxNum,omitempty"` + AdminMaxNum *uint32 `protobuf:"varint,12,opt,name=adminMaxNum" json:"adminMaxNum,omitempty"` + Profile *uint32 `protobuf:"varint,13,opt,name=profile" json:"profile,omitempty"` + FaceSeq *uint32 `protobuf:"varint,14,opt,name=faceSeq" json:"faceSeq,omitempty"` + GuildStatus *uint32 `protobuf:"varint,15,opt,name=guildStatus" json:"guildStatus,omitempty"` + ChannelNum *uint32 `protobuf:"varint,16,opt,name=channelNum" json:"channelNum,omitempty"` + MemberChangeSeq *uint32 `protobuf:"varint,5002,opt,name=memberChangeSeq" json:"memberChangeSeq,omitempty"` + GuildInfoChangeSeq *uint32 `protobuf:"varint,5003,opt,name=guildInfoChangeSeq" json:"guildInfoChangeSeq,omitempty"` + ChannelChangeSeq *uint32 `protobuf:"varint,5004,opt,name=channelChangeSeq" json:"channelChangeSeq,omitempty"` +} + +func (x *GuildInfoFilter) Reset() { + *x = GuildInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildInfoFilter) ProtoMessage() {} + +func (x *GuildInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildInfoFilter.ProtoReflect.Descriptor instead. +func (*GuildInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{16} +} + +func (x *GuildInfoFilter) GetGuildCode() uint32 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *GuildInfoFilter) GetOwnerId() uint32 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +func (x *GuildInfoFilter) GetCreateTime() uint32 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *GuildInfoFilter) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +func (x *GuildInfoFilter) GetMemberNum() uint32 { + if x != nil && x.MemberNum != nil { + return *x.MemberNum + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildType() uint32 { + if x != nil && x.GuildType != nil { + return *x.GuildType + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildName() uint32 { + if x != nil && x.GuildName != nil { + return *x.GuildName + } + return 0 +} + +func (x *GuildInfoFilter) GetRobotList() uint32 { + if x != nil && x.RobotList != nil { + return *x.RobotList + } + return 0 +} + +func (x *GuildInfoFilter) GetAdminList() uint32 { + if x != nil && x.AdminList != nil { + return *x.AdminList + } + return 0 +} + +func (x *GuildInfoFilter) GetRobotMaxNum() uint32 { + if x != nil && x.RobotMaxNum != nil { + return *x.RobotMaxNum + } + return 0 +} + +func (x *GuildInfoFilter) GetAdminMaxNum() uint32 { + if x != nil && x.AdminMaxNum != nil { + return *x.AdminMaxNum + } + return 0 +} + +func (x *GuildInfoFilter) GetProfile() uint32 { + if x != nil && x.Profile != nil { + return *x.Profile + } + return 0 +} + +func (x *GuildInfoFilter) GetFaceSeq() uint32 { + if x != nil && x.FaceSeq != nil { + return *x.FaceSeq + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildStatus() uint32 { + if x != nil && x.GuildStatus != nil { + return *x.GuildStatus + } + return 0 +} + +func (x *GuildInfoFilter) GetChannelNum() uint32 { + if x != nil && x.ChannelNum != nil { + return *x.ChannelNum + } + return 0 +} + +func (x *GuildInfoFilter) GetMemberChangeSeq() uint32 { + if x != nil && x.MemberChangeSeq != nil { + return *x.MemberChangeSeq + } + return 0 +} + +func (x *GuildInfoFilter) GetGuildInfoChangeSeq() uint32 { + if x != nil && x.GuildInfoChangeSeq != nil { + return *x.GuildInfoChangeSeq + } + return 0 +} + +func (x *GuildInfoFilter) GetChannelChangeSeq() uint32 { + if x != nil && x.ChannelChangeSeq != nil { + return *x.ChannelChangeSeq + } + return 0 +} + +type JoinGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId *uint64 `protobuf:"varint,3,opt,name=memberId" json:"memberId,omitempty"` + MemberType *uint32 `protobuf:"varint,4,opt,name=memberType" json:"memberType,omitempty"` + MemberTinyid *uint64 `protobuf:"varint,5,opt,name=memberTinyid" json:"memberTinyid,omitempty"` +} + +func (x *JoinGuild) Reset() { + *x = JoinGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinGuild) ProtoMessage() {} + +func (x *JoinGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use JoinGuild.ProtoReflect.Descriptor instead. +func (*JoinGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{17} +} + +func (x *JoinGuild) GetMemberId() uint64 { + if x != nil && x.MemberId != nil { + return *x.MemberId + } + return 0 +} + +func (x *JoinGuild) GetMemberType() uint32 { + if x != nil && x.MemberType != nil { + return *x.MemberType + } + return 0 +} + +func (x *JoinGuild) GetMemberTinyid() uint64 { + if x != nil && x.MemberTinyid != nil { + return *x.MemberTinyid + } + return 0 +} + +type KickOffGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId *uint64 `protobuf:"varint,3,opt,name=memberId" json:"memberId,omitempty"` + SetBlack *uint32 `protobuf:"varint,4,opt,name=setBlack" json:"setBlack,omitempty"` + MemberTinyid *uint64 `protobuf:"varint,5,opt,name=memberTinyid" json:"memberTinyid,omitempty"` +} + +func (x *KickOffGuild) Reset() { + *x = KickOffGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KickOffGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KickOffGuild) ProtoMessage() {} + +func (x *KickOffGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KickOffGuild.ProtoReflect.Descriptor instead. +func (*KickOffGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{18} +} + +func (x *KickOffGuild) GetMemberId() uint64 { + if x != nil && x.MemberId != nil { + return *x.MemberId + } + return 0 +} + +func (x *KickOffGuild) GetSetBlack() uint32 { + if x != nil && x.SetBlack != nil { + return *x.SetBlack + } + return 0 +} + +func (x *KickOffGuild) GetMemberTinyid() uint64 { + if x != nil && x.MemberTinyid != nil { + return *x.MemberTinyid + } + return 0 +} + +type LiveChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RoomId *uint64 `protobuf:"varint,1,opt,name=roomId" json:"roomId,omitempty"` + AnchorUin *uint64 `protobuf:"varint,2,opt,name=anchorUin" json:"anchorUin,omitempty"` + Name []byte `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` +} + +func (x *LiveChannelInfo) Reset() { + *x = LiveChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveChannelInfo) ProtoMessage() {} + +func (x *LiveChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveChannelInfo.ProtoReflect.Descriptor instead. +func (*LiveChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{19} +} + +func (x *LiveChannelInfo) GetRoomId() uint64 { + if x != nil && x.RoomId != nil { + return *x.RoomId + } + return 0 +} + +func (x *LiveChannelInfo) GetAnchorUin() uint64 { + if x != nil && x.AnchorUin != nil { + return *x.AnchorUin + } + return 0 +} + +func (x *LiveChannelInfo) GetName() []byte { + if x != nil { + return x.Name + } + return nil +} + +type LiveChannelInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsNeedRoomId *uint32 `protobuf:"varint,1,opt,name=isNeedRoomId" json:"isNeedRoomId,omitempty"` + IsNeedAnchorUin *uint32 `protobuf:"varint,2,opt,name=isNeedAnchorUin" json:"isNeedAnchorUin,omitempty"` + IsNeedName *uint32 `protobuf:"varint,3,opt,name=isNeedName" json:"isNeedName,omitempty"` +} + +func (x *LiveChannelInfoFilter) Reset() { + *x = LiveChannelInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveChannelInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveChannelInfoFilter) ProtoMessage() {} + +func (x *LiveChannelInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveChannelInfoFilter.ProtoReflect.Descriptor instead. +func (*LiveChannelInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{20} +} + +func (x *LiveChannelInfoFilter) GetIsNeedRoomId() uint32 { + if x != nil && x.IsNeedRoomId != nil { + return *x.IsNeedRoomId + } + return 0 +} + +func (x *LiveChannelInfoFilter) GetIsNeedAnchorUin() uint32 { + if x != nil && x.IsNeedAnchorUin != nil { + return *x.IsNeedAnchorUin + } + return 0 +} + +func (x *LiveChannelInfoFilter) GetIsNeedName() uint32 { + if x != nil && x.IsNeedName != nil { + return *x.IsNeedName + } + return 0 +} + +type LiveRoomStatusChangeMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + RoomId *uint64 `protobuf:"varint,3,opt,name=roomId" json:"roomId,omitempty"` + AnchorTinyid *uint64 `protobuf:"varint,4,opt,name=anchorTinyid" json:"anchorTinyid,omitempty"` + Action *uint32 `protobuf:"varint,5,opt,name=action" json:"action,omitempty"` +} + +func (x *LiveRoomStatusChangeMsg) Reset() { + *x = LiveRoomStatusChangeMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LiveRoomStatusChangeMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LiveRoomStatusChangeMsg) ProtoMessage() {} + +func (x *LiveRoomStatusChangeMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LiveRoomStatusChangeMsg.ProtoReflect.Descriptor instead. +func (*LiveRoomStatusChangeMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{21} +} + +func (x *LiveRoomStatusChangeMsg) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetRoomId() uint64 { + if x != nil && x.RoomId != nil { + return *x.RoomId + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetAnchorTinyid() uint64 { + if x != nil && x.AnchorTinyid != nil { + return *x.AnchorTinyid + } + return 0 +} + +func (x *LiveRoomStatusChangeMsg) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type MsgEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq *uint64 `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"` + EventType *uint64 `protobuf:"varint,2,opt,name=eventType" json:"eventType,omitempty"` + EventVersion *uint64 `protobuf:"varint,3,opt,name=eventVersion" json:"eventVersion,omitempty"` +} + +func (x *MsgEvent) Reset() { + *x = MsgEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgEvent) ProtoMessage() {} + +func (x *MsgEvent) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgEvent.ProtoReflect.Descriptor instead. +func (*MsgEvent) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{22} +} + +func (x *MsgEvent) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MsgEvent) GetEventType() uint64 { + if x != nil && x.EventType != nil { + return *x.EventType + } + return 0 +} + +func (x *MsgEvent) GetEventVersion() uint64 { + if x != nil && x.EventVersion != nil { + return *x.EventVersion + } + return 0 +} + +type MsgSeq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq *uint64 `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"` + Time *uint64 `protobuf:"varint,2,opt,name=time" json:"time,omitempty"` +} + +func (x *MsgSeq) Reset() { + *x = MsgSeq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgSeq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgSeq) ProtoMessage() {} + +func (x *MsgSeq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgSeq.ProtoReflect.Descriptor instead. +func (*MsgSeq) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{23} +} + +func (x *MsgSeq) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MsgSeq) GetTime() uint64 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +type QuitGuild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *QuitGuild) Reset() { + *x = QuitGuild{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuitGuild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuitGuild) ProtoMessage() {} + +func (x *QuitGuild) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuitGuild.ProtoReflect.Descriptor instead. +func (*QuitGuild) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{24} +} + +type ReadNotify struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` + ReadMsgSeq *MsgSeq `protobuf:"bytes,3,opt,name=readMsgSeq" json:"readMsgSeq,omitempty"` + ReadCntMsgSeq *MsgSeq `protobuf:"bytes,4,opt,name=readCntMsgSeq" json:"readCntMsgSeq,omitempty"` + ReadMsgMeta []byte `protobuf:"bytes,5,opt,name=readMsgMeta" json:"readMsgMeta,omitempty"` +} + +func (x *ReadNotify) Reset() { + *x = ReadNotify{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReadNotify) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReadNotify) ProtoMessage() {} + +func (x *ReadNotify) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReadNotify.ProtoReflect.Descriptor instead. +func (*ReadNotify) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{25} +} + +func (x *ReadNotify) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ReadNotify) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ReadNotify) GetReadMsgSeq() *MsgSeq { + if x != nil { + return x.ReadMsgSeq + } + return nil +} + +func (x *ReadNotify) GetReadCntMsgSeq() *MsgSeq { + if x != nil { + return x.ReadCntMsgSeq + } + return nil +} + +func (x *ReadNotify) GetReadMsgMeta() []byte { + if x != nil { + return x.ReadMsgMeta + } + return nil +} + +type SchedulerMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatorHeadUrl []byte `protobuf:"bytes,1,opt,name=creatorHeadUrl" json:"creatorHeadUrl,omitempty"` + Wording *string `protobuf:"bytes,2,opt,name=wording" json:"wording,omitempty"` + ExpireTimeMs *uint64 `protobuf:"varint,3,opt,name=expireTimeMs" json:"expireTimeMs,omitempty"` +} + +func (x *SchedulerMsg) Reset() { + *x = SchedulerMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SchedulerMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SchedulerMsg) ProtoMessage() {} + +func (x *SchedulerMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SchedulerMsg.ProtoReflect.Descriptor instead. +func (*SchedulerMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{26} +} + +func (x *SchedulerMsg) GetCreatorHeadUrl() []byte { + if x != nil { + return x.CreatorHeadUrl + } + return nil +} + +func (x *SchedulerMsg) GetWording() string { + if x != nil && x.Wording != nil { + return *x.Wording + } + return "" +} + +func (x *SchedulerMsg) GetExpireTimeMs() uint64 { + if x != nil && x.ExpireTimeMs != nil { + return *x.ExpireTimeMs + } + return 0 +} + +type SetAdmin struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChanId *uint64 `protobuf:"varint,2,opt,name=chanId" json:"chanId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + AdminId *uint64 `protobuf:"varint,4,opt,name=adminId" json:"adminId,omitempty"` + AdminTinyid *uint64 `protobuf:"varint,5,opt,name=adminTinyid" json:"adminTinyid,omitempty"` + OperateType *uint32 `protobuf:"varint,6,opt,name=operateType" json:"operateType,omitempty"` +} + +func (x *SetAdmin) Reset() { + *x = SetAdmin{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetAdmin) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetAdmin) ProtoMessage() {} + +func (x *SetAdmin) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetAdmin.ProtoReflect.Descriptor instead. +func (*SetAdmin) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{27} +} + +func (x *SetAdmin) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SetAdmin) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +func (x *SetAdmin) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *SetAdmin) GetAdminId() uint64 { + if x != nil && x.AdminId != nil { + return *x.AdminId + } + return 0 +} + +func (x *SetAdmin) GetAdminTinyid() uint64 { + if x != nil && x.AdminTinyid != nil { + return *x.AdminTinyid + } + return 0 +} + +func (x *SetAdmin) GetOperateType() uint32 { + if x != nil && x.OperateType != nil { + return *x.OperateType + } + return 0 +} + +type SetMsgRecvType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChanId *uint64 `protobuf:"varint,2,opt,name=chanId" json:"chanId,omitempty"` + OperatorId *uint64 `protobuf:"varint,3,opt,name=operatorId" json:"operatorId,omitempty"` + MsgNotifyType *uint32 `protobuf:"varint,4,opt,name=msgNotifyType" json:"msgNotifyType,omitempty"` +} + +func (x *SetMsgRecvType) Reset() { + *x = SetMsgRecvType{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMsgRecvType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMsgRecvType) ProtoMessage() {} + +func (x *SetMsgRecvType) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMsgRecvType.ProtoReflect.Descriptor instead. +func (*SetMsgRecvType) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{28} +} + +func (x *SetMsgRecvType) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SetMsgRecvType) GetChanId() uint64 { + if x != nil && x.ChanId != nil { + return *x.ChanId + } + return 0 +} + +func (x *SetMsgRecvType) GetOperatorId() uint64 { + if x != nil && x.OperatorId != nil { + return *x.OperatorId + } + return 0 +} + +func (x *SetMsgRecvType) GetMsgNotifyType() uint32 { + if x != nil && x.MsgNotifyType != nil { + return *x.MsgNotifyType + } + return 0 +} + +type SetMute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action *uint32 `protobuf:"varint,1,opt,name=action" json:"action,omitempty"` + TinyID *uint64 `protobuf:"varint,2,opt,name=tinyID" json:"tinyID,omitempty"` +} + +func (x *SetMute) Reset() { + *x = SetMute{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMute) ProtoMessage() {} + +func (x *SetMute) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMute.ProtoReflect.Descriptor instead. +func (*SetMute) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{29} +} + +func (x *SetMute) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +func (x *SetMute) GetTinyID() uint64 { + if x != nil && x.TinyID != nil { + return *x.TinyID + } + return 0 +} + +type SetTop struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action *uint32 `protobuf:"varint,1,opt,name=action" json:"action,omitempty"` +} + +func (x *SetTop) Reset() { + *x = SetTop{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetTop) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetTop) ProtoMessage() {} + +func (x *SetTop) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetTop.ProtoReflect.Descriptor instead. +func (*SetTop) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{30} +} + +func (x *SetTop) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type SwitchDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + Platform *uint32 `protobuf:"varint,3,opt,name=platform" json:"platform,omitempty"` +} + +func (x *SwitchDetail) Reset() { + *x = SwitchDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchDetail) ProtoMessage() {} + +func (x *SwitchDetail) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchDetail.ProtoReflect.Descriptor instead. +func (*SwitchDetail) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{31} +} + +func (x *SwitchDetail) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SwitchDetail) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *SwitchDetail) GetPlatform() uint32 { + if x != nil && x.Platform != nil { + return *x.Platform + } + return 0 +} + +type SwitchLiveRoom struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + RoomId *uint64 `protobuf:"varint,3,opt,name=roomId" json:"roomId,omitempty"` + Tinyid *uint64 `protobuf:"varint,4,opt,name=tinyid" json:"tinyid,omitempty"` + Action *uint32 `protobuf:"varint,5,opt,name=action" json:"action,omitempty"` +} + +func (x *SwitchLiveRoom) Reset() { + *x = SwitchLiveRoom{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchLiveRoom) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchLiveRoom) ProtoMessage() {} + +func (x *SwitchLiveRoom) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchLiveRoom.ProtoReflect.Descriptor instead. +func (*SwitchLiveRoom) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{32} +} + +func (x *SwitchLiveRoom) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *SwitchLiveRoom) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *SwitchLiveRoom) GetRoomId() uint64 { + if x != nil && x.RoomId != nil { + return *x.RoomId + } + return 0 +} + +func (x *SwitchLiveRoom) GetTinyid() uint64 { + if x != nil && x.Tinyid != nil { + return *x.Tinyid + } + return 0 +} + +func (x *SwitchLiveRoom) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +type SwitchVoiceChannel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberId *uint64 `protobuf:"varint,1,opt,name=memberId" json:"memberId,omitempty"` + EnterDetail *SwitchDetail `protobuf:"bytes,2,opt,name=enterDetail" json:"enterDetail,omitempty"` + LeaveDetail *SwitchDetail `protobuf:"bytes,3,opt,name=leaveDetail" json:"leaveDetail,omitempty"` +} + +func (x *SwitchVoiceChannel) Reset() { + *x = SwitchVoiceChannel{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SwitchVoiceChannel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SwitchVoiceChannel) ProtoMessage() {} + +func (x *SwitchVoiceChannel) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SwitchVoiceChannel.ProtoReflect.Descriptor instead. +func (*SwitchVoiceChannel) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{33} +} + +func (x *SwitchVoiceChannel) GetMemberId() uint64 { + if x != nil && x.MemberId != nil { + return *x.MemberId + } + return 0 +} + +func (x *SwitchVoiceChannel) GetEnterDetail() *SwitchDetail { + if x != nil { + return x.EnterDetail + } + return nil +} + +func (x *SwitchVoiceChannel) GetLeaveDetail() *SwitchDetail { + if x != nil { + return x.LeaveDetail + } + return nil +} + +type UpdateCategory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CategoryInfo []*CategoryInfo `protobuf:"bytes,1,rep,name=categoryInfo" json:"categoryInfo,omitempty"` + NoClassifyCategoryInfo *CategoryInfo `protobuf:"bytes,2,opt,name=noClassifyCategoryInfo" json:"noClassifyCategoryInfo,omitempty"` +} + +func (x *UpdateCategory) Reset() { + *x = UpdateCategory{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCategory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCategory) ProtoMessage() {} + +func (x *UpdateCategory) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateCategory.ProtoReflect.Descriptor instead. +func (*UpdateCategory) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{34} +} + +func (x *UpdateCategory) GetCategoryInfo() []*CategoryInfo { + if x != nil { + return x.CategoryInfo + } + return nil +} + +func (x *UpdateCategory) GetNoClassifyCategoryInfo() *CategoryInfo { + if x != nil { + return x.NoClassifyCategoryInfo + } + return nil +} + +type UpdateMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MsgSeq *uint64 `protobuf:"varint,1,opt,name=msgSeq" json:"msgSeq,omitempty"` + OrigMsgUncountable *bool `protobuf:"varint,2,opt,name=origMsgUncountable" json:"origMsgUncountable,omitempty"` + EventType *uint64 `protobuf:"varint,3,opt,name=eventType" json:"eventType,omitempty"` + EventVersion *uint64 `protobuf:"varint,4,opt,name=eventVersion" json:"eventVersion,omitempty"` + OperatorTinyid *uint64 `protobuf:"varint,5,opt,name=operatorTinyid" json:"operatorTinyid,omitempty"` + OperatorRole *uint64 `protobuf:"varint,6,opt,name=operatorRole" json:"operatorRole,omitempty"` + Reason *uint64 `protobuf:"varint,7,opt,name=reason" json:"reason,omitempty"` + Timestamp *uint64 `protobuf:"varint,8,opt,name=timestamp" json:"timestamp,omitempty"` +} + +func (x *UpdateMsg) Reset() { + *x = UpdateMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMsg) ProtoMessage() {} + +func (x *UpdateMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateMsg.ProtoReflect.Descriptor instead. +func (*UpdateMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{35} +} + +func (x *UpdateMsg) GetMsgSeq() uint64 { + if x != nil && x.MsgSeq != nil { + return *x.MsgSeq + } + return 0 +} + +func (x *UpdateMsg) GetOrigMsgUncountable() bool { + if x != nil && x.OrigMsgUncountable != nil { + return *x.OrigMsgUncountable + } + return false +} + +func (x *UpdateMsg) GetEventType() uint64 { + if x != nil && x.EventType != nil { + return *x.EventType + } + return 0 +} + +func (x *UpdateMsg) GetEventVersion() uint64 { + if x != nil && x.EventVersion != nil { + return *x.EventVersion + } + return 0 +} + +func (x *UpdateMsg) GetOperatorTinyid() uint64 { + if x != nil && x.OperatorTinyid != nil { + return *x.OperatorTinyid + } + return 0 +} + +func (x *UpdateMsg) GetOperatorRole() uint64 { + if x != nil && x.OperatorRole != nil { + return *x.OperatorRole + } + return 0 +} + +func (x *UpdateMsg) GetReason() uint64 { + if x != nil && x.Reason != nil { + return *x.Reason + } + return 0 +} + +func (x *UpdateMsg) GetTimestamp() uint64 { + if x != nil && x.Timestamp != nil { + return *x.Timestamp + } + return 0 +} + +type UpdateVoiceBlockList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Action *uint32 `protobuf:"varint,1,opt,name=action" json:"action,omitempty"` + ObjectTinyid *uint64 `protobuf:"varint,2,opt,name=objectTinyid" json:"objectTinyid,omitempty"` +} + +func (x *UpdateVoiceBlockList) Reset() { + *x = UpdateVoiceBlockList{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateVoiceBlockList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateVoiceBlockList) ProtoMessage() {} + +func (x *UpdateVoiceBlockList) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateVoiceBlockList.ProtoReflect.Descriptor instead. +func (*UpdateVoiceBlockList) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{36} +} + +func (x *UpdateVoiceBlockList) GetAction() uint32 { + if x != nil && x.Action != nil { + return *x.Action + } + return 0 +} + +func (x *UpdateVoiceBlockList) GetObjectTinyid() uint64 { + if x != nil && x.ObjectTinyid != nil { + return *x.ObjectTinyid + } + return 0 +} + +type VoiceChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberMaxNum *uint32 `protobuf:"varint,1,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` +} + +func (x *VoiceChannelInfo) Reset() { + *x = VoiceChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VoiceChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VoiceChannelInfo) ProtoMessage() {} + +func (x *VoiceChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VoiceChannelInfo.ProtoReflect.Descriptor instead. +func (*VoiceChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{37} +} + +func (x *VoiceChannelInfo) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +type VoiceChannelInfoFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberMaxNum *uint32 `protobuf:"varint,1,opt,name=memberMaxNum" json:"memberMaxNum,omitempty"` +} + +func (x *VoiceChannelInfoFilter) Reset() { + *x = VoiceChannelInfoFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VoiceChannelInfoFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VoiceChannelInfoFilter) ProtoMessage() {} + +func (x *VoiceChannelInfoFilter) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VoiceChannelInfoFilter.ProtoReflect.Descriptor instead. +func (*VoiceChannelInfoFilter) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{38} +} + +func (x *VoiceChannelInfoFilter) GetMemberMaxNum() uint32 { + if x != nil && x.MemberMaxNum != nil { + return *x.MemberMaxNum + } + return 0 +} + +type CommGrayTips_TemplParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name []byte `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"` +} + +func (x *CommGrayTips_TemplParam) Reset() { + *x = CommGrayTips_TemplParam{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_servtype_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommGrayTips_TemplParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommGrayTips_TemplParam) ProtoMessage() {} + +func (x *CommGrayTips_TemplParam) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_servtype_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CommGrayTips_TemplParam.ProtoReflect.Descriptor instead. +func (*CommGrayTips_TemplParam) Descriptor() ([]byte, []int) { + return file_pb_channel_servtype_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *CommGrayTips_TemplParam) GetName() []byte { + if x != nil { + return x.Name + } + return nil +} + +func (x *CommGrayTips_TemplParam) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +var File_pb_channel_servtype_proto protoreflect.FileDescriptor + +var file_pb_channel_servtype_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x4d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x57, + 0x0a, 0x13, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3e, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x64, 0x22, 0x93, 0x04, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x61, 0x6b, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, + 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x57, 0x0a, 0x16, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x16, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x54, 0x0a, 0x15, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x15, 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, + 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x22, 0xa4, 0x02, 0x0a, 0x0e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08, 0x63, 0x68, 0x61, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0xb7, 0x02, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, + 0x07, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x23, 0x0a, 0x09, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x22, 0xb0, + 0x04, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x73, + 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x70, 0x65, + 0x61, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x0a, + 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x35, 0x0a, + 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6e, 0x74, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x10, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x76, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x6c, + 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, + 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, + 0x6c, 0x69, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x65, 0x61, + 0x6b, 0x22, 0xc6, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x62, 0x75, 0x73, 0x69, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, + 0x62, 0x75, 0x73, 0x69, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x46, 0x6c, + 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x74, 0x72, 0x6c, 0x46, 0x6c, + 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0a, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x47, + 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x70, 0x73, + 0x53, 0x65, 0x71, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x70, + 0x73, 0x53, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x1a, 0x36, 0x0a, 0x0a, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x76, 0x0a, 0x0a, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x0b, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x64, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x52, 0x08, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x0c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0xc2, + 0x0b, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x33, 0x0a, 0x0a, + 0x72, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x52, 0x0c, + 0x63, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x61, 0x79, 0x54, 0x69, 0x70, 0x73, 0x12, 0x36, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, + 0x30, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4a, 0x6f, 0x69, + 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x12, 0x39, 0x0a, 0x0c, 0x6b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x0c, + 0x6b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x30, 0x0a, 0x09, + 0x71, 0x75, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x52, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x42, + 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x36, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, + 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x43, 0x68, + 0x61, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x12, + 0x3f, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x2d, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, + 0x3f, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0e, 0x73, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x30, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x73, 0x67, 0x12, 0x27, 0x0a, 0x06, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, 0x74, + 0x54, 0x6f, 0x70, 0x52, 0x06, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x12, 0x41, 0x0a, 0x0d, 0x73, + 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x0d, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3f, + 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, + 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x51, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x65, + 0x74, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x07, 0x73, 0x65, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x54, + 0x0a, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x73, 0x67, 0x52, 0x14, + 0x6c, 0x69, 0x76, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x3f, 0x0a, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, 0x69, + 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x76, + 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x0e, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, 0x69, 0x76, + 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x27, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x4d, 0x73, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x33, 0x0a, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x18, 0x28, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x44, 0x0a, + 0x11, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x73, 0x67, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, + 0x52, 0x11, 0x77, 0x65, 0x61, 0x6b, 0x4d, 0x73, 0x67, 0x41, 0x70, 0x70, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0x64, 0x0a, 0x0e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x73, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x73, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x69, 0x73, 0x46, 0x72, 0x6f, 0x7a, 0x65, 0x6e, 0x22, 0xac, 0x05, 0x0a, 0x09, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, + 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x09, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x6f, 0x62, + 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x53, + 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x53, 0x65, + 0x71, 0x12, 0x39, 0x0a, 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x3a, 0x0a, 0x0f, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, + 0x8a, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x12, 0x40, 0x0a, 0x12, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8b, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x12, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x12, 0x3c, 0x0a, 0x10, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8c, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x22, 0xe6, 0x04, 0x0a, 0x0f, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, + 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, + 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x61, 0x63, 0x65, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, + 0x61, 0x63, 0x65, 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x29, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8a, 0x27, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x53, 0x65, 0x71, 0x12, 0x2f, 0x0a, 0x12, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8b, 0x27, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x12, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x53, 0x65, 0x71, 0x12, 0x2b, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, 0x71, 0x18, 0x8c, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x65, + 0x71, 0x22, 0x6b, 0x0a, 0x09, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x22, 0x6a, + 0x0a, 0x0c, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x66, 0x66, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x22, 0x5b, 0x0a, 0x0f, 0x4c, 0x69, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x55, + 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x76, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x52, + 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x41, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0xa5, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0c, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5e, 0x0a, 0x08, 0x4d, 0x73, 0x67, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2e, 0x0a, 0x06, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x73, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x0b, 0x0a, 0x09, 0x51, 0x75, 0x69, 0x74, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x61, 0x64, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x0a, 0x72, + 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, + 0x52, 0x0a, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x35, 0x0a, 0x0d, + 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x4d, 0x65, + 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, + 0x67, 0x4d, 0x65, 0x74, 0x61, 0x22, 0x74, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x65, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, + 0x07, 0x77, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x77, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x08, + 0x53, 0x65, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x54, 0x69, 0x6e, + 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x74, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x63, 0x76, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, + 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x07, 0x53, 0x65, 0x74, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x44, 0x22, 0x20, + 0x0a, 0x06, 0x53, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x90, 0x01, 0x0a, 0x0e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x4c, + 0x69, 0x76, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x53, 0x77, 0x69, 0x74, + 0x63, 0x68, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, + 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x0b, 0x65, 0x6e, + 0x74, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x0b, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x9a, 0x01, 0x0a, + 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, + 0x39, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x16, 0x6e, 0x6f, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x16, 0x6e, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x79, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x97, 0x02, 0x0a, 0x09, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, + 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, + 0x2e, 0x0a, 0x12, 0x6f, 0x72, 0x69, 0x67, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6f, 0x72, 0x69, + 0x67, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, + 0x79, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0x52, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6e, + 0x79, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x22, 0x36, 0x0a, 0x10, 0x56, 0x6f, 0x69, 0x63, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x22, + 0x3c, 0x0a, 0x16, 0x56, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x42, 0x14, 0x5a, + 0x12, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_servtype_proto_rawDescOnce sync.Once + file_pb_channel_servtype_proto_rawDescData = file_pb_channel_servtype_proto_rawDesc +) + +func file_pb_channel_servtype_proto_rawDescGZIP() []byte { + file_pb_channel_servtype_proto_rawDescOnce.Do(func() { + file_pb_channel_servtype_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_servtype_proto_rawDescData) + }) + return file_pb_channel_servtype_proto_rawDescData +} + +var file_pb_channel_servtype_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_pb_channel_servtype_proto_goTypes = []interface{}{ + (*AppChannelMsg)(nil), // 0: channel.AppChannelMsg + (*CategoryChannelInfo)(nil), // 1: channel.CategoryChannelInfo + (*CategoryInfo)(nil), // 2: channel.CategoryInfo + (*ChanInfoFilter)(nil), // 3: channel.ChanInfoFilter + (*ChangeChanInfo)(nil), // 4: channel.ChangeChanInfo + (*ChangeGuildInfo)(nil), // 5: channel.ChangeGuildInfo + (*ChannelID)(nil), // 6: channel.ChannelID + (*ServChannelInfo)(nil), // 7: channel.ServChannelInfo + (*CommGrayTips)(nil), // 8: channel.CommGrayTips + (*CreateChan)(nil), // 9: channel.CreateChan + (*CreateGuild)(nil), // 10: channel.CreateGuild + (*DestroyChan)(nil), // 11: channel.DestroyChan + (*DestroyGuild)(nil), // 12: channel.DestroyGuild + (*EventBody)(nil), // 13: channel.EventBody + (*GroupProStatus)(nil), // 14: channel.GroupProStatus + (*GuildInfo)(nil), // 15: channel.GuildInfo + (*GuildInfoFilter)(nil), // 16: channel.GuildInfoFilter + (*JoinGuild)(nil), // 17: channel.JoinGuild + (*KickOffGuild)(nil), // 18: channel.KickOffGuild + (*LiveChannelInfo)(nil), // 19: channel.LiveChannelInfo + (*LiveChannelInfoFilter)(nil), // 20: channel.LiveChannelInfoFilter + (*LiveRoomStatusChangeMsg)(nil), // 21: channel.LiveRoomStatusChangeMsg + (*MsgEvent)(nil), // 22: channel.MsgEvent + (*MsgSeq)(nil), // 23: channel.MsgSeq + (*QuitGuild)(nil), // 24: channel.QuitGuild + (*ReadNotify)(nil), // 25: channel.ReadNotify + (*SchedulerMsg)(nil), // 26: channel.SchedulerMsg + (*SetAdmin)(nil), // 27: channel.SetAdmin + (*SetMsgRecvType)(nil), // 28: channel.SetMsgRecvType + (*SetMute)(nil), // 29: channel.SetMute + (*SetTop)(nil), // 30: channel.SetTop + (*SwitchDetail)(nil), // 31: channel.SwitchDetail + (*SwitchLiveRoom)(nil), // 32: channel.SwitchLiveRoom + (*SwitchVoiceChannel)(nil), // 33: channel.SwitchVoiceChannel + (*UpdateCategory)(nil), // 34: channel.UpdateCategory + (*UpdateMsg)(nil), // 35: channel.UpdateMsg + (*UpdateVoiceBlockList)(nil), // 36: channel.UpdateVoiceBlockList + (*VoiceChannelInfo)(nil), // 37: channel.VoiceChannelInfo + (*VoiceChannelInfoFilter)(nil), // 38: channel.VoiceChannelInfoFilter + (*CommGrayTips_TemplParam)(nil), // 39: channel.CommGrayTips.TemplParam +} +var file_pb_channel_servtype_proto_depIdxs = []int32{ + 1, // 0: channel.CategoryInfo.channelInfo:type_name -> channel.CategoryChannelInfo + 38, // 1: channel.ChanInfoFilter.voiceChannelInfoFilter:type_name -> channel.VoiceChannelInfoFilter + 20, // 2: channel.ChanInfoFilter.liveChannelInfoFilter:type_name -> channel.LiveChannelInfoFilter + 23, // 3: channel.ChangeChanInfo.infoSeq:type_name -> channel.MsgSeq + 3, // 4: channel.ChangeChanInfo.chanInfoFilter:type_name -> channel.ChanInfoFilter + 7, // 5: channel.ChangeChanInfo.chanInfo:type_name -> channel.ServChannelInfo + 23, // 6: channel.ChangeGuildInfo.infoSeq:type_name -> channel.MsgSeq + 23, // 7: channel.ChangeGuildInfo.faceSeq:type_name -> channel.MsgSeq + 16, // 8: channel.ChangeGuildInfo.guildInfoFilter:type_name -> channel.GuildInfoFilter + 15, // 9: channel.ChangeGuildInfo.guildInfo:type_name -> channel.GuildInfo + 23, // 10: channel.ServChannelInfo.lastMsgSeq:type_name -> channel.MsgSeq + 23, // 11: channel.ServChannelInfo.lastCntMsgSeq:type_name -> channel.MsgSeq + 37, // 12: channel.ServChannelInfo.voiceChannelInfo:type_name -> channel.VoiceChannelInfo + 19, // 13: channel.ServChannelInfo.liveChannelInfo:type_name -> channel.LiveChannelInfo + 39, // 14: channel.CommGrayTips.templParam:type_name -> channel.CommGrayTips.TemplParam + 6, // 15: channel.CreateChan.createId:type_name -> channel.ChannelID + 6, // 16: channel.DestroyChan.deleteId:type_name -> channel.ChannelID + 25, // 17: channel.EventBody.readNotify:type_name -> channel.ReadNotify + 8, // 18: channel.EventBody.commGrayTips:type_name -> channel.CommGrayTips + 10, // 19: channel.EventBody.createGuild:type_name -> channel.CreateGuild + 12, // 20: channel.EventBody.destroyGuild:type_name -> channel.DestroyGuild + 17, // 21: channel.EventBody.joinGuild:type_name -> channel.JoinGuild + 18, // 22: channel.EventBody.kickOffGuild:type_name -> channel.KickOffGuild + 24, // 23: channel.EventBody.quitGuild:type_name -> channel.QuitGuild + 5, // 24: channel.EventBody.changeGuildInfo:type_name -> channel.ChangeGuildInfo + 9, // 25: channel.EventBody.createChan:type_name -> channel.CreateChan + 11, // 26: channel.EventBody.destroyChan:type_name -> channel.DestroyChan + 4, // 27: channel.EventBody.changeChanInfo:type_name -> channel.ChangeChanInfo + 27, // 28: channel.EventBody.setAdmin:type_name -> channel.SetAdmin + 28, // 29: channel.EventBody.setMsgRecvType:type_name -> channel.SetMsgRecvType + 35, // 30: channel.EventBody.updateMsg:type_name -> channel.UpdateMsg + 30, // 31: channel.EventBody.setTop:type_name -> channel.SetTop + 33, // 32: channel.EventBody.switchChannel:type_name -> channel.SwitchVoiceChannel + 34, // 33: channel.EventBody.updateCategory:type_name -> channel.UpdateCategory + 36, // 34: channel.EventBody.updateVoiceBlockList:type_name -> channel.UpdateVoiceBlockList + 29, // 35: channel.EventBody.setMute:type_name -> channel.SetMute + 21, // 36: channel.EventBody.liveStatusChangeRoom:type_name -> channel.LiveRoomStatusChangeMsg + 32, // 37: channel.EventBody.switchLiveRoom:type_name -> channel.SwitchLiveRoom + 22, // 38: channel.EventBody.events:type_name -> channel.MsgEvent + 26, // 39: channel.EventBody.scheduler:type_name -> channel.SchedulerMsg + 0, // 40: channel.EventBody.appChannel:type_name -> channel.AppChannelMsg + 0, // 41: channel.EventBody.weakMsgAppChannel:type_name -> channel.AppChannelMsg + 14, // 42: channel.GuildInfo.guildStatus:type_name -> channel.GroupProStatus + 23, // 43: channel.GuildInfo.memberChangeSeq:type_name -> channel.MsgSeq + 23, // 44: channel.GuildInfo.guildInfoChangeSeq:type_name -> channel.MsgSeq + 23, // 45: channel.GuildInfo.channelChangeSeq:type_name -> channel.MsgSeq + 23, // 46: channel.ReadNotify.readMsgSeq:type_name -> channel.MsgSeq + 23, // 47: channel.ReadNotify.readCntMsgSeq:type_name -> channel.MsgSeq + 31, // 48: channel.SwitchVoiceChannel.enterDetail:type_name -> channel.SwitchDetail + 31, // 49: channel.SwitchVoiceChannel.leaveDetail:type_name -> channel.SwitchDetail + 2, // 50: channel.UpdateCategory.categoryInfo:type_name -> channel.CategoryInfo + 2, // 51: channel.UpdateCategory.noClassifyCategoryInfo:type_name -> channel.CategoryInfo + 52, // [52:52] is the sub-list for method output_type + 52, // [52:52] is the sub-list for method input_type + 52, // [52:52] is the sub-list for extension type_name + 52, // [52:52] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name +} + +func init() { file_pb_channel_servtype_proto_init() } +func file_pb_channel_servtype_proto_init() { + if File_pb_channel_servtype_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_channel_servtype_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppChannelMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CategoryChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CategoryInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChanInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeChanInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeGuildInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommGrayTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateChan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroyChan); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DestroyGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupProStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickOffGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveChannelInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LiveRoomStatusChangeMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSeq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGuild); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReadNotify); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchedulerMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetAdmin); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMsgRecvType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetTop); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchLiveRoom); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SwitchVoiceChannel); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCategory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateVoiceBlockList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoiceChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VoiceChannelInfoFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_servtype_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommGrayTips_TemplParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_servtype_proto_rawDesc, + NumEnums: 0, + NumMessages: 40, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_servtype_proto_goTypes, + DependencyIndexes: file_pb_channel_servtype_proto_depIdxs, + MessageInfos: file_pb_channel_servtype_proto_msgTypes, + }.Build() + File_pb_channel_servtype_proto = out.File + file_pb_channel_servtype_proto_rawDesc = nil + file_pb_channel_servtype_proto_goTypes = nil + file_pb_channel_servtype_proto_depIdxs = nil +} diff --git a/client/pb/channel/servtype.proto b/client/pb/channel/servtype.proto new file mode 100644 index 00000000..92d84768 --- /dev/null +++ b/client/pb/channel/servtype.proto @@ -0,0 +1,327 @@ +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; + +message AppChannelMsg { + optional string summary = 1; + optional string msg = 2; + optional uint64 expireTimeMs = 3; + optional uint32 schemaType = 4; + optional string schema = 5; +} + +message CategoryChannelInfo { + optional uint32 channelIndex = 1; + optional uint64 channelId = 2; +} + +message CategoryInfo { + optional uint32 categoryIndex = 1; + repeated CategoryChannelInfo channelInfo = 2; + optional bytes categoryName = 3; + optional uint64 categoryId = 4; +} + +message ChanInfoFilter { + optional uint32 channelName = 2; + optional uint32 creatorId = 3; + optional uint32 createTime = 4; + optional uint32 guildId = 5; + optional uint32 msgNotifyType = 6; + optional uint32 channelType = 7; + optional uint32 speakPermission = 8; + optional uint32 lastMsgSeq = 11; + optional uint32 lastCntMsgSeq = 12; + optional VoiceChannelInfoFilter voiceChannelInfoFilter = 14; + optional LiveChannelInfoFilter liveChannelInfoFilter = 15; + optional uint32 bannedSpeak = 16; +} + +message ChangeChanInfo { + optional uint64 guildId = 1; + optional uint64 chanId = 2; + optional uint64 operatorId = 3; + optional MsgSeq infoSeq = 4; + optional uint32 updateType = 5; + optional ChanInfoFilter chanInfoFilter = 6; + optional ServChannelInfo chanInfo = 7; +} + +message ChangeGuildInfo { + optional uint64 guildId = 1; + optional uint64 operatorId = 2; + optional MsgSeq infoSeq = 3; + optional MsgSeq faceSeq = 4; + optional uint32 updateType = 5; + optional GuildInfoFilter guildInfoFilter = 6; + optional GuildInfo guildInfo = 7; +} + +message ChannelID { + optional uint64 chanId = 1; +} + +message ServChannelInfo { + optional uint64 channelId = 1; + optional bytes channelName = 2; + optional uint64 creatorId = 3; + optional uint64 createTime = 4; + optional uint64 guildId = 5; + optional uint32 msgNotifyType = 6; + optional uint32 channelType = 7; + optional uint32 speakPermission = 8; + optional MsgSeq lastMsgSeq = 11; + optional MsgSeq lastCntMsgSeq = 12; + optional VoiceChannelInfo voiceChannelInfo = 14; + optional LiveChannelInfo liveChannelInfo = 15; + optional uint32 bannedSpeak = 16; +} + +message CommGrayTips { + optional uint64 busiType = 1; + optional uint64 busiId = 2; + optional uint32 ctrlFlag = 3; + optional uint64 templId = 4; + repeated TemplParam templParam = 5; + optional bytes content = 6; + optional uint64 tipsSeqId = 10; + optional bytes pbReserv = 100; + + message TemplParam { + optional bytes name = 1; + optional bytes value = 2; + } +} + +message CreateChan { + optional uint64 guildId = 1; + optional uint64 operatorId = 3; + repeated ChannelID createId = 4; +} + +message CreateGuild { + optional uint64 operatorId = 1; + optional uint64 guildId = 2; +} + +message DestroyChan { + optional uint64 guildId = 1; + optional uint64 operatorId = 3; + repeated ChannelID deleteId = 4; +} + +message DestroyGuild { + optional uint64 operatorId = 1; + optional uint64 guildId = 2; +} + +message EventBody { + optional ReadNotify readNotify = 1; + optional CommGrayTips commGrayTips = 2; + optional CreateGuild createGuild = 3; + optional DestroyGuild destroyGuild = 4; + optional JoinGuild joinGuild = 5; + optional KickOffGuild kickOffGuild = 6; + optional QuitGuild quitGuild = 7; + optional ChangeGuildInfo changeGuildInfo = 8; + optional CreateChan createChan = 9; + optional DestroyChan destroyChan = 10; + optional ChangeChanInfo changeChanInfo = 11; + optional SetAdmin setAdmin = 12; + optional SetMsgRecvType setMsgRecvType = 13; + optional UpdateMsg updateMsg = 14; + optional SetTop setTop = 17; + optional SwitchVoiceChannel switchChannel = 18; + optional UpdateCategory updateCategory = 21; + optional UpdateVoiceBlockList updateVoiceBlockList = 22; + optional SetMute setMute = 23; + optional LiveRoomStatusChangeMsg liveStatusChangeRoom = 24; + optional SwitchLiveRoom switchLiveRoom = 25; + repeated MsgEvent events = 39; + optional SchedulerMsg scheduler = 40; + optional AppChannelMsg appChannel = 41; + optional AppChannelMsg weakMsgAppChannel = 46; +} + +message GroupProStatus { + optional uint32 isEnable = 1; + optional uint32 isBanned = 2; + optional uint32 isFrozen = 3; +} + +message GuildInfo { + optional uint64 guildCode = 2; + optional uint64 ownerId = 3; + optional uint64 createTime = 4; + optional uint32 memberMaxNum = 5; + optional uint32 memberNum = 6; + optional uint32 guildType = 7; + optional bytes guildName = 8; + repeated uint64 robotList = 9; + repeated uint64 adminList = 10; + optional uint32 robotMaxNum = 11; + optional uint32 adminMaxNum = 12; + optional bytes profile = 13; + optional uint64 faceSeq = 14; + optional GroupProStatus guildStatus = 15; + optional uint32 channelNum = 16; + optional MsgSeq memberChangeSeq = 5002; + optional MsgSeq guildInfoChangeSeq = 5003; + optional MsgSeq channelChangeSeq = 5004; +} + +message GuildInfoFilter { + optional uint32 guildCode = 2; + optional uint32 ownerId = 3; + optional uint32 createTime = 4; + optional uint32 memberMaxNum = 5; + optional uint32 memberNum = 6; + optional uint32 guildType = 7; + optional uint32 guildName = 8; + optional uint32 robotList = 9; + optional uint32 adminList = 10; + optional uint32 robotMaxNum = 11; + optional uint32 adminMaxNum = 12; + optional uint32 profile = 13; + optional uint32 faceSeq = 14; + optional uint32 guildStatus = 15; + optional uint32 channelNum = 16; + optional uint32 memberChangeSeq = 5002; + optional uint32 guildInfoChangeSeq = 5003; + optional uint32 channelChangeSeq = 5004; +} + +message JoinGuild { + optional uint64 memberId = 3; + optional uint32 memberType = 4; + optional uint64 memberTinyid = 5; +} + +message KickOffGuild { + optional uint64 memberId = 3; + optional uint32 setBlack = 4; + optional uint64 memberTinyid = 5; +} + +message LiveChannelInfo { + optional uint64 roomId = 1; + optional uint64 anchorUin = 2; + optional bytes name = 3; +} + +message LiveChannelInfoFilter { + optional uint32 isNeedRoomId = 1; + optional uint32 isNeedAnchorUin = 2; + optional uint32 isNeedName = 3; +} + +message LiveRoomStatusChangeMsg { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint64 roomId = 3; + optional uint64 anchorTinyid = 4; + optional uint32 action = 5; +} + +message MsgEvent { + optional uint64 seq = 1; + optional uint64 eventType = 2; + optional uint64 eventVersion = 3; +} + +message MsgSeq { + optional uint64 seq = 1; + optional uint64 time = 2; +} + +message QuitGuild {} + +message ReadNotify { + optional uint64 channelId = 1; + optional uint64 guildId = 2; + optional MsgSeq readMsgSeq = 3; + optional MsgSeq readCntMsgSeq = 4; + optional bytes readMsgMeta = 5; +} + +message SchedulerMsg { + optional bytes creatorHeadUrl = 1; + optional string wording = 2; + optional uint64 expireTimeMs = 3; +} + +message SetAdmin { + optional uint64 guildId = 1; + optional uint64 chanId = 2; + optional uint64 operatorId = 3; + optional uint64 adminId = 4; + optional uint64 adminTinyid = 5; + optional uint32 operateType = 6; +} + +message SetMsgRecvType { + optional uint64 guildId = 1; + optional uint64 chanId = 2; + optional uint64 operatorId = 3; + optional uint32 msgNotifyType = 4; +} + +message SetMute { + optional uint32 action = 1; + optional uint64 tinyID = 2; +} + +message SetTop { + optional uint32 action = 1; +} + +message SwitchDetail { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint32 platform = 3; +} + +message SwitchLiveRoom { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint64 roomId = 3; + optional uint64 tinyid = 4; + optional uint32 action = 5; +} + +message SwitchVoiceChannel { + optional uint64 memberId = 1; + optional SwitchDetail enterDetail = 2; + optional SwitchDetail leaveDetail = 3; +} + +message UpdateCategory { + repeated CategoryInfo categoryInfo = 1; + optional CategoryInfo noClassifyCategoryInfo = 2; +} + +message UpdateMsg { + optional uint64 msgSeq = 1; + optional bool origMsgUncountable = 2; + optional uint64 eventType = 3; + optional uint64 eventVersion = 4; + optional uint64 operatorTinyid = 5; + optional uint64 operatorRole = 6; + optional uint64 reason = 7; + optional uint64 timestamp = 8; +} + +message UpdateVoiceBlockList { + optional uint32 action = 1; + optional uint64 objectTinyid = 2; +} + +message VoiceChannelInfo { + optional uint32 memberMaxNum = 1; +} + +message VoiceChannelInfoFilter { + optional uint32 memberMaxNum = 1; +} diff --git a/client/pb/channel/synclogic.pb.go b/client/pb/channel/synclogic.pb.go new file mode 100644 index 00000000..0ad97e5e --- /dev/null +++ b/client/pb/channel/synclogic.pb.go @@ -0,0 +1,1736 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/synclogic.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChannelMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + Result *uint32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + RspBeginSeq *uint64 `protobuf:"varint,4,opt,name=rspBeginSeq" json:"rspBeginSeq,omitempty"` + RspEndSeq *uint64 `protobuf:"varint,5,opt,name=rspEndSeq" json:"rspEndSeq,omitempty"` + Msgs []*ChannelMsgContent `protobuf:"bytes,6,rep,name=msgs" json:"msgs,omitempty"` +} + +func (x *ChannelMsg) Reset() { + *x = ChannelMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsg) ProtoMessage() {} + +func (x *ChannelMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsg.ProtoReflect.Descriptor instead. +func (*ChannelMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{0} +} + +func (x *ChannelMsg) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChannelMsg) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ChannelMsg) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *ChannelMsg) GetRspBeginSeq() uint64 { + if x != nil && x.RspBeginSeq != nil { + return *x.RspBeginSeq + } + return 0 +} + +func (x *ChannelMsg) GetRspEndSeq() uint64 { + if x != nil && x.RspEndSeq != nil { + return *x.RspEndSeq + } + return 0 +} + +func (x *ChannelMsg) GetMsgs() []*ChannelMsgContent { + if x != nil { + return x.Msgs + } + return nil +} + +type ChannelMsgReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelParam *ChannelParam `protobuf:"bytes,1,opt,name=channelParam" json:"channelParam,omitempty"` + WithVersionFlag *uint32 `protobuf:"varint,2,opt,name=withVersionFlag" json:"withVersionFlag,omitempty"` + DirectMessageFlag *uint32 `protobuf:"varint,3,opt,name=directMessageFlag" json:"directMessageFlag,omitempty"` +} + +func (x *ChannelMsgReq) Reset() { + *x = ChannelMsgReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgReq) ProtoMessage() {} + +func (x *ChannelMsgReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgReq.ProtoReflect.Descriptor instead. +func (*ChannelMsgReq) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{1} +} + +func (x *ChannelMsgReq) GetChannelParam() *ChannelParam { + if x != nil { + return x.ChannelParam + } + return nil +} + +func (x *ChannelMsgReq) GetWithVersionFlag() uint32 { + if x != nil && x.WithVersionFlag != nil { + return *x.WithVersionFlag + } + return 0 +} + +func (x *ChannelMsgReq) GetDirectMessageFlag() uint32 { + if x != nil && x.DirectMessageFlag != nil { + return *x.DirectMessageFlag + } + return 0 +} + +type ChannelMsgRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` + ErrMsg []byte `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt,name=channelMsg" json:"channelMsg,omitempty"` + WithVersionFlag *uint32 `protobuf:"varint,4,opt,name=withVersionFlag" json:"withVersionFlag,omitempty"` + GetMsgTime *uint64 `protobuf:"varint,5,opt,name=getMsgTime" json:"getMsgTime,omitempty"` +} + +func (x *ChannelMsgRsp) Reset() { + *x = ChannelMsgRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelMsgRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelMsgRsp) ProtoMessage() {} + +func (x *ChannelMsgRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelMsgRsp.ProtoReflect.Descriptor instead. +func (*ChannelMsgRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{2} +} + +func (x *ChannelMsgRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *ChannelMsgRsp) GetErrMsg() []byte { + if x != nil { + return x.ErrMsg + } + return nil +} + +func (x *ChannelMsgRsp) GetChannelMsg() *ChannelMsg { + if x != nil { + return x.ChannelMsg + } + return nil +} + +func (x *ChannelMsgRsp) GetWithVersionFlag() uint32 { + if x != nil && x.WithVersionFlag != nil { + return *x.WithVersionFlag + } + return 0 +} + +func (x *ChannelMsgRsp) GetGetMsgTime() uint64 { + if x != nil && x.GetMsgTime != nil { + return *x.GetMsgTime + } + return 0 +} + +type ChannelNode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + Seq *uint64 `protobuf:"varint,2,opt,name=seq" json:"seq,omitempty"` + CntSeq *uint64 `protobuf:"varint,3,opt,name=cntSeq" json:"cntSeq,omitempty"` + Time *uint64 `protobuf:"varint,4,opt,name=time" json:"time,omitempty"` + MemberReadMsgSeq *uint64 `protobuf:"varint,5,opt,name=memberReadMsgSeq" json:"memberReadMsgSeq,omitempty"` + MemberReadCntSeq *uint64 `protobuf:"varint,6,opt,name=memberReadCntSeq" json:"memberReadCntSeq,omitempty"` + NotifyType *uint32 `protobuf:"varint,7,opt,name=notifyType" json:"notifyType,omitempty"` + ChannelName []byte `protobuf:"bytes,8,opt,name=channelName" json:"channelName,omitempty"` + ChannelType *uint32 `protobuf:"varint,9,opt,name=channelType" json:"channelType,omitempty"` + Meta []byte `protobuf:"bytes,10,opt,name=meta" json:"meta,omitempty"` + ReadMsgMeta []byte `protobuf:"bytes,11,opt,name=readMsgMeta" json:"readMsgMeta,omitempty"` + EventTime *uint32 `protobuf:"varint,12,opt,name=eventTime" json:"eventTime,omitempty"` +} + +func (x *ChannelNode) Reset() { + *x = ChannelNode{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelNode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelNode) ProtoMessage() {} + +func (x *ChannelNode) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelNode.ProtoReflect.Descriptor instead. +func (*ChannelNode) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{3} +} + +func (x *ChannelNode) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ChannelNode) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *ChannelNode) GetCntSeq() uint64 { + if x != nil && x.CntSeq != nil { + return *x.CntSeq + } + return 0 +} + +func (x *ChannelNode) GetTime() uint64 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +func (x *ChannelNode) GetMemberReadMsgSeq() uint64 { + if x != nil && x.MemberReadMsgSeq != nil { + return *x.MemberReadMsgSeq + } + return 0 +} + +func (x *ChannelNode) GetMemberReadCntSeq() uint64 { + if x != nil && x.MemberReadCntSeq != nil { + return *x.MemberReadCntSeq + } + return 0 +} + +func (x *ChannelNode) GetNotifyType() uint32 { + if x != nil && x.NotifyType != nil { + return *x.NotifyType + } + return 0 +} + +func (x *ChannelNode) GetChannelName() []byte { + if x != nil { + return x.ChannelName + } + return nil +} + +func (x *ChannelNode) GetChannelType() uint32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *ChannelNode) GetMeta() []byte { + if x != nil { + return x.Meta + } + return nil +} + +func (x *ChannelNode) GetReadMsgMeta() []byte { + if x != nil { + return x.ReadMsgMeta + } + return nil +} + +func (x *ChannelNode) GetEventTime() uint32 { + if x != nil && x.EventTime != nil { + return *x.EventTime + } + return 0 +} + +type ChannelParam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + ChannelId *uint64 `protobuf:"varint,2,opt,name=channelId" json:"channelId,omitempty"` + BeginSeq *uint64 `protobuf:"varint,3,opt,name=beginSeq" json:"beginSeq,omitempty"` + EndSeq *uint64 `protobuf:"varint,4,opt,name=endSeq" json:"endSeq,omitempty"` + Time *uint64 `protobuf:"varint,5,opt,name=time" json:"time,omitempty"` + Version []uint64 `protobuf:"varint,6,rep,name=version" json:"version,omitempty"` + Seqs []*MsgCond `protobuf:"bytes,7,rep,name=seqs" json:"seqs,omitempty"` +} + +func (x *ChannelParam) Reset() { + *x = ChannelParam{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelParam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelParam) ProtoMessage() {} + +func (x *ChannelParam) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelParam.ProtoReflect.Descriptor instead. +func (*ChannelParam) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{4} +} + +func (x *ChannelParam) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChannelParam) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *ChannelParam) GetBeginSeq() uint64 { + if x != nil && x.BeginSeq != nil { + return *x.BeginSeq + } + return 0 +} + +func (x *ChannelParam) GetEndSeq() uint64 { + if x != nil && x.EndSeq != nil { + return *x.EndSeq + } + return 0 +} + +func (x *ChannelParam) GetTime() uint64 { + if x != nil && x.Time != nil { + return *x.Time + } + return 0 +} + +func (x *ChannelParam) GetVersion() []uint64 { + if x != nil { + return x.Version + } + return nil +} + +func (x *ChannelParam) GetSeqs() []*MsgCond { + if x != nil { + return x.Seqs + } + return nil +} + +type DirectMessageSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TinyId *uint64 `protobuf:"varint,1,opt,name=tinyId" json:"tinyId,omitempty"` + GuildId *uint64 `protobuf:"varint,2,opt,name=guildId" json:"guildId,omitempty"` + GuildName []byte `protobuf:"bytes,3,opt,name=guildName" json:"guildName,omitempty"` + MemberName []byte `protobuf:"bytes,4,opt,name=memberName" json:"memberName,omitempty"` + NickName []byte `protobuf:"bytes,5,opt,name=nickName" json:"nickName,omitempty"` +} + +func (x *DirectMessageSource) Reset() { + *x = DirectMessageSource{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DirectMessageSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectMessageSource) ProtoMessage() {} + +func (x *DirectMessageSource) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DirectMessageSource.ProtoReflect.Descriptor instead. +func (*DirectMessageSource) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{5} +} + +func (x *DirectMessageSource) GetTinyId() uint64 { + if x != nil && x.TinyId != nil { + return *x.TinyId + } + return 0 +} + +func (x *DirectMessageSource) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *DirectMessageSource) GetGuildName() []byte { + if x != nil { + return x.GuildName + } + return nil +} + +func (x *DirectMessageSource) GetMemberName() []byte { + if x != nil { + return x.MemberName + } + return nil +} + +func (x *DirectMessageSource) GetNickName() []byte { + if x != nil { + return x.NickName + } + return nil +} + +type FirstViewMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PushFlag *uint32 `protobuf:"varint,1,opt,name=pushFlag" json:"pushFlag,omitempty"` + Seq *uint32 `protobuf:"varint,2,opt,name=seq" json:"seq,omitempty"` + GuildNodes []*GuildNode `protobuf:"bytes,3,rep,name=guildNodes" json:"guildNodes,omitempty"` + ChannelMsgs []*ChannelMsg `protobuf:"bytes,4,rep,name=channelMsgs" json:"channelMsgs,omitempty"` + GetMsgTime *uint64 `protobuf:"varint,5,opt,name=getMsgTime" json:"getMsgTime,omitempty"` + DirectMessageGuildNodes []*GuildNode `protobuf:"bytes,6,rep,name=directMessageGuildNodes" json:"directMessageGuildNodes,omitempty"` +} + +func (x *FirstViewMsg) Reset() { + *x = FirstViewMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FirstViewMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FirstViewMsg) ProtoMessage() {} + +func (x *FirstViewMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FirstViewMsg.ProtoReflect.Descriptor instead. +func (*FirstViewMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{6} +} + +func (x *FirstViewMsg) GetPushFlag() uint32 { + if x != nil && x.PushFlag != nil { + return *x.PushFlag + } + return 0 +} + +func (x *FirstViewMsg) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *FirstViewMsg) GetGuildNodes() []*GuildNode { + if x != nil { + return x.GuildNodes + } + return nil +} + +func (x *FirstViewMsg) GetChannelMsgs() []*ChannelMsg { + if x != nil { + return x.ChannelMsgs + } + return nil +} + +func (x *FirstViewMsg) GetGetMsgTime() uint64 { + if x != nil && x.GetMsgTime != nil { + return *x.GetMsgTime + } + return 0 +} + +func (x *FirstViewMsg) GetDirectMessageGuildNodes() []*GuildNode { + if x != nil { + return x.DirectMessageGuildNodes + } + return nil +} + +type FirstViewReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LastMsgTime *uint64 `protobuf:"varint,1,opt,name=lastMsgTime" json:"lastMsgTime,omitempty"` + UdcFlag *uint32 `protobuf:"varint,2,opt,name=udcFlag" json:"udcFlag,omitempty"` + Seq *uint32 `protobuf:"varint,3,opt,name=seq" json:"seq,omitempty"` + DirectMessageFlag *uint32 `protobuf:"varint,4,opt,name=directMessageFlag" json:"directMessageFlag,omitempty"` +} + +func (x *FirstViewReq) Reset() { + *x = FirstViewReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FirstViewReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FirstViewReq) ProtoMessage() {} + +func (x *FirstViewReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FirstViewReq.ProtoReflect.Descriptor instead. +func (*FirstViewReq) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{7} +} + +func (x *FirstViewReq) GetLastMsgTime() uint64 { + if x != nil && x.LastMsgTime != nil { + return *x.LastMsgTime + } + return 0 +} + +func (x *FirstViewReq) GetUdcFlag() uint32 { + if x != nil && x.UdcFlag != nil { + return *x.UdcFlag + } + return 0 +} + +func (x *FirstViewReq) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *FirstViewReq) GetDirectMessageFlag() uint32 { + if x != nil && x.DirectMessageFlag != nil { + return *x.DirectMessageFlag + } + return 0 +} + +type FirstViewRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` + ErrMsg []byte `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + Seq *uint32 `protobuf:"varint,3,opt,name=seq" json:"seq,omitempty"` + UdcFlag *uint32 `protobuf:"varint,4,opt,name=udcFlag" json:"udcFlag,omitempty"` + GuildCount *uint32 `protobuf:"varint,5,opt,name=guildCount" json:"guildCount,omitempty"` + SelfTinyid *uint64 `protobuf:"varint,6,opt,name=selfTinyid" json:"selfTinyid,omitempty"` + DirectMessageSwitch *uint32 `protobuf:"varint,7,opt,name=directMessageSwitch" json:"directMessageSwitch,omitempty"` + DirectMessageGuildCount *uint32 `protobuf:"varint,8,opt,name=directMessageGuildCount" json:"directMessageGuildCount,omitempty"` +} + +func (x *FirstViewRsp) Reset() { + *x = FirstViewRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FirstViewRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FirstViewRsp) ProtoMessage() {} + +func (x *FirstViewRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FirstViewRsp.ProtoReflect.Descriptor instead. +func (*FirstViewRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{8} +} + +func (x *FirstViewRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *FirstViewRsp) GetErrMsg() []byte { + if x != nil { + return x.ErrMsg + } + return nil +} + +func (x *FirstViewRsp) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *FirstViewRsp) GetUdcFlag() uint32 { + if x != nil && x.UdcFlag != nil { + return *x.UdcFlag + } + return 0 +} + +func (x *FirstViewRsp) GetGuildCount() uint32 { + if x != nil && x.GuildCount != nil { + return *x.GuildCount + } + return 0 +} + +func (x *FirstViewRsp) GetSelfTinyid() uint64 { + if x != nil && x.SelfTinyid != nil { + return *x.SelfTinyid + } + return 0 +} + +func (x *FirstViewRsp) GetDirectMessageSwitch() uint32 { + if x != nil && x.DirectMessageSwitch != nil { + return *x.DirectMessageSwitch + } + return 0 +} + +func (x *FirstViewRsp) GetDirectMessageGuildCount() uint32 { + if x != nil && x.DirectMessageGuildCount != nil { + return *x.DirectMessageGuildCount + } + return 0 +} + +type GuildNode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + GuildCode *uint64 `protobuf:"varint,2,opt,name=guildCode" json:"guildCode,omitempty"` + ChannelNodes []*ChannelNode `protobuf:"bytes,3,rep,name=channelNodes" json:"channelNodes,omitempty"` + GuildName []byte `protobuf:"bytes,4,opt,name=guildName" json:"guildName,omitempty"` + PeerSource *DirectMessageSource `protobuf:"bytes,5,opt,name=peerSource" json:"peerSource,omitempty"` +} + +func (x *GuildNode) Reset() { + *x = GuildNode{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildNode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildNode) ProtoMessage() {} + +func (x *GuildNode) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildNode.ProtoReflect.Descriptor instead. +func (*GuildNode) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{9} +} + +func (x *GuildNode) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildNode) GetGuildCode() uint64 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *GuildNode) GetChannelNodes() []*ChannelNode { + if x != nil { + return x.ChannelNodes + } + return nil +} + +func (x *GuildNode) GetGuildName() []byte { + if x != nil { + return x.GuildName + } + return nil +} + +func (x *GuildNode) GetPeerSource() *DirectMessageSource { + if x != nil { + return x.PeerSource + } + return nil +} + +type MsgCond struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Seq *uint64 `protobuf:"varint,1,opt,name=seq" json:"seq,omitempty"` + EventVersion *uint64 `protobuf:"varint,2,opt,name=eventVersion" json:"eventVersion,omitempty"` +} + +func (x *MsgCond) Reset() { + *x = MsgCond{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgCond) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgCond) ProtoMessage() {} + +func (x *MsgCond) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgCond.ProtoReflect.Descriptor instead. +func (*MsgCond) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{10} +} + +func (x *MsgCond) GetSeq() uint64 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MsgCond) GetEventVersion() uint64 { + if x != nil && x.EventVersion != nil { + return *x.EventVersion + } + return 0 +} + +type MultiChannelMsg struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PushFlag *uint32 `protobuf:"varint,1,opt,name=pushFlag" json:"pushFlag,omitempty"` + Seq *uint32 `protobuf:"varint,2,opt,name=seq" json:"seq,omitempty"` + ChannelMsgs []*ChannelMsg `protobuf:"bytes,3,rep,name=channelMsgs" json:"channelMsgs,omitempty"` + GetMsgTime *uint64 `protobuf:"varint,4,opt,name=getMsgTime" json:"getMsgTime,omitempty"` +} + +func (x *MultiChannelMsg) Reset() { + *x = MultiChannelMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiChannelMsg) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiChannelMsg) ProtoMessage() {} + +func (x *MultiChannelMsg) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiChannelMsg.ProtoReflect.Descriptor instead. +func (*MultiChannelMsg) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{11} +} + +func (x *MultiChannelMsg) GetPushFlag() uint32 { + if x != nil && x.PushFlag != nil { + return *x.PushFlag + } + return 0 +} + +func (x *MultiChannelMsg) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MultiChannelMsg) GetChannelMsgs() []*ChannelMsg { + if x != nil { + return x.ChannelMsgs + } + return nil +} + +func (x *MultiChannelMsg) GetGetMsgTime() uint64 { + if x != nil && x.GetMsgTime != nil { + return *x.GetMsgTime + } + return 0 +} + +type MultiChannelMsgReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelParams []*ChannelParam `protobuf:"bytes,1,rep,name=channelParams" json:"channelParams,omitempty"` + Seq *uint32 `protobuf:"varint,2,opt,name=seq" json:"seq,omitempty"` + DirectMessageFlag *uint32 `protobuf:"varint,3,opt,name=directMessageFlag" json:"directMessageFlag,omitempty"` +} + +func (x *MultiChannelMsgReq) Reset() { + *x = MultiChannelMsgReq{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiChannelMsgReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiChannelMsgReq) ProtoMessage() {} + +func (x *MultiChannelMsgReq) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiChannelMsgReq.ProtoReflect.Descriptor instead. +func (*MultiChannelMsgReq) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{12} +} + +func (x *MultiChannelMsgReq) GetChannelParams() []*ChannelParam { + if x != nil { + return x.ChannelParams + } + return nil +} + +func (x *MultiChannelMsgReq) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +func (x *MultiChannelMsgReq) GetDirectMessageFlag() uint32 { + if x != nil && x.DirectMessageFlag != nil { + return *x.DirectMessageFlag + } + return 0 +} + +type MultiChannelMsgRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` + ErrMsg []byte `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + Seq *uint32 `protobuf:"varint,3,opt,name=seq" json:"seq,omitempty"` +} + +func (x *MultiChannelMsgRsp) Reset() { + *x = MultiChannelMsgRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MultiChannelMsgRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MultiChannelMsgRsp) ProtoMessage() {} + +func (x *MultiChannelMsgRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MultiChannelMsgRsp.ProtoReflect.Descriptor instead. +func (*MultiChannelMsgRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{13} +} + +func (x *MultiChannelMsgRsp) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *MultiChannelMsgRsp) GetErrMsg() []byte { + if x != nil { + return x.ErrMsg + } + return nil +} + +func (x *MultiChannelMsgRsp) GetSeq() uint32 { + if x != nil && x.Seq != nil { + return *x.Seq + } + return 0 +} + +type ReqBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelParam *ChannelParam `protobuf:"bytes,1,opt,name=channelParam" json:"channelParam,omitempty"` + DirectMessageFlag *uint32 `protobuf:"varint,2,opt,name=directMessageFlag" json:"directMessageFlag,omitempty"` +} + +func (x *ReqBody) Reset() { + *x = ReqBody{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReqBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqBody) ProtoMessage() {} + +func (x *ReqBody) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqBody.ProtoReflect.Descriptor instead. +func (*ReqBody) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{14} +} + +func (x *ReqBody) GetChannelParam() *ChannelParam { + if x != nil { + return x.ChannelParam + } + return nil +} + +func (x *ReqBody) GetDirectMessageFlag() uint32 { + if x != nil && x.DirectMessageFlag != nil { + return *x.DirectMessageFlag + } + return 0 +} + +type RspBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Result *uint32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` + ErrMsg []byte `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + ChannelMsg *ChannelMsg `protobuf:"bytes,3,opt,name=channelMsg" json:"channelMsg,omitempty"` +} + +func (x *RspBody) Reset() { + *x = RspBody{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_synclogic_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RspBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RspBody) ProtoMessage() {} + +func (x *RspBody) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_synclogic_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RspBody.ProtoReflect.Descriptor instead. +func (*RspBody) Descriptor() ([]byte, []int) { + return file_pb_channel_synclogic_proto_rawDescGZIP(), []int{15} +} + +func (x *RspBody) GetResult() uint32 { + if x != nil && x.Result != nil { + return *x.Result + } + return 0 +} + +func (x *RspBody) GetErrMsg() []byte { + if x != nil { + return x.ErrMsg + } + return nil +} + +func (x *RspBody) GetChannelMsg() *ChannelMsg { + if x != nil { + return x.ChannelMsg + } + return nil +} + +var File_pb_channel_synclogic_proto protoreflect.FileDescriptor + +var file_pb_channel_synclogic_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x73, 0x79, 0x6e, + 0x63, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x17, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, + 0x01, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x72, 0x73, 0x70, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x72, 0x73, 0x70, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x72, 0x73, 0x70, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x72, 0x73, 0x70, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x2e, 0x0a, + 0x04, 0x6d, 0x73, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6d, 0x73, 0x67, 0x73, 0x22, 0xa2, 0x01, + 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, + 0x39, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x0c, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x69, + 0x74, 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, + 0x61, 0x67, 0x22, 0xbe, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, + 0x72, 0x4d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x0a, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x77, 0x69, 0x74, + 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0f, 0x77, 0x69, 0x74, 0x68, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0xf9, 0x02, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x73, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, + 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x43, 0x6e, 0x74, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x74, 0x69, 0x66, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x12, + 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x73, 0x67, 0x4d, 0x65, 0x74, + 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xce, 0x01, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x04, 0x73, 0x65, + 0x71, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x64, 0x52, 0x04, 0x73, 0x65, 0x71, 0x73, + 0x22, 0xa1, 0x01, 0x0a, 0x13, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x95, 0x02, 0x0a, 0x0c, 0x46, 0x69, 0x72, 0x73, 0x74, 0x56, 0x69, + 0x65, 0x77, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, + 0x73, 0x65, 0x71, 0x12, 0x32, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x1e, + 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4c, + 0x0a, 0x17, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x17, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x8a, 0x01, 0x0a, + 0x0c, 0x46, 0x69, 0x72, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x64, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x75, 0x64, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x2c, 0x0a, 0x11, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x96, 0x02, 0x0a, 0x0c, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x56, 0x69, 0x65, 0x77, 0x52, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, + 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x75, 0x64, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, + 0x64, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x66, 0x54, 0x69, + 0x6e, 0x79, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x66, + 0x54, 0x69, 0x6e, 0x79, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x38, 0x0a, 0x17, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xd9, 0x01, 0x0a, 0x09, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x64, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x6f, 0x64, + 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x3f, + 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0x96, 0x01, 0x0a, 0x0f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, + 0x71, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x4d, + 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x67, 0x65, + 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x12, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, + 0x3b, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x0d, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x2c, + 0x0a, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, + 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x56, 0x0a, 0x12, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, + 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, + 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x73, 0x65, 0x71, 0x22, 0x72, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x12, + 0x39, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x0c, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x69, + 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x6e, 0x0a, 0x07, 0x52, 0x73, 0x70, 0x42, + 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x65, 0x72, 0x72, + 0x4d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x73, 0x67, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_synclogic_proto_rawDescOnce sync.Once + file_pb_channel_synclogic_proto_rawDescData = file_pb_channel_synclogic_proto_rawDesc +) + +func file_pb_channel_synclogic_proto_rawDescGZIP() []byte { + file_pb_channel_synclogic_proto_rawDescOnce.Do(func() { + file_pb_channel_synclogic_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_synclogic_proto_rawDescData) + }) + return file_pb_channel_synclogic_proto_rawDescData +} + +var file_pb_channel_synclogic_proto_msgTypes = make([]protoimpl.MessageInfo, 16) +var file_pb_channel_synclogic_proto_goTypes = []interface{}{ + (*ChannelMsg)(nil), // 0: channel.ChannelMsg + (*ChannelMsgReq)(nil), // 1: channel.ChannelMsgReq + (*ChannelMsgRsp)(nil), // 2: channel.ChannelMsgRsp + (*ChannelNode)(nil), // 3: channel.ChannelNode + (*ChannelParam)(nil), // 4: channel.ChannelParam + (*DirectMessageSource)(nil), // 5: channel.DirectMessageSource + (*FirstViewMsg)(nil), // 6: channel.FirstViewMsg + (*FirstViewReq)(nil), // 7: channel.FirstViewReq + (*FirstViewRsp)(nil), // 8: channel.FirstViewRsp + (*GuildNode)(nil), // 9: channel.GuildNode + (*MsgCond)(nil), // 10: channel.MsgCond + (*MultiChannelMsg)(nil), // 11: channel.MultiChannelMsg + (*MultiChannelMsgReq)(nil), // 12: channel.MultiChannelMsgReq + (*MultiChannelMsgRsp)(nil), // 13: channel.MultiChannelMsgRsp + (*ReqBody)(nil), // 14: channel.ReqBody + (*RspBody)(nil), // 15: channel.RspBody + (*ChannelMsgContent)(nil), // 16: channel.ChannelMsgContent +} +var file_pb_channel_synclogic_proto_depIdxs = []int32{ + 16, // 0: channel.ChannelMsg.msgs:type_name -> channel.ChannelMsgContent + 4, // 1: channel.ChannelMsgReq.channelParam:type_name -> channel.ChannelParam + 0, // 2: channel.ChannelMsgRsp.channelMsg:type_name -> channel.ChannelMsg + 10, // 3: channel.ChannelParam.seqs:type_name -> channel.MsgCond + 9, // 4: channel.FirstViewMsg.guildNodes:type_name -> channel.GuildNode + 0, // 5: channel.FirstViewMsg.channelMsgs:type_name -> channel.ChannelMsg + 9, // 6: channel.FirstViewMsg.directMessageGuildNodes:type_name -> channel.GuildNode + 3, // 7: channel.GuildNode.channelNodes:type_name -> channel.ChannelNode + 5, // 8: channel.GuildNode.peerSource:type_name -> channel.DirectMessageSource + 0, // 9: channel.MultiChannelMsg.channelMsgs:type_name -> channel.ChannelMsg + 4, // 10: channel.MultiChannelMsgReq.channelParams:type_name -> channel.ChannelParam + 4, // 11: channel.ReqBody.channelParam:type_name -> channel.ChannelParam + 0, // 12: channel.RspBody.channelMsg:type_name -> channel.ChannelMsg + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_pb_channel_synclogic_proto_init() } +func file_pb_channel_synclogic_proto_init() { + if File_pb_channel_synclogic_proto != nil { + return + } + file_pb_channel_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_pb_channel_synclogic_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelMsgRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelNode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DirectMessageSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FirstViewMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FirstViewReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FirstViewRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildNode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgCond); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiChannelMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiChannelMsgReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MultiChannelMsgRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReqBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_synclogic_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RspBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_synclogic_proto_rawDesc, + NumEnums: 0, + NumMessages: 16, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_synclogic_proto_goTypes, + DependencyIndexes: file_pb_channel_synclogic_proto_depIdxs, + MessageInfos: file_pb_channel_synclogic_proto_msgTypes, + }.Build() + File_pb_channel_synclogic_proto = out.File + file_pb_channel_synclogic_proto_rawDesc = nil + file_pb_channel_synclogic_proto_goTypes = nil + file_pb_channel_synclogic_proto_depIdxs = nil +} diff --git a/client/pb/channel/synclogic.proto b/client/pb/channel/synclogic.proto new file mode 100644 index 00000000..692cb2a1 --- /dev/null +++ b/client/pb/channel/synclogic.proto @@ -0,0 +1,134 @@ +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; + +import "pb/channel/common.proto"; + +message ChannelMsg { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint32 result = 3; + optional uint64 rspBeginSeq = 4; + optional uint64 rspEndSeq = 5; + repeated ChannelMsgContent msgs = 6; +} + +message ChannelMsgReq { + optional ChannelParam channelParam = 1; + optional uint32 withVersionFlag = 2; + optional uint32 directMessageFlag = 3; +} + +message ChannelMsgRsp { + optional uint32 result = 1; + optional bytes errMsg = 2; + optional ChannelMsg channelMsg = 3; + optional uint32 withVersionFlag = 4; + optional uint64 getMsgTime = 5; +} + +message ChannelNode { + optional uint64 channelId = 1; + optional uint64 seq = 2; + optional uint64 cntSeq = 3; + optional uint64 time = 4; + optional uint64 memberReadMsgSeq = 5; + optional uint64 memberReadCntSeq = 6; + optional uint32 notifyType = 7; + optional bytes channelName = 8; + optional uint32 channelType = 9; + optional bytes meta = 10; + optional bytes readMsgMeta = 11; + optional uint32 eventTime = 12; +} + +message ChannelParam { + optional uint64 guildId = 1; + optional uint64 channelId = 2; + optional uint64 beginSeq = 3; + optional uint64 endSeq = 4; + optional uint64 time = 5; + repeated uint64 version = 6; + repeated MsgCond seqs = 7; +} + +message DirectMessageSource { + optional uint64 tinyId = 1; + optional uint64 guildId = 2; + optional bytes guildName = 3; + optional bytes memberName = 4; + optional bytes nickName = 5; +} + +message FirstViewMsg { + optional uint32 pushFlag = 1; + optional uint32 seq = 2; + repeated GuildNode guildNodes = 3; + repeated ChannelMsg channelMsgs = 4; + optional uint64 getMsgTime = 5; + repeated GuildNode directMessageGuildNodes = 6; +} + +message FirstViewReq { + optional uint64 lastMsgTime = 1; + optional uint32 udcFlag = 2; + optional uint32 seq = 3; + optional uint32 directMessageFlag = 4; +} + +message FirstViewRsp { + optional uint32 result = 1; + optional bytes errMsg = 2; + optional uint32 seq = 3; + optional uint32 udcFlag = 4; + optional uint32 guildCount = 5; + optional uint64 selfTinyid = 6; + optional uint32 directMessageSwitch = 7; + optional uint32 directMessageGuildCount = 8; +} + +message GuildNode { + optional uint64 guildId = 1; + optional uint64 guildCode = 2; + repeated ChannelNode channelNodes = 3; + optional bytes guildName = 4; + optional DirectMessageSource peerSource = 5; +} + +message MsgCond { + optional uint64 seq = 1; + optional uint64 eventVersion = 2; +} + +message MultiChannelMsg { + optional uint32 pushFlag = 1; + optional uint32 seq = 2; + repeated ChannelMsg channelMsgs = 3; + optional uint64 getMsgTime = 4; +} + +message MultiChannelMsgReq { + repeated ChannelParam channelParams = 1; + optional uint32 seq = 2; + optional uint32 directMessageFlag = 3; +} + +message MultiChannelMsgRsp { + optional uint32 result = 1; + optional bytes errMsg = 2; + optional uint32 seq = 3; +} + +message ReqBody { + optional ChannelParam channelParam = 1; + optional uint32 directMessageFlag = 2; +} + +message RspBody { + optional uint32 result = 1; + optional bytes errMsg = 2; + optional ChannelMsg channelMsg = 3; +} + diff --git a/client/pb/channel/unknown.pb.go b/client/pb/channel/unknown.pb.go new file mode 100644 index 00000000..9ce0c25d --- /dev/null +++ b/client/pb/channel/unknown.pb.go @@ -0,0 +1,1465 @@ +// 存放所有未知的结构体, 均为手动分析复原 + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: pb/channel/unknown.proto + +package channel + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ChannelOidb0Xf5BRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + Bots []*GuildMemberInfo `protobuf:"bytes,4,rep,name=bots" json:"bots,omitempty"` + Members []*GuildMemberInfo `protobuf:"bytes,5,rep,name=members" json:"members,omitempty"` + AdminInfo *GuildAdminInfo `protobuf:"bytes,25,opt,name=adminInfo" json:"adminInfo,omitempty"` +} + +func (x *ChannelOidb0Xf5BRsp) Reset() { + *x = ChannelOidb0Xf5BRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0Xf5BRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0Xf5BRsp) ProtoMessage() {} + +func (x *ChannelOidb0Xf5BRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0Xf5BRsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0Xf5BRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{0} +} + +func (x *ChannelOidb0Xf5BRsp) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChannelOidb0Xf5BRsp) GetBots() []*GuildMemberInfo { + if x != nil { + return x.Bots + } + return nil +} + +func (x *ChannelOidb0Xf5BRsp) GetMembers() []*GuildMemberInfo { + if x != nil { + return x.Members + } + return nil +} + +func (x *ChannelOidb0Xf5BRsp) GetAdminInfo() *GuildAdminInfo { + if x != nil { + return x.AdminInfo + } + return nil +} + +type ChannelOidb0Xf88Rsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Profile *GuildUserProfile `protobuf:"bytes,1,opt,name=profile" json:"profile,omitempty"` +} + +func (x *ChannelOidb0Xf88Rsp) Reset() { + *x = ChannelOidb0Xf88Rsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0Xf88Rsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0Xf88Rsp) ProtoMessage() {} + +func (x *ChannelOidb0Xf88Rsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0Xf88Rsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0Xf88Rsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{1} +} + +func (x *ChannelOidb0Xf88Rsp) GetProfile() *GuildUserProfile { + if x != nil { + return x.Profile + } + return nil +} + +type ChannelOidb0Xfc9Rsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Profile *GuildUserProfile `protobuf:"bytes,1,opt,name=profile" json:"profile,omitempty"` +} + +func (x *ChannelOidb0Xfc9Rsp) Reset() { + *x = ChannelOidb0Xfc9Rsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0Xfc9Rsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0Xfc9Rsp) ProtoMessage() {} + +func (x *ChannelOidb0Xfc9Rsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0Xfc9Rsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0Xfc9Rsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{2} +} + +func (x *ChannelOidb0Xfc9Rsp) GetProfile() *GuildUserProfile { + if x != nil { + return x.Profile + } + return nil +} + +type ChannelOidb0Xf57Rsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rsp *GuildMetaRsp `protobuf:"bytes,1,opt,name=rsp" json:"rsp,omitempty"` +} + +func (x *ChannelOidb0Xf57Rsp) Reset() { + *x = ChannelOidb0Xf57Rsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0Xf57Rsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0Xf57Rsp) ProtoMessage() {} + +func (x *ChannelOidb0Xf57Rsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0Xf57Rsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0Xf57Rsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{3} +} + +func (x *ChannelOidb0Xf57Rsp) GetRsp() *GuildMetaRsp { + if x != nil { + return x.Rsp + } + return nil +} + +type ChannelOidb0Xf55Rsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Info *GuildChannelInfo `protobuf:"bytes,1,opt,name=info" json:"info,omitempty"` +} + +func (x *ChannelOidb0Xf55Rsp) Reset() { + *x = ChannelOidb0Xf55Rsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0Xf55Rsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0Xf55Rsp) ProtoMessage() {} + +func (x *ChannelOidb0Xf55Rsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0Xf55Rsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0Xf55Rsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{4} +} + +func (x *ChannelOidb0Xf55Rsp) GetInfo() *GuildChannelInfo { + if x != nil { + return x.Info + } + return nil +} + +type ChannelOidb0Xf5DRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rsp *ChannelListRsp `protobuf:"bytes,1,opt,name=rsp" json:"rsp,omitempty"` +} + +func (x *ChannelOidb0Xf5DRsp) Reset() { + *x = ChannelOidb0Xf5DRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelOidb0Xf5DRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelOidb0Xf5DRsp) ProtoMessage() {} + +func (x *ChannelOidb0Xf5DRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelOidb0Xf5DRsp.ProtoReflect.Descriptor instead. +func (*ChannelOidb0Xf5DRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{5} +} + +func (x *ChannelOidb0Xf5DRsp) GetRsp() *ChannelListRsp { + if x != nil { + return x.Rsp + } + return nil +} + +type GuildMetaRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,3,opt,name=guildId" json:"guildId,omitempty"` + Meta *GuildMeta `protobuf:"bytes,4,opt,name=meta" json:"meta,omitempty"` +} + +func (x *GuildMetaRsp) Reset() { + *x = GuildMetaRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMetaRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMetaRsp) ProtoMessage() {} + +func (x *GuildMetaRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildMetaRsp.ProtoReflect.Descriptor instead. +func (*GuildMetaRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{6} +} + +func (x *GuildMetaRsp) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildMetaRsp) GetMeta() *GuildMeta { + if x != nil { + return x.Meta + } + return nil +} + +type ChannelListRsp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` + Channels []*GuildChannelInfo `protobuf:"bytes,2,rep,name=channels" json:"channels,omitempty"` // 5: Category infos +} + +func (x *ChannelListRsp) Reset() { + *x = ChannelListRsp{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChannelListRsp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChannelListRsp) ProtoMessage() {} + +func (x *ChannelListRsp) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChannelListRsp.ProtoReflect.Descriptor instead. +func (*ChannelListRsp) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{7} +} + +func (x *ChannelListRsp) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *ChannelListRsp) GetChannels() []*GuildChannelInfo { + if x != nil { + return x.Channels + } + return nil +} + +type GuildAdminInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Admins []*GuildMemberInfo `protobuf:"bytes,2,rep,name=admins" json:"admins,omitempty"` +} + +func (x *GuildAdminInfo) Reset() { + *x = GuildAdminInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildAdminInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildAdminInfo) ProtoMessage() {} + +func (x *GuildAdminInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildAdminInfo.ProtoReflect.Descriptor instead. +func (*GuildAdminInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{8} +} + +func (x *GuildAdminInfo) GetAdmins() []*GuildMemberInfo { + if x != nil { + return x.Admins + } + return nil +} + +type GuildMemberInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` + Nickname *string `protobuf:"bytes,3,opt,name=nickname" json:"nickname,omitempty"` + LastSpeakTime *int64 `protobuf:"varint,4,opt,name=lastSpeakTime" json:"lastSpeakTime,omitempty"` // uncertainty + Role *int32 `protobuf:"varint,5,opt,name=role" json:"role,omitempty"` // uncertainty + TinyId *uint64 `protobuf:"varint,8,opt,name=tinyId" json:"tinyId,omitempty"` +} + +func (x *GuildMemberInfo) Reset() { + *x = GuildMemberInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMemberInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMemberInfo) ProtoMessage() {} + +func (x *GuildMemberInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildMemberInfo.ProtoReflect.Descriptor instead. +func (*GuildMemberInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{9} +} + +func (x *GuildMemberInfo) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *GuildMemberInfo) GetNickname() string { + if x != nil && x.Nickname != nil { + return *x.Nickname + } + return "" +} + +func (x *GuildMemberInfo) GetLastSpeakTime() int64 { + if x != nil && x.LastSpeakTime != nil { + return *x.LastSpeakTime + } + return 0 +} + +func (x *GuildMemberInfo) GetRole() int32 { + if x != nil && x.Role != nil { + return *x.Role + } + return 0 +} + +func (x *GuildMemberInfo) GetTinyId() uint64 { + if x != nil && x.TinyId != nil { + return *x.TinyId + } + return 0 +} + +// 频道系统用户资料 +type GuildUserProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TinyId *uint64 `protobuf:"varint,2,opt,name=tinyId" json:"tinyId,omitempty"` + Nickname *string `protobuf:"bytes,3,opt,name=nickname" json:"nickname,omitempty"` + AvatarUrl *string `protobuf:"bytes,6,opt,name=avatarUrl" json:"avatarUrl,omitempty"` + // 15: avatar url info + JoinTime *int64 `protobuf:"varint,16,opt,name=joinTime" json:"joinTime,omitempty"` // uncertainty +} + +func (x *GuildUserProfile) Reset() { + *x = GuildUserProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildUserProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildUserProfile) ProtoMessage() {} + +func (x *GuildUserProfile) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildUserProfile.ProtoReflect.Descriptor instead. +func (*GuildUserProfile) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{10} +} + +func (x *GuildUserProfile) GetTinyId() uint64 { + if x != nil && x.TinyId != nil { + return *x.TinyId + } + return 0 +} + +func (x *GuildUserProfile) GetNickname() string { + if x != nil && x.Nickname != nil { + return *x.Nickname + } + return "" +} + +func (x *GuildUserProfile) GetAvatarUrl() string { + if x != nil && x.AvatarUrl != nil { + return *x.AvatarUrl + } + return "" +} + +func (x *GuildUserProfile) GetJoinTime() int64 { + if x != nil && x.JoinTime != nil { + return *x.JoinTime + } + return 0 +} + +type GuildMeta struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GuildCode *uint64 `protobuf:"varint,2,opt,name=guildCode" json:"guildCode,omitempty"` + CreateTime *int64 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + MaxMemberCount *int64 `protobuf:"varint,5,opt,name=maxMemberCount" json:"maxMemberCount,omitempty"` + MemberCount *int64 `protobuf:"varint,6,opt,name=memberCount" json:"memberCount,omitempty"` + Name *string `protobuf:"bytes,8,opt,name=name" json:"name,omitempty"` + RobotMaxNum *int32 `protobuf:"varint,11,opt,name=robotMaxNum" json:"robotMaxNum,omitempty"` + AdminMaxNum *int32 `protobuf:"varint,12,opt,name=adminMaxNum" json:"adminMaxNum,omitempty"` + Profile *string `protobuf:"bytes,13,opt,name=profile" json:"profile,omitempty"` + AvatarSeq *int64 `protobuf:"varint,14,opt,name=avatarSeq" json:"avatarSeq,omitempty"` + OwnerId *uint64 `protobuf:"varint,18,opt,name=ownerId" json:"ownerId,omitempty"` + CoverSeq *int64 `protobuf:"varint,19,opt,name=coverSeq" json:"coverSeq,omitempty"` + ClientId *int32 `protobuf:"varint,20,opt,name=clientId" json:"clientId,omitempty"` +} + +func (x *GuildMeta) Reset() { + *x = GuildMeta{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildMeta) ProtoMessage() {} + +func (x *GuildMeta) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildMeta.ProtoReflect.Descriptor instead. +func (*GuildMeta) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{11} +} + +func (x *GuildMeta) GetGuildCode() uint64 { + if x != nil && x.GuildCode != nil { + return *x.GuildCode + } + return 0 +} + +func (x *GuildMeta) GetCreateTime() int64 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *GuildMeta) GetMaxMemberCount() int64 { + if x != nil && x.MaxMemberCount != nil { + return *x.MaxMemberCount + } + return 0 +} + +func (x *GuildMeta) GetMemberCount() int64 { + if x != nil && x.MemberCount != nil { + return *x.MemberCount + } + return 0 +} + +func (x *GuildMeta) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *GuildMeta) GetRobotMaxNum() int32 { + if x != nil && x.RobotMaxNum != nil { + return *x.RobotMaxNum + } + return 0 +} + +func (x *GuildMeta) GetAdminMaxNum() int32 { + if x != nil && x.AdminMaxNum != nil { + return *x.AdminMaxNum + } + return 0 +} + +func (x *GuildMeta) GetProfile() string { + if x != nil && x.Profile != nil { + return *x.Profile + } + return "" +} + +func (x *GuildMeta) GetAvatarSeq() int64 { + if x != nil && x.AvatarSeq != nil { + return *x.AvatarSeq + } + return 0 +} + +func (x *GuildMeta) GetOwnerId() uint64 { + if x != nil && x.OwnerId != nil { + return *x.OwnerId + } + return 0 +} + +func (x *GuildMeta) GetCoverSeq() int64 { + if x != nil && x.CoverSeq != nil { + return *x.CoverSeq + } + return 0 +} + +func (x *GuildMeta) GetClientId() int32 { + if x != nil && x.ClientId != nil { + return *x.ClientId + } + return 0 +} + +type GuildChannelInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChannelId *uint64 `protobuf:"varint,1,opt,name=channelId" json:"channelId,omitempty"` + ChannelName *string `protobuf:"bytes,2,opt,name=channelName" json:"channelName,omitempty"` + CreatorUin *int64 `protobuf:"varint,3,opt,name=creatorUin" json:"creatorUin,omitempty"` + CreateTime *int64 `protobuf:"varint,4,opt,name=createTime" json:"createTime,omitempty"` + GuildId *uint64 `protobuf:"varint,5,opt,name=guildId" json:"guildId,omitempty"` + FinalNotifyType *int32 `protobuf:"varint,6,opt,name=finalNotifyType" json:"finalNotifyType,omitempty"` + ChannelType *int32 `protobuf:"varint,7,opt,name=channelType" json:"channelType,omitempty"` + TalkPermission *int32 `protobuf:"varint,8,opt,name=talkPermission" json:"talkPermission,omitempty"` + // 11 - 14 : MsgInfo + CreatorTinyId *uint64 `protobuf:"varint,15,opt,name=creatorTinyId" json:"creatorTinyId,omitempty"` + // 16: Member info ? + VisibleType *int32 `protobuf:"varint,22,opt,name=visibleType" json:"visibleType,omitempty"` + TopMsg *GuildChannelTopMsgInfo `protobuf:"bytes,28,opt,name=topMsg" json:"topMsg,omitempty"` + CurrentSlowModeKey *int32 `protobuf:"varint,31,opt,name=currentSlowModeKey" json:"currentSlowModeKey,omitempty"` + SlowModeInfos []*GuildChannelSlowModeInfo `protobuf:"bytes,32,rep,name=slowModeInfos" json:"slowModeInfos,omitempty"` +} + +func (x *GuildChannelInfo) Reset() { + *x = GuildChannelInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildChannelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildChannelInfo) ProtoMessage() {} + +func (x *GuildChannelInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildChannelInfo.ProtoReflect.Descriptor instead. +func (*GuildChannelInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{12} +} + +func (x *GuildChannelInfo) GetChannelId() uint64 { + if x != nil && x.ChannelId != nil { + return *x.ChannelId + } + return 0 +} + +func (x *GuildChannelInfo) GetChannelName() string { + if x != nil && x.ChannelName != nil { + return *x.ChannelName + } + return "" +} + +func (x *GuildChannelInfo) GetCreatorUin() int64 { + if x != nil && x.CreatorUin != nil { + return *x.CreatorUin + } + return 0 +} + +func (x *GuildChannelInfo) GetCreateTime() int64 { + if x != nil && x.CreateTime != nil { + return *x.CreateTime + } + return 0 +} + +func (x *GuildChannelInfo) GetGuildId() uint64 { + if x != nil && x.GuildId != nil { + return *x.GuildId + } + return 0 +} + +func (x *GuildChannelInfo) GetFinalNotifyType() int32 { + if x != nil && x.FinalNotifyType != nil { + return *x.FinalNotifyType + } + return 0 +} + +func (x *GuildChannelInfo) GetChannelType() int32 { + if x != nil && x.ChannelType != nil { + return *x.ChannelType + } + return 0 +} + +func (x *GuildChannelInfo) GetTalkPermission() int32 { + if x != nil && x.TalkPermission != nil { + return *x.TalkPermission + } + return 0 +} + +func (x *GuildChannelInfo) GetCreatorTinyId() uint64 { + if x != nil && x.CreatorTinyId != nil { + return *x.CreatorTinyId + } + return 0 +} + +func (x *GuildChannelInfo) GetVisibleType() int32 { + if x != nil && x.VisibleType != nil { + return *x.VisibleType + } + return 0 +} + +func (x *GuildChannelInfo) GetTopMsg() *GuildChannelTopMsgInfo { + if x != nil { + return x.TopMsg + } + return nil +} + +func (x *GuildChannelInfo) GetCurrentSlowModeKey() int32 { + if x != nil && x.CurrentSlowModeKey != nil { + return *x.CurrentSlowModeKey + } + return 0 +} + +func (x *GuildChannelInfo) GetSlowModeInfos() []*GuildChannelSlowModeInfo { + if x != nil { + return x.SlowModeInfos + } + return nil +} + +type GuildChannelSlowModeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SlowModeKey *int32 `protobuf:"varint,1,opt,name=slowModeKey" json:"slowModeKey,omitempty"` + SpeakFrequency *int32 `protobuf:"varint,2,opt,name=speakFrequency" json:"speakFrequency,omitempty"` + SlowModeCircle *int32 `protobuf:"varint,3,opt,name=slowModeCircle" json:"slowModeCircle,omitempty"` + SlowModeText *string `protobuf:"bytes,4,opt,name=slowModeText" json:"slowModeText,omitempty"` +} + +func (x *GuildChannelSlowModeInfo) Reset() { + *x = GuildChannelSlowModeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildChannelSlowModeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildChannelSlowModeInfo) ProtoMessage() {} + +func (x *GuildChannelSlowModeInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildChannelSlowModeInfo.ProtoReflect.Descriptor instead. +func (*GuildChannelSlowModeInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{13} +} + +func (x *GuildChannelSlowModeInfo) GetSlowModeKey() int32 { + if x != nil && x.SlowModeKey != nil { + return *x.SlowModeKey + } + return 0 +} + +func (x *GuildChannelSlowModeInfo) GetSpeakFrequency() int32 { + if x != nil && x.SpeakFrequency != nil { + return *x.SpeakFrequency + } + return 0 +} + +func (x *GuildChannelSlowModeInfo) GetSlowModeCircle() int32 { + if x != nil && x.SlowModeCircle != nil { + return *x.SlowModeCircle + } + return 0 +} + +func (x *GuildChannelSlowModeInfo) GetSlowModeText() string { + if x != nil && x.SlowModeText != nil { + return *x.SlowModeText + } + return "" +} + +type GuildChannelTopMsgInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TopMsgSeq *uint64 `protobuf:"varint,1,opt,name=topMsgSeq" json:"topMsgSeq,omitempty"` + TopMsgTime *int64 `protobuf:"varint,2,opt,name=topMsgTime" json:"topMsgTime,omitempty"` + TopMsgOperatorTinyId *uint64 `protobuf:"varint,3,opt,name=topMsgOperatorTinyId" json:"topMsgOperatorTinyId,omitempty"` +} + +func (x *GuildChannelTopMsgInfo) Reset() { + *x = GuildChannelTopMsgInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_channel_unknown_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildChannelTopMsgInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildChannelTopMsgInfo) ProtoMessage() {} + +func (x *GuildChannelTopMsgInfo) ProtoReflect() protoreflect.Message { + mi := &file_pb_channel_unknown_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GuildChannelTopMsgInfo.ProtoReflect.Descriptor instead. +func (*GuildChannelTopMsgInfo) Descriptor() ([]byte, []int) { + return file_pb_channel_unknown_proto_rawDescGZIP(), []int{14} +} + +func (x *GuildChannelTopMsgInfo) GetTopMsgSeq() uint64 { + if x != nil && x.TopMsgSeq != nil { + return *x.TopMsgSeq + } + return 0 +} + +func (x *GuildChannelTopMsgInfo) GetTopMsgTime() int64 { + if x != nil && x.TopMsgTime != nil { + return *x.TopMsgTime + } + return 0 +} + +func (x *GuildChannelTopMsgInfo) GetTopMsgOperatorTinyId() uint64 { + if x != nil && x.TopMsgOperatorTinyId != nil { + return *x.TopMsgOperatorTinyId + } + return 0 +} + +var File_pb_channel_unknown_proto protoreflect.FileDescriptor + +var file_pb_channel_unknown_proto_rawDesc = []byte{ + 0x0a, 0x18, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x75, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0xc8, 0x01, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, + 0x69, 0x64, 0x62, 0x30, 0x78, 0x66, 0x35, 0x62, 0x52, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x62, 0x6f, 0x74, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, + 0x6f, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4a, + 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x69, 0x64, 0x62, 0x30, 0x78, 0x66, + 0x38, 0x38, 0x52, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x4a, 0x0a, 0x13, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x69, 0x64, 0x62, 0x30, 0x78, 0x66, 0x63, 0x39, 0x52, 0x73, + 0x70, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x3e, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4f, 0x69, 0x64, 0x62, 0x30, 0x78, 0x66, 0x35, 0x37, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, + 0x03, 0x72, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x73, + 0x70, 0x52, 0x03, 0x72, 0x73, 0x70, 0x22, 0x44, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4f, 0x69, 0x64, 0x62, 0x30, 0x78, 0x66, 0x35, 0x35, 0x52, 0x73, 0x70, 0x12, 0x2d, 0x0a, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x40, 0x0a, 0x13, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x69, 0x64, 0x62, 0x30, 0x78, 0x66, 0x35, 0x64, + 0x52, 0x73, 0x70, 0x12, 0x29, 0x0a, 0x03, 0x72, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x73, 0x70, 0x52, 0x03, 0x72, 0x73, 0x70, 0x22, 0x50, + 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, + 0x22, 0x61, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x08, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x22, 0x42, 0x0a, 0x0e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x06, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x70, 0x65, 0x61, 0x6b, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x22, + 0x80, 0x01, 0x0a, 0x10, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x74, + 0x61, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0xf5, 0x02, 0x0a, 0x09, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, + 0x61, 0x74, 0x61, 0x72, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x61, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x71, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x65, 0x71, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x9a, 0x04, 0x0a, 0x10, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x69, 0x6e, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x69, 0x6e, + 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x6c, 0x6b, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, + 0x61, 0x6c, 0x6b, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, + 0x79, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x69, 0x73, 0x69, 0x62, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x4d, + 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x2e, + 0x0a, 0x12, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, + 0x65, 0x4b, 0x65, 0x79, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x53, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x47, + 0x0a, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, + 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x6c, 0x6f, 0x77, + 0x4d, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, + 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x6c, 0x6f, 0x77, 0x4d, + 0x6f, 0x64, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x46, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x73, 0x70, 0x65, 0x61, 0x6b, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x26, + 0x0a, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, + 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6c, 0x6f, 0x77, 0x4d, 0x6f, + 0x64, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6c, + 0x6f, 0x77, 0x4d, 0x6f, 0x64, 0x65, 0x54, 0x65, 0x78, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x16, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x54, 0x6f, 0x70, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x14, 0x74, 0x6f, 0x70, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x54, 0x69, 0x6e, 0x79, 0x49, 0x64, 0x42, 0x14, 0x5a, 0x12, 0x70, 0x62, 0x2f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x3b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, +} + +var ( + file_pb_channel_unknown_proto_rawDescOnce sync.Once + file_pb_channel_unknown_proto_rawDescData = file_pb_channel_unknown_proto_rawDesc +) + +func file_pb_channel_unknown_proto_rawDescGZIP() []byte { + file_pb_channel_unknown_proto_rawDescOnce.Do(func() { + file_pb_channel_unknown_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_unknown_proto_rawDescData) + }) + return file_pb_channel_unknown_proto_rawDescData +} + +var file_pb_channel_unknown_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_pb_channel_unknown_proto_goTypes = []interface{}{ + (*ChannelOidb0Xf5BRsp)(nil), // 0: channel.ChannelOidb0xf5bRsp + (*ChannelOidb0Xf88Rsp)(nil), // 1: channel.ChannelOidb0xf88Rsp + (*ChannelOidb0Xfc9Rsp)(nil), // 2: channel.ChannelOidb0xfc9Rsp + (*ChannelOidb0Xf57Rsp)(nil), // 3: channel.ChannelOidb0xf57Rsp + (*ChannelOidb0Xf55Rsp)(nil), // 4: channel.ChannelOidb0xf55Rsp + (*ChannelOidb0Xf5DRsp)(nil), // 5: channel.ChannelOidb0xf5dRsp + (*GuildMetaRsp)(nil), // 6: channel.GuildMetaRsp + (*ChannelListRsp)(nil), // 7: channel.ChannelListRsp + (*GuildAdminInfo)(nil), // 8: channel.GuildAdminInfo + (*GuildMemberInfo)(nil), // 9: channel.GuildMemberInfo + (*GuildUserProfile)(nil), // 10: channel.GuildUserProfile + (*GuildMeta)(nil), // 11: channel.GuildMeta + (*GuildChannelInfo)(nil), // 12: channel.GuildChannelInfo + (*GuildChannelSlowModeInfo)(nil), // 13: channel.GuildChannelSlowModeInfo + (*GuildChannelTopMsgInfo)(nil), // 14: channel.GuildChannelTopMsgInfo +} +var file_pb_channel_unknown_proto_depIdxs = []int32{ + 9, // 0: channel.ChannelOidb0xf5bRsp.bots:type_name -> channel.GuildMemberInfo + 9, // 1: channel.ChannelOidb0xf5bRsp.members:type_name -> channel.GuildMemberInfo + 8, // 2: channel.ChannelOidb0xf5bRsp.adminInfo:type_name -> channel.GuildAdminInfo + 10, // 3: channel.ChannelOidb0xf88Rsp.profile:type_name -> channel.GuildUserProfile + 10, // 4: channel.ChannelOidb0xfc9Rsp.profile:type_name -> channel.GuildUserProfile + 6, // 5: channel.ChannelOidb0xf57Rsp.rsp:type_name -> channel.GuildMetaRsp + 12, // 6: channel.ChannelOidb0xf55Rsp.info:type_name -> channel.GuildChannelInfo + 7, // 7: channel.ChannelOidb0xf5dRsp.rsp:type_name -> channel.ChannelListRsp + 11, // 8: channel.GuildMetaRsp.meta:type_name -> channel.GuildMeta + 12, // 9: channel.ChannelListRsp.channels:type_name -> channel.GuildChannelInfo + 9, // 10: channel.GuildAdminInfo.admins:type_name -> channel.GuildMemberInfo + 14, // 11: channel.GuildChannelInfo.topMsg:type_name -> channel.GuildChannelTopMsgInfo + 13, // 12: channel.GuildChannelInfo.slowModeInfos:type_name -> channel.GuildChannelSlowModeInfo + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_pb_channel_unknown_proto_init() } +func file_pb_channel_unknown_proto_init() { + if File_pb_channel_unknown_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_pb_channel_unknown_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelOidb0Xf5BRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelOidb0Xf88Rsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelOidb0Xfc9Rsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelOidb0Xf57Rsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelOidb0Xf55Rsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelOidb0Xf5DRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMetaRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChannelListRsp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildAdminInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMemberInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildUserProfile); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildMeta); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildChannelInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildChannelSlowModeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_channel_unknown_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildChannelTopMsgInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_pb_channel_unknown_proto_rawDesc, + NumEnums: 0, + NumMessages: 15, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_pb_channel_unknown_proto_goTypes, + DependencyIndexes: file_pb_channel_unknown_proto_depIdxs, + MessageInfos: file_pb_channel_unknown_proto_msgTypes, + }.Build() + File_pb_channel_unknown_proto = out.File + file_pb_channel_unknown_proto_rawDesc = nil + file_pb_channel_unknown_proto_goTypes = nil + file_pb_channel_unknown_proto_depIdxs = nil +} diff --git a/client/pb/channel/unknown.proto b/client/pb/channel/unknown.proto new file mode 100644 index 00000000..133dec86 --- /dev/null +++ b/client/pb/channel/unknown.proto @@ -0,0 +1,123 @@ +// 存放所有未知的结构体, 均为手动分析复原 +syntax = "proto2"; + +package channel; + +option go_package = "pb/channel;channel"; + +message ChannelOidb0xf5bRsp { + optional uint64 guildId = 1; + repeated GuildMemberInfo bots = 4; + repeated GuildMemberInfo members = 5; + optional GuildAdminInfo adminInfo = 25; +} + +message ChannelOidb0xf88Rsp { + optional GuildUserProfile profile = 1; +} + +message ChannelOidb0xfc9Rsp { + optional GuildUserProfile profile = 1; +} + +message ChannelOidb0xf57Rsp { + optional GuildMetaRsp rsp = 1; +} + +message ChannelOidb0xf55Rsp { + optional GuildChannelInfo info = 1; +} + +message ChannelOidb0xf5dRsp { + optional ChannelListRsp rsp = 1; +} + +message GuildMetaRsp { + optional uint64 guildId = 3; + optional GuildMeta meta = 4; +} + +message ChannelListRsp { + optional uint64 guildId = 1; + repeated GuildChannelInfo channels = 2; + // 5: Category infos +} + +message GuildAdminInfo { + repeated GuildMemberInfo admins = 2; +} + +message GuildMemberInfo { + optional string title = 2; + optional string nickname = 3; + optional int64 lastSpeakTime = 4; // uncertainty + optional int32 role = 5; // uncertainty + optional uint64 tinyId = 8; +} + +// 频道系统用户资料 +message GuildUserProfile { + optional uint64 tinyId = 2; + optional string nickname = 3; + optional string avatarUrl = 6; + // 15: avatar url info + optional int64 joinTime = 16; // uncertainty + // 22 cards + // 23 display cards + // 25 current cards *uncertainty +} + +message GuildMeta { + optional uint64 guildCode = 2; + optional int64 createTime = 4; + optional int64 maxMemberCount = 5; + optional int64 memberCount = 6; + optional string name = 8; + optional int32 robotMaxNum = 11; + optional int32 adminMaxNum = 12; + optional string profile = 13; + optional int64 avatarSeq = 14; + optional uint64 ownerId = 18; + optional int64 coverSeq = 19; + optional int32 clientId = 20; +} + +message GuildChannelInfo { + optional uint64 channelId = 1; + optional string channelName = 2; + optional int64 creatorUin = 3; + optional int64 createTime = 4; + optional uint64 guildId = 5; + optional int32 finalNotifyType = 6; + optional int32 channelType = 7; + optional int32 talkPermission = 8; + // 11 - 14 : MsgInfo + optional uint64 creatorTinyId = 15; + // 16: Member info ? + optional int32 visibleType = 22; + optional GuildChannelTopMsgInfo topMsg = 28; + optional int32 currentSlowModeKey = 31; + repeated GuildChannelSlowModeInfo slowModeInfos = 32; +} + +message GuildChannelSlowModeInfo { + optional int32 slowModeKey = 1; + optional int32 speakFrequency = 2; + optional int32 slowModeCircle = 3; + optional string slowModeText = 4; +} + +message GuildChannelTopMsgInfo { + optional uint64 topMsgSeq = 1; + optional int64 topMsgTime = 2; + optional uint64 topMsgOperatorTinyId = 3; +} +/* +// 个性档案卡片 +message GuildMemberProfileCard { + optional int32 appid = 1; + optional string name = 2; + +} + */ + diff --git a/client/pb/msg/msg.pb.go b/client/pb/msg/msg.pb.go index f5d9403b..e78a8a5d 100644 --- a/client/pb/msg/msg.pb.go +++ b/client/pb/msg/msg.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.27.1 // protoc v3.14.0 -// source: msg.proto +// source: pb/msg/msg.proto package msg @@ -54,11 +54,11 @@ func (x SyncFlag) String() string { } func (SyncFlag) Descriptor() protoreflect.EnumDescriptor { - return file_msg_proto_enumTypes[0].Descriptor() + return file_pb_msg_msg_proto_enumTypes[0].Descriptor() } func (SyncFlag) Type() protoreflect.EnumType { - return &file_msg_proto_enumTypes[0] + return &file_pb_msg_msg_proto_enumTypes[0] } func (x SyncFlag) Number() protoreflect.EnumNumber { @@ -77,7 +77,7 @@ func (x *SyncFlag) UnmarshalJSON(b []byte) error { // Deprecated: Use SyncFlag.Descriptor instead. func (SyncFlag) EnumDescriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{0} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{0} } type GetMessageRequest struct { @@ -85,7 +85,7 @@ type GetMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SyncFlag *SyncFlag `protobuf:"varint,1,opt,name=syncFlag,enum=SyncFlag" json:"syncFlag,omitempty"` + SyncFlag *SyncFlag `protobuf:"varint,1,opt,name=syncFlag,enum=msg.SyncFlag" json:"syncFlag,omitempty"` SyncCookie []byte `protobuf:"bytes,2,opt,name=syncCookie" json:"syncCookie,omitempty"` RambleFlag *int32 `protobuf:"varint,3,opt,name=rambleFlag" json:"rambleFlag,omitempty"` LatestRambleNumber *int32 `protobuf:"varint,4,opt,name=latestRambleNumber" json:"latestRambleNumber,omitempty"` @@ -102,7 +102,7 @@ type GetMessageRequest struct { func (x *GetMessageRequest) Reset() { *x = GetMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[0] + mi := &file_pb_msg_msg_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -115,7 +115,7 @@ func (x *GetMessageRequest) String() string { func (*GetMessageRequest) ProtoMessage() {} func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[0] + mi := &file_pb_msg_msg_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -128,7 +128,7 @@ func (x *GetMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessageRequest.ProtoReflect.Descriptor instead. func (*GetMessageRequest) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{0} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{0} } func (x *GetMessageRequest) GetSyncFlag() SyncFlag { @@ -239,7 +239,7 @@ type SendMessageRequest struct { func (x *SendMessageRequest) Reset() { *x = SendMessageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[1] + mi := &file_pb_msg_msg_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -252,7 +252,7 @@ func (x *SendMessageRequest) String() string { func (*SendMessageRequest) ProtoMessage() {} func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[1] + mi := &file_pb_msg_msg_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -265,7 +265,7 @@ func (x *SendMessageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead. func (*SendMessageRequest) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{1} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{1} } func (x *SendMessageRequest) GetRoutingHead() *RoutingHead { @@ -350,7 +350,7 @@ type SendMessageResponse struct { func (x *SendMessageResponse) Reset() { *x = SendMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[2] + mi := &file_pb_msg_msg_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -363,7 +363,7 @@ func (x *SendMessageResponse) String() string { func (*SendMessageResponse) ProtoMessage() {} func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[2] + mi := &file_pb_msg_msg_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -376,7 +376,7 @@ func (x *SendMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead. func (*SendMessageResponse) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{2} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{2} } func (x *SendMessageResponse) GetResult() int32 { @@ -405,7 +405,7 @@ type MsgWithDrawReq struct { func (x *MsgWithDrawReq) Reset() { *x = MsgWithDrawReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[3] + mi := &file_pb_msg_msg_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -418,7 +418,7 @@ func (x *MsgWithDrawReq) String() string { func (*MsgWithDrawReq) ProtoMessage() {} func (x *MsgWithDrawReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[3] + mi := &file_pb_msg_msg_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -431,7 +431,7 @@ func (x *MsgWithDrawReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgWithDrawReq.ProtoReflect.Descriptor instead. func (*MsgWithDrawReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{3} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{3} } func (x *MsgWithDrawReq) GetC2CWithDraw() []*C2CMsgWithDrawReq { @@ -462,7 +462,7 @@ type C2CMsgWithDrawReq struct { func (x *C2CMsgWithDrawReq) Reset() { *x = C2CMsgWithDrawReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[4] + mi := &file_pb_msg_msg_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -475,7 +475,7 @@ func (x *C2CMsgWithDrawReq) String() string { func (*C2CMsgWithDrawReq) ProtoMessage() {} func (x *C2CMsgWithDrawReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[4] + mi := &file_pb_msg_msg_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -488,7 +488,7 @@ func (x *C2CMsgWithDrawReq) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CMsgWithDrawReq.ProtoReflect.Descriptor instead. func (*C2CMsgWithDrawReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{4} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{4} } func (x *C2CMsgWithDrawReq) GetMsgInfo() []*C2CMsgInfo { @@ -534,7 +534,7 @@ type GroupMsgWithDrawReq struct { func (x *GroupMsgWithDrawReq) Reset() { *x = GroupMsgWithDrawReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[5] + mi := &file_pb_msg_msg_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -547,7 +547,7 @@ func (x *GroupMsgWithDrawReq) String() string { func (*GroupMsgWithDrawReq) ProtoMessage() {} func (x *GroupMsgWithDrawReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[5] + mi := &file_pb_msg_msg_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -560,7 +560,7 @@ func (x *GroupMsgWithDrawReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMsgWithDrawReq.ProtoReflect.Descriptor instead. func (*GroupMsgWithDrawReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{5} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{5} } func (x *GroupMsgWithDrawReq) GetSubCmd() int32 { @@ -610,7 +610,7 @@ type MsgWithDrawResp struct { func (x *MsgWithDrawResp) Reset() { *x = MsgWithDrawResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[6] + mi := &file_pb_msg_msg_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -623,7 +623,7 @@ func (x *MsgWithDrawResp) String() string { func (*MsgWithDrawResp) ProtoMessage() {} func (x *MsgWithDrawResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[6] + mi := &file_pb_msg_msg_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -636,7 +636,7 @@ func (x *MsgWithDrawResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgWithDrawResp.ProtoReflect.Descriptor instead. func (*MsgWithDrawResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{6} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{6} } func (x *MsgWithDrawResp) GetC2CWithDraw() []*C2CMsgWithDrawResp { @@ -665,7 +665,7 @@ type C2CMsgWithDrawResp struct { func (x *C2CMsgWithDrawResp) Reset() { *x = C2CMsgWithDrawResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[7] + mi := &file_pb_msg_msg_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -678,7 +678,7 @@ func (x *C2CMsgWithDrawResp) String() string { func (*C2CMsgWithDrawResp) ProtoMessage() {} func (x *C2CMsgWithDrawResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[7] + mi := &file_pb_msg_msg_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -691,7 +691,7 @@ func (x *C2CMsgWithDrawResp) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CMsgWithDrawResp.ProtoReflect.Descriptor instead. func (*C2CMsgWithDrawResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{7} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{7} } func (x *C2CMsgWithDrawResp) GetResult() int32 { @@ -720,7 +720,7 @@ type GroupMsgWithDrawResp struct { func (x *GroupMsgWithDrawResp) Reset() { *x = GroupMsgWithDrawResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[8] + mi := &file_pb_msg_msg_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -733,7 +733,7 @@ func (x *GroupMsgWithDrawResp) String() string { func (*GroupMsgWithDrawResp) ProtoMessage() {} func (x *GroupMsgWithDrawResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[8] + mi := &file_pb_msg_msg_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -746,7 +746,7 @@ func (x *GroupMsgWithDrawResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMsgWithDrawResp.ProtoReflect.Descriptor instead. func (*GroupMsgWithDrawResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{8} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{8} } func (x *GroupMsgWithDrawResp) GetResult() int32 { @@ -776,7 +776,7 @@ type GroupMsgInfo struct { func (x *GroupMsgInfo) Reset() { *x = GroupMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[9] + mi := &file_pb_msg_msg_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -789,7 +789,7 @@ func (x *GroupMsgInfo) String() string { func (*GroupMsgInfo) ProtoMessage() {} func (x *GroupMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[9] + mi := &file_pb_msg_msg_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -802,7 +802,7 @@ func (x *GroupMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupMsgInfo.ProtoReflect.Descriptor instead. func (*GroupMsgInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{9} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{9} } func (x *GroupMsgInfo) GetMsgSeq() int32 { @@ -847,7 +847,7 @@ type C2CMsgInfo struct { func (x *C2CMsgInfo) Reset() { *x = C2CMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[10] + mi := &file_pb_msg_msg_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -860,7 +860,7 @@ func (x *C2CMsgInfo) String() string { func (*C2CMsgInfo) ProtoMessage() {} func (x *C2CMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[10] + mi := &file_pb_msg_msg_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -873,7 +873,7 @@ func (x *C2CMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CMsgInfo.ProtoReflect.Descriptor instead. func (*C2CMsgInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{10} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{10} } func (x *C2CMsgInfo) GetFromUin() int64 { @@ -967,7 +967,7 @@ type RoutingHead struct { func (x *RoutingHead) Reset() { *x = RoutingHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[11] + mi := &file_pb_msg_msg_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +980,7 @@ func (x *RoutingHead) String() string { func (*RoutingHead) ProtoMessage() {} func (x *RoutingHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[11] + mi := &file_pb_msg_msg_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +993,7 @@ func (x *RoutingHead) ProtoReflect() protoreflect.Message { // Deprecated: Use RoutingHead.ProtoReflect.Descriptor instead. func (*RoutingHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{11} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{11} } func (x *RoutingHead) GetC2C() *C2C { @@ -1036,7 +1036,7 @@ type WPATmp struct { func (x *WPATmp) Reset() { *x = WPATmp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[12] + mi := &file_pb_msg_msg_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1049,7 +1049,7 @@ func (x *WPATmp) String() string { func (*WPATmp) ProtoMessage() {} func (x *WPATmp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[12] + mi := &file_pb_msg_msg_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1062,7 +1062,7 @@ func (x *WPATmp) ProtoReflect() protoreflect.Message { // Deprecated: Use WPATmp.ProtoReflect.Descriptor instead. func (*WPATmp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{12} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{12} } func (x *WPATmp) GetToUin() uint64 { @@ -1090,7 +1090,7 @@ type C2C struct { func (x *C2C) Reset() { *x = C2C{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[13] + mi := &file_pb_msg_msg_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1103,7 +1103,7 @@ func (x *C2C) String() string { func (*C2C) ProtoMessage() {} func (x *C2C) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[13] + mi := &file_pb_msg_msg_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1116,7 +1116,7 @@ func (x *C2C) ProtoReflect() protoreflect.Message { // Deprecated: Use C2C.ProtoReflect.Descriptor instead. func (*C2C) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{13} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{13} } func (x *C2C) GetToUin() int64 { @@ -1137,7 +1137,7 @@ type Grp struct { func (x *Grp) Reset() { *x = Grp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[14] + mi := &file_pb_msg_msg_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1150,7 +1150,7 @@ func (x *Grp) String() string { func (*Grp) ProtoMessage() {} func (x *Grp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[14] + mi := &file_pb_msg_msg_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1163,7 +1163,7 @@ func (x *Grp) ProtoReflect() protoreflect.Message { // Deprecated: Use Grp.ProtoReflect.Descriptor instead. func (*Grp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{14} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{14} } func (x *Grp) GetGroupCode() int64 { @@ -1185,7 +1185,7 @@ type GrpTmp struct { func (x *GrpTmp) Reset() { *x = GrpTmp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[15] + mi := &file_pb_msg_msg_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1198,7 +1198,7 @@ func (x *GrpTmp) String() string { func (*GrpTmp) ProtoMessage() {} func (x *GrpTmp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[15] + mi := &file_pb_msg_msg_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1211,7 +1211,7 @@ func (x *GrpTmp) ProtoReflect() protoreflect.Message { // Deprecated: Use GrpTmp.ProtoReflect.Descriptor instead. func (*GrpTmp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{15} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{15} } func (x *GrpTmp) GetGroupUin() int64 { @@ -1239,7 +1239,7 @@ type MsgCtrl struct { func (x *MsgCtrl) Reset() { *x = MsgCtrl{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[16] + mi := &file_pb_msg_msg_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1252,7 +1252,7 @@ func (x *MsgCtrl) String() string { func (*MsgCtrl) ProtoMessage() {} func (x *MsgCtrl) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[16] + mi := &file_pb_msg_msg_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1265,7 +1265,7 @@ func (x *MsgCtrl) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgCtrl.ProtoReflect.Descriptor instead. func (*MsgCtrl) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{16} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{16} } func (x *MsgCtrl) GetMsgFlag() int32 { @@ -1283,7 +1283,7 @@ type GetMessageResponse struct { Result *int32 `protobuf:"varint,1,opt,name=result" json:"result,omitempty"` ErrorMessage *string `protobuf:"bytes,2,opt,name=errorMessage" json:"errorMessage,omitempty"` SyncCookie []byte `protobuf:"bytes,3,opt,name=syncCookie" json:"syncCookie,omitempty"` - SyncFlag *SyncFlag `protobuf:"varint,4,opt,name=syncFlag,enum=SyncFlag" json:"syncFlag,omitempty"` + SyncFlag *SyncFlag `protobuf:"varint,4,opt,name=syncFlag,enum=msg.SyncFlag" json:"syncFlag,omitempty"` UinPairMsgs []*UinPairMessage `protobuf:"bytes,5,rep,name=uinPairMsgs" json:"uinPairMsgs,omitempty"` BindUin *int64 `protobuf:"varint,6,opt,name=bindUin" json:"bindUin,omitempty"` MsgRspType *int32 `protobuf:"varint,7,opt,name=msgRspType" json:"msgRspType,omitempty"` @@ -1295,7 +1295,7 @@ type GetMessageResponse struct { func (x *GetMessageResponse) Reset() { *x = GetMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[17] + mi := &file_pb_msg_msg_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1308,7 +1308,7 @@ func (x *GetMessageResponse) String() string { func (*GetMessageResponse) ProtoMessage() {} func (x *GetMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[17] + mi := &file_pb_msg_msg_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1321,7 +1321,7 @@ func (x *GetMessageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMessageResponse.ProtoReflect.Descriptor instead. func (*GetMessageResponse) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{17} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{17} } func (x *GetMessageResponse) GetResult() int32 { @@ -1409,7 +1409,7 @@ type PushMessagePacket struct { func (x *PushMessagePacket) Reset() { *x = PushMessagePacket{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[18] + mi := &file_pb_msg_msg_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1422,7 +1422,7 @@ func (x *PushMessagePacket) String() string { func (*PushMessagePacket) ProtoMessage() {} func (x *PushMessagePacket) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[18] + mi := &file_pb_msg_msg_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1435,7 +1435,7 @@ func (x *PushMessagePacket) ProtoReflect() protoreflect.Message { // Deprecated: Use PushMessagePacket.ProtoReflect.Descriptor instead. func (*PushMessagePacket) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{18} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{18} } func (x *PushMessagePacket) GetMessage() *Message { @@ -1487,7 +1487,7 @@ type UinPairMessage struct { func (x *UinPairMessage) Reset() { *x = UinPairMessage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[19] + mi := &file_pb_msg_msg_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1500,7 +1500,7 @@ func (x *UinPairMessage) String() string { func (*UinPairMessage) ProtoMessage() {} func (x *UinPairMessage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[19] + mi := &file_pb_msg_msg_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1513,7 +1513,7 @@ func (x *UinPairMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use UinPairMessage.ProtoReflect.Descriptor instead. func (*UinPairMessage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{19} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{19} } func (x *UinPairMessage) GetLastReadTime() int32 { @@ -1557,7 +1557,7 @@ type Message struct { func (x *Message) Reset() { *x = Message{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[20] + mi := &file_pb_msg_msg_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1570,7 +1570,7 @@ func (x *Message) String() string { func (*Message) ProtoMessage() {} func (x *Message) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[20] + mi := &file_pb_msg_msg_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1583,7 +1583,7 @@ func (x *Message) ProtoReflect() protoreflect.Message { // Deprecated: Use Message.ProtoReflect.Descriptor instead. func (*Message) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{20} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{20} } func (x *Message) GetHead() *MessageHead { @@ -1620,7 +1620,7 @@ type MessageBody struct { func (x *MessageBody) Reset() { *x = MessageBody{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[21] + mi := &file_pb_msg_msg_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1633,7 +1633,7 @@ func (x *MessageBody) String() string { func (*MessageBody) ProtoMessage() {} func (x *MessageBody) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[21] + mi := &file_pb_msg_msg_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1646,7 +1646,7 @@ func (x *MessageBody) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageBody.ProtoReflect.Descriptor instead. func (*MessageBody) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{21} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{21} } func (x *MessageBody) GetRichText() *RichText { @@ -1684,7 +1684,7 @@ type RichText struct { func (x *RichText) Reset() { *x = RichText{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[22] + mi := &file_pb_msg_msg_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1697,7 +1697,7 @@ func (x *RichText) String() string { func (*RichText) ProtoMessage() {} func (x *RichText) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[22] + mi := &file_pb_msg_msg_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1710,7 +1710,7 @@ func (x *RichText) ProtoReflect() protoreflect.Message { // Deprecated: Use RichText.ProtoReflect.Descriptor instead. func (*RichText) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{22} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{22} } func (x *RichText) GetAttr() *Attr { @@ -1804,7 +1804,7 @@ type Elem struct { func (x *Elem) Reset() { *x = Elem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[23] + mi := &file_pb_msg_msg_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1817,7 +1817,7 @@ func (x *Elem) String() string { func (*Elem) ProtoMessage() {} func (x *Elem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[23] + mi := &file_pb_msg_msg_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1830,7 +1830,7 @@ func (x *Elem) ProtoReflect() protoreflect.Message { // Deprecated: Use Elem.ProtoReflect.Descriptor instead. func (*Elem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{23} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{23} } func (x *Elem) GetText() *Text { @@ -1989,7 +1989,7 @@ type MarketFace struct { func (x *MarketFace) Reset() { *x = MarketFace{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[24] + mi := &file_pb_msg_msg_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2002,7 +2002,7 @@ func (x *MarketFace) String() string { func (*MarketFace) ProtoMessage() {} func (x *MarketFace) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[24] + mi := &file_pb_msg_msg_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2015,7 +2015,7 @@ func (x *MarketFace) ProtoReflect() protoreflect.Message { // Deprecated: Use MarketFace.ProtoReflect.Descriptor instead. func (*MarketFace) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{24} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{24} } func (x *MarketFace) GetFaceName() []byte { @@ -2133,7 +2133,7 @@ type ElemFlags2 struct { func (x *ElemFlags2) Reset() { *x = ElemFlags2{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[25] + mi := &file_pb_msg_msg_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2146,7 +2146,7 @@ func (x *ElemFlags2) String() string { func (*ElemFlags2) ProtoMessage() {} func (x *ElemFlags2) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[25] + mi := &file_pb_msg_msg_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2159,7 +2159,7 @@ func (x *ElemFlags2) ProtoReflect() protoreflect.Message { // Deprecated: Use ElemFlags2.ProtoReflect.Descriptor instead. func (*ElemFlags2) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{25} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{25} } func (x *ElemFlags2) GetColorTextId() uint32 { @@ -2276,7 +2276,7 @@ type PcSupportDef struct { func (x *PcSupportDef) Reset() { *x = PcSupportDef{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[26] + mi := &file_pb_msg_msg_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2289,7 +2289,7 @@ func (x *PcSupportDef) String() string { func (*PcSupportDef) ProtoMessage() {} func (x *PcSupportDef) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[26] + mi := &file_pb_msg_msg_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2302,7 +2302,7 @@ func (x *PcSupportDef) ProtoReflect() protoreflect.Message { // Deprecated: Use PcSupportDef.ProtoReflect.Descriptor instead. func (*PcSupportDef) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{26} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{26} } func (x *PcSupportDef) GetPcPtlBegin() uint32 { @@ -2360,7 +2360,7 @@ type CommonElem struct { func (x *CommonElem) Reset() { *x = CommonElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[27] + mi := &file_pb_msg_msg_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2373,7 +2373,7 @@ func (x *CommonElem) String() string { func (*CommonElem) ProtoMessage() {} func (x *CommonElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[27] + mi := &file_pb_msg_msg_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2386,7 +2386,7 @@ func (x *CommonElem) ProtoReflect() protoreflect.Message { // Deprecated: Use CommonElem.ProtoReflect.Descriptor instead. func (*CommonElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{27} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{27} } func (x *CommonElem) GetServiceType() int32 { @@ -2421,7 +2421,7 @@ type QQWalletMsg struct { func (x *QQWalletMsg) Reset() { *x = QQWalletMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[28] + mi := &file_pb_msg_msg_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2434,7 +2434,7 @@ func (x *QQWalletMsg) String() string { func (*QQWalletMsg) ProtoMessage() {} func (x *QQWalletMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[28] + mi := &file_pb_msg_msg_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2447,7 +2447,7 @@ func (x *QQWalletMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use QQWalletMsg.ProtoReflect.Descriptor instead. func (*QQWalletMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{28} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{28} } func (x *QQWalletMsg) GetAioBody() *QQWalletAioBody { @@ -2488,7 +2488,7 @@ type QQWalletAioBody struct { func (x *QQWalletAioBody) Reset() { *x = QQWalletAioBody{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[29] + mi := &file_pb_msg_msg_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2501,7 +2501,7 @@ func (x *QQWalletAioBody) String() string { func (*QQWalletAioBody) ProtoMessage() {} func (x *QQWalletAioBody) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[29] + mi := &file_pb_msg_msg_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2514,7 +2514,7 @@ func (x *QQWalletAioBody) ProtoReflect() protoreflect.Message { // Deprecated: Use QQWalletAioBody.ProtoReflect.Descriptor instead. func (*QQWalletAioBody) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{29} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{29} } func (x *QQWalletAioBody) GetSendUin() uint64 { @@ -2695,7 +2695,7 @@ type QQWalletAioElem struct { func (x *QQWalletAioElem) Reset() { *x = QQWalletAioElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[30] + mi := &file_pb_msg_msg_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2708,7 +2708,7 @@ func (x *QQWalletAioElem) String() string { func (*QQWalletAioElem) ProtoMessage() {} func (x *QQWalletAioElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[30] + mi := &file_pb_msg_msg_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2721,7 +2721,7 @@ func (x *QQWalletAioElem) ProtoReflect() protoreflect.Message { // Deprecated: Use QQWalletAioElem.ProtoReflect.Descriptor instead. func (*QQWalletAioElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{30} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{30} } func (x *QQWalletAioElem) GetBackground() uint32 { @@ -2886,7 +2886,7 @@ type RichMsg struct { func (x *RichMsg) Reset() { *x = RichMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[31] + mi := &file_pb_msg_msg_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2899,7 +2899,7 @@ func (x *RichMsg) String() string { func (*RichMsg) ProtoMessage() {} func (x *RichMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[31] + mi := &file_pb_msg_msg_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2912,7 +2912,7 @@ func (x *RichMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use RichMsg.ProtoReflect.Descriptor instead. func (*RichMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{31} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{31} } func (x *RichMsg) GetTemplate1() []byte { @@ -2965,7 +2965,7 @@ type CustomElem struct { func (x *CustomElem) Reset() { *x = CustomElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[32] + mi := &file_pb_msg_msg_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2978,7 +2978,7 @@ func (x *CustomElem) String() string { func (*CustomElem) ProtoMessage() {} func (x *CustomElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[32] + mi := &file_pb_msg_msg_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2991,7 +2991,7 @@ func (x *CustomElem) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomElem.ProtoReflect.Descriptor instead. func (*CustomElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{32} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{32} } func (x *CustomElem) GetDesc() []byte { @@ -3045,7 +3045,7 @@ type Text struct { func (x *Text) Reset() { *x = Text{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[33] + mi := &file_pb_msg_msg_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3058,7 +3058,7 @@ func (x *Text) String() string { func (*Text) ProtoMessage() {} func (x *Text) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[33] + mi := &file_pb_msg_msg_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3071,7 +3071,7 @@ func (x *Text) ProtoReflect() protoreflect.Message { // Deprecated: Use Text.ProtoReflect.Descriptor instead. func (*Text) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{33} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{33} } func (x *Text) GetStr() string { @@ -3136,7 +3136,7 @@ type Attr struct { func (x *Attr) Reset() { *x = Attr{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[34] + mi := &file_pb_msg_msg_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3149,7 +3149,7 @@ func (x *Attr) String() string { func (*Attr) ProtoMessage() {} func (x *Attr) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[34] + mi := &file_pb_msg_msg_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3162,7 +3162,7 @@ func (x *Attr) ProtoReflect() protoreflect.Message { // Deprecated: Use Attr.ProtoReflect.Descriptor instead. func (*Attr) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{34} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{34} } func (x *Attr) GetCodePage() int32 { @@ -3269,7 +3269,7 @@ type Ptt struct { func (x *Ptt) Reset() { *x = Ptt{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[35] + mi := &file_pb_msg_msg_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3282,7 +3282,7 @@ func (x *Ptt) String() string { func (*Ptt) ProtoMessage() {} func (x *Ptt) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[35] + mi := &file_pb_msg_msg_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3295,7 +3295,7 @@ func (x *Ptt) ProtoReflect() protoreflect.Message { // Deprecated: Use Ptt.ProtoReflect.Descriptor instead. func (*Ptt) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{35} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{35} } func (x *Ptt) GetFileType() int32 { @@ -3479,7 +3479,7 @@ type OnlineImage struct { func (x *OnlineImage) Reset() { *x = OnlineImage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[36] + mi := &file_pb_msg_msg_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3492,7 +3492,7 @@ func (x *OnlineImage) String() string { func (*OnlineImage) ProtoMessage() {} func (x *OnlineImage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[36] + mi := &file_pb_msg_msg_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3505,7 +3505,7 @@ func (x *OnlineImage) ProtoReflect() protoreflect.Message { // Deprecated: Use OnlineImage.ProtoReflect.Descriptor instead. func (*OnlineImage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{36} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{36} } func (x *OnlineImage) GetGuid() []byte { @@ -3565,7 +3565,7 @@ type NotOnlineImage struct { func (x *NotOnlineImage) Reset() { *x = NotOnlineImage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[37] + mi := &file_pb_msg_msg_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3578,7 +3578,7 @@ func (x *NotOnlineImage) String() string { func (*NotOnlineImage) ProtoMessage() {} func (x *NotOnlineImage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[37] + mi := &file_pb_msg_msg_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3591,7 +3591,7 @@ func (x *NotOnlineImage) ProtoReflect() protoreflect.Message { // Deprecated: Use NotOnlineImage.ProtoReflect.Descriptor instead. func (*NotOnlineImage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{37} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{37} } func (x *NotOnlineImage) GetFilePath() string { @@ -3805,7 +3805,7 @@ type NotOnlineFile struct { func (x *NotOnlineFile) Reset() { *x = NotOnlineFile{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[38] + mi := &file_pb_msg_msg_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3818,7 +3818,7 @@ func (x *NotOnlineFile) String() string { func (*NotOnlineFile) ProtoMessage() {} func (x *NotOnlineFile) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[38] + mi := &file_pb_msg_msg_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3831,7 +3831,7 @@ func (x *NotOnlineFile) ProtoReflect() protoreflect.Message { // Deprecated: Use NotOnlineFile.ProtoReflect.Descriptor instead. func (*NotOnlineFile) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{38} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{38} } func (x *NotOnlineFile) GetFileType() int32 { @@ -3979,7 +3979,7 @@ type TransElem struct { func (x *TransElem) Reset() { *x = TransElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[39] + mi := &file_pb_msg_msg_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3992,7 +3992,7 @@ func (x *TransElem) String() string { func (*TransElem) ProtoMessage() {} func (x *TransElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[39] + mi := &file_pb_msg_msg_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4005,7 +4005,7 @@ func (x *TransElem) ProtoReflect() protoreflect.Message { // Deprecated: Use TransElem.ProtoReflect.Descriptor instead. func (*TransElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{39} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{39} } func (x *TransElem) GetElemType() int32 { @@ -4044,7 +4044,7 @@ type ExtraInfo struct { func (x *ExtraInfo) Reset() { *x = ExtraInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[40] + mi := &file_pb_msg_msg_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4057,7 +4057,7 @@ func (x *ExtraInfo) String() string { func (*ExtraInfo) ProtoMessage() {} func (x *ExtraInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[40] + mi := &file_pb_msg_msg_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4070,7 +4070,7 @@ func (x *ExtraInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtraInfo.ProtoReflect.Descriptor instead. func (*ExtraInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{40} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{40} } func (x *ExtraInfo) GetNick() []byte { @@ -4177,7 +4177,7 @@ type GroupFile struct { func (x *GroupFile) Reset() { *x = GroupFile{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[41] + mi := &file_pb_msg_msg_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4190,7 +4190,7 @@ func (x *GroupFile) String() string { func (*GroupFile) ProtoMessage() {} func (x *GroupFile) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[41] + mi := &file_pb_msg_msg_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4203,7 +4203,7 @@ func (x *GroupFile) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupFile.ProtoReflect.Descriptor instead. func (*GroupFile) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{41} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{41} } func (x *GroupFile) GetFilename() []byte { @@ -4293,7 +4293,7 @@ type AnonymousGroupMessage struct { func (x *AnonymousGroupMessage) Reset() { *x = AnonymousGroupMessage{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[42] + mi := &file_pb_msg_msg_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4306,7 +4306,7 @@ func (x *AnonymousGroupMessage) String() string { func (*AnonymousGroupMessage) ProtoMessage() {} func (x *AnonymousGroupMessage) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[42] + mi := &file_pb_msg_msg_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4319,7 +4319,7 @@ func (x *AnonymousGroupMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use AnonymousGroupMessage.ProtoReflect.Descriptor instead. func (*AnonymousGroupMessage) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{42} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{42} } func (x *AnonymousGroupMessage) GetFlags() int32 { @@ -4405,7 +4405,7 @@ type VideoFile struct { func (x *VideoFile) Reset() { *x = VideoFile{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[43] + mi := &file_pb_msg_msg_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4418,7 +4418,7 @@ func (x *VideoFile) String() string { func (*VideoFile) ProtoMessage() {} func (x *VideoFile) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[43] + mi := &file_pb_msg_msg_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4431,7 +4431,7 @@ func (x *VideoFile) ProtoReflect() protoreflect.Message { // Deprecated: Use VideoFile.ProtoReflect.Descriptor instead. func (*VideoFile) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{43} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{43} } func (x *VideoFile) GetFileUuid() []byte { @@ -4623,7 +4623,7 @@ type SourceMsg struct { func (x *SourceMsg) Reset() { *x = SourceMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[44] + mi := &file_pb_msg_msg_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4636,7 +4636,7 @@ func (x *SourceMsg) String() string { func (*SourceMsg) ProtoMessage() {} func (x *SourceMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[44] + mi := &file_pb_msg_msg_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4649,7 +4649,7 @@ func (x *SourceMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use SourceMsg.ProtoReflect.Descriptor instead. func (*SourceMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{44} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{44} } func (x *SourceMsg) GetOrigSeqs() []int32 { @@ -4742,7 +4742,7 @@ type Face struct { func (x *Face) Reset() { *x = Face{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[45] + mi := &file_pb_msg_msg_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4755,7 +4755,7 @@ func (x *Face) String() string { func (*Face) ProtoMessage() {} func (x *Face) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[45] + mi := &file_pb_msg_msg_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4768,7 +4768,7 @@ func (x *Face) ProtoReflect() protoreflect.Message { // Deprecated: Use Face.ProtoReflect.Descriptor instead. func (*Face) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{45} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{45} } func (x *Face) GetIndex() int32 { @@ -4804,7 +4804,7 @@ type LightAppElem struct { func (x *LightAppElem) Reset() { *x = LightAppElem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[46] + mi := &file_pb_msg_msg_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4817,7 +4817,7 @@ func (x *LightAppElem) String() string { func (*LightAppElem) ProtoMessage() {} func (x *LightAppElem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[46] + mi := &file_pb_msg_msg_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4830,7 +4830,7 @@ func (x *LightAppElem) ProtoReflect() protoreflect.Message { // Deprecated: Use LightAppElem.ProtoReflect.Descriptor instead. func (*LightAppElem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{46} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{46} } func (x *LightAppElem) GetData() []byte { @@ -4891,7 +4891,7 @@ type CustomFace struct { func (x *CustomFace) Reset() { *x = CustomFace{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[47] + mi := &file_pb_msg_msg_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4904,7 +4904,7 @@ func (x *CustomFace) String() string { func (*CustomFace) ProtoMessage() {} func (x *CustomFace) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[47] + mi := &file_pb_msg_msg_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4917,7 +4917,7 @@ func (x *CustomFace) ProtoReflect() protoreflect.Message { // Deprecated: Use CustomFace.ProtoReflect.Descriptor instead. func (*CustomFace) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{47} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{47} } func (x *CustomFace) GetGuid() []byte { @@ -5172,7 +5172,7 @@ type ContentHead struct { func (x *ContentHead) Reset() { *x = ContentHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[48] + mi := &file_pb_msg_msg_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5185,7 +5185,7 @@ func (x *ContentHead) String() string { func (*ContentHead) ProtoMessage() {} func (x *ContentHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[48] + mi := &file_pb_msg_msg_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5198,7 +5198,7 @@ func (x *ContentHead) ProtoReflect() protoreflect.Message { // Deprecated: Use ContentHead.ProtoReflect.Descriptor instead. func (*ContentHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{48} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{48} } func (x *ContentHead) GetPkgNum() int32 { @@ -5267,7 +5267,7 @@ type MessageHead struct { func (x *MessageHead) Reset() { *x = MessageHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[49] + mi := &file_pb_msg_msg_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5280,7 +5280,7 @@ func (x *MessageHead) String() string { func (*MessageHead) ProtoMessage() {} func (x *MessageHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[49] + mi := &file_pb_msg_msg_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5293,7 +5293,7 @@ func (x *MessageHead) ProtoReflect() protoreflect.Message { // Deprecated: Use MessageHead.ProtoReflect.Descriptor instead. func (*MessageHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{49} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{49} } func (x *MessageHead) GetFromUin() int64 { @@ -5510,7 +5510,7 @@ type GroupInfo struct { func (x *GroupInfo) Reset() { *x = GroupInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[50] + mi := &file_pb_msg_msg_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5523,7 +5523,7 @@ func (x *GroupInfo) String() string { func (*GroupInfo) ProtoMessage() {} func (x *GroupInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[50] + mi := &file_pb_msg_msg_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5536,7 +5536,7 @@ func (x *GroupInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. func (*GroupInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{50} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{50} } func (x *GroupInfo) GetGroupCode() int64 { @@ -5610,7 +5610,7 @@ type DiscussInfo struct { func (x *DiscussInfo) Reset() { *x = DiscussInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[51] + mi := &file_pb_msg_msg_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5623,7 +5623,7 @@ func (x *DiscussInfo) String() string { func (*DiscussInfo) ProtoMessage() {} func (x *DiscussInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[51] + mi := &file_pb_msg_msg_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5636,7 +5636,7 @@ func (x *DiscussInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DiscussInfo.ProtoReflect.Descriptor instead. func (*DiscussInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{51} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{51} } func (x *DiscussInfo) GetDiscussUin() int64 { @@ -5686,7 +5686,7 @@ type MutilTransHead struct { func (x *MutilTransHead) Reset() { *x = MutilTransHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[52] + mi := &file_pb_msg_msg_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5699,7 +5699,7 @@ func (x *MutilTransHead) String() string { func (*MutilTransHead) ProtoMessage() {} func (x *MutilTransHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[52] + mi := &file_pb_msg_msg_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5712,7 +5712,7 @@ func (x *MutilTransHead) ProtoReflect() protoreflect.Message { // Deprecated: Use MutilTransHead.ProtoReflect.Descriptor instead. func (*MutilTransHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{52} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{52} } func (x *MutilTransHead) GetStatus() int32 { @@ -5750,7 +5750,7 @@ type C2CTempMessageHead struct { func (x *C2CTempMessageHead) Reset() { *x = C2CTempMessageHead{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[53] + mi := &file_pb_msg_msg_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5763,7 +5763,7 @@ func (x *C2CTempMessageHead) String() string { func (*C2CTempMessageHead) ProtoMessage() {} func (x *C2CTempMessageHead) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[53] + mi := &file_pb_msg_msg_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5776,7 +5776,7 @@ func (x *C2CTempMessageHead) ProtoReflect() protoreflect.Message { // Deprecated: Use C2CTempMessageHead.ProtoReflect.Descriptor instead. func (*C2CTempMessageHead) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{53} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{53} } func (x *C2CTempMessageHead) GetC2CType() int32 { @@ -5869,7 +5869,7 @@ type InstCtrl struct { func (x *InstCtrl) Reset() { *x = InstCtrl{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[54] + mi := &file_pb_msg_msg_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5882,7 +5882,7 @@ func (x *InstCtrl) String() string { func (*InstCtrl) ProtoMessage() {} func (x *InstCtrl) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[54] + mi := &file_pb_msg_msg_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5895,7 +5895,7 @@ func (x *InstCtrl) ProtoReflect() protoreflect.Message { // Deprecated: Use InstCtrl.ProtoReflect.Descriptor instead. func (*InstCtrl) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{54} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{54} } func (x *InstCtrl) GetMsgSendToInst() []*InstInfo { @@ -5933,7 +5933,7 @@ type InstInfo struct { func (x *InstInfo) Reset() { *x = InstInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[55] + mi := &file_pb_msg_msg_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5946,7 +5946,7 @@ func (x *InstInfo) String() string { func (*InstInfo) ProtoMessage() {} func (x *InstInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[55] + mi := &file_pb_msg_msg_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5959,7 +5959,7 @@ func (x *InstInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use InstInfo.ProtoReflect.Descriptor instead. func (*InstInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{55} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{55} } func (x *InstInfo) GetApppid() int32 { @@ -6002,7 +6002,7 @@ type ExtGroupKeyInfo struct { func (x *ExtGroupKeyInfo) Reset() { *x = ExtGroupKeyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[56] + mi := &file_pb_msg_msg_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6015,7 +6015,7 @@ func (x *ExtGroupKeyInfo) String() string { func (*ExtGroupKeyInfo) ProtoMessage() {} func (x *ExtGroupKeyInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[56] + mi := &file_pb_msg_msg_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6028,7 +6028,7 @@ func (x *ExtGroupKeyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtGroupKeyInfo.ProtoReflect.Descriptor instead. func (*ExtGroupKeyInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{56} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{56} } func (x *ExtGroupKeyInfo) GetCurMaxSeq() int32 { @@ -6064,7 +6064,7 @@ type SyncCookie struct { func (x *SyncCookie) Reset() { *x = SyncCookie{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[57] + mi := &file_pb_msg_msg_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6077,7 +6077,7 @@ func (x *SyncCookie) String() string { func (*SyncCookie) ProtoMessage() {} func (x *SyncCookie) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[57] + mi := &file_pb_msg_msg_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6090,7 +6090,7 @@ func (x *SyncCookie) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncCookie.ProtoReflect.Descriptor instead. func (*SyncCookie) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{57} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{57} } func (x *SyncCookie) GetTime1() int64 { @@ -6179,7 +6179,7 @@ type TransMsgInfo struct { func (x *TransMsgInfo) Reset() { *x = TransMsgInfo{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[58] + mi := &file_pb_msg_msg_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6192,7 +6192,7 @@ func (x *TransMsgInfo) String() string { func (*TransMsgInfo) ProtoMessage() {} func (x *TransMsgInfo) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[58] + mi := &file_pb_msg_msg_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6205,7 +6205,7 @@ func (x *TransMsgInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use TransMsgInfo.ProtoReflect.Descriptor instead. func (*TransMsgInfo) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{58} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{58} } func (x *TransMsgInfo) GetFromUin() int64 { @@ -6328,7 +6328,7 @@ type GeneralFlags struct { func (x *GeneralFlags) Reset() { *x = GeneralFlags{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[59] + mi := &file_pb_msg_msg_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6341,7 +6341,7 @@ func (x *GeneralFlags) String() string { func (*GeneralFlags) ProtoMessage() {} func (x *GeneralFlags) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[59] + mi := &file_pb_msg_msg_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6354,7 +6354,7 @@ func (x *GeneralFlags) ProtoReflect() protoreflect.Message { // Deprecated: Use GeneralFlags.ProtoReflect.Descriptor instead. func (*GeneralFlags) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{59} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{59} } func (x *GeneralFlags) GetBubbleDiyTextId() int32 { @@ -6502,7 +6502,7 @@ type PbMultiMsgItem struct { func (x *PbMultiMsgItem) Reset() { *x = PbMultiMsgItem{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[60] + mi := &file_pb_msg_msg_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6515,7 +6515,7 @@ func (x *PbMultiMsgItem) String() string { func (*PbMultiMsgItem) ProtoMessage() {} func (x *PbMultiMsgItem) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[60] + mi := &file_pb_msg_msg_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6528,7 +6528,7 @@ func (x *PbMultiMsgItem) ProtoReflect() protoreflect.Message { // Deprecated: Use PbMultiMsgItem.ProtoReflect.Descriptor instead. func (*PbMultiMsgItem) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{60} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{60} } func (x *PbMultiMsgItem) GetFileName() string { @@ -6556,7 +6556,7 @@ type PbMultiMsgNew struct { func (x *PbMultiMsgNew) Reset() { *x = PbMultiMsgNew{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[61] + mi := &file_pb_msg_msg_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6569,7 +6569,7 @@ func (x *PbMultiMsgNew) String() string { func (*PbMultiMsgNew) ProtoMessage() {} func (x *PbMultiMsgNew) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[61] + mi := &file_pb_msg_msg_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6582,7 +6582,7 @@ func (x *PbMultiMsgNew) ProtoReflect() protoreflect.Message { // Deprecated: Use PbMultiMsgNew.ProtoReflect.Descriptor instead. func (*PbMultiMsgNew) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{61} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{61} } func (x *PbMultiMsgNew) GetMsg() []*Message { @@ -6604,7 +6604,7 @@ type PbMultiMsgTransmit struct { func (x *PbMultiMsgTransmit) Reset() { *x = PbMultiMsgTransmit{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[62] + mi := &file_pb_msg_msg_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6617,7 +6617,7 @@ func (x *PbMultiMsgTransmit) String() string { func (*PbMultiMsgTransmit) ProtoMessage() {} func (x *PbMultiMsgTransmit) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[62] + mi := &file_pb_msg_msg_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6630,7 +6630,7 @@ func (x *PbMultiMsgTransmit) ProtoReflect() protoreflect.Message { // Deprecated: Use PbMultiMsgTransmit.ProtoReflect.Descriptor instead. func (*PbMultiMsgTransmit) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{62} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{62} } func (x *PbMultiMsgTransmit) GetMsg() []*Message { @@ -6659,7 +6659,7 @@ type MsgElemInfoServtype3 struct { func (x *MsgElemInfoServtype3) Reset() { *x = MsgElemInfoServtype3{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[63] + mi := &file_pb_msg_msg_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6672,7 +6672,7 @@ func (x *MsgElemInfoServtype3) String() string { func (*MsgElemInfoServtype3) ProtoMessage() {} func (x *MsgElemInfoServtype3) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[63] + mi := &file_pb_msg_msg_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6685,7 +6685,7 @@ func (x *MsgElemInfoServtype3) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgElemInfoServtype3.ProtoReflect.Descriptor instead. func (*MsgElemInfoServtype3) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{63} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{63} } func (x *MsgElemInfoServtype3) GetFlashTroopPic() *CustomFace { @@ -6716,7 +6716,7 @@ type MsgElemInfoServtype33 struct { func (x *MsgElemInfoServtype33) Reset() { *x = MsgElemInfoServtype33{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[64] + mi := &file_pb_msg_msg_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6729,7 +6729,7 @@ func (x *MsgElemInfoServtype33) String() string { func (*MsgElemInfoServtype33) ProtoMessage() {} func (x *MsgElemInfoServtype33) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[64] + mi := &file_pb_msg_msg_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6742,7 +6742,7 @@ func (x *MsgElemInfoServtype33) ProtoReflect() protoreflect.Message { // Deprecated: Use MsgElemInfoServtype33.ProtoReflect.Descriptor instead. func (*MsgElemInfoServtype33) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{64} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{64} } func (x *MsgElemInfoServtype33) GetIndex() uint32 { @@ -6773,6 +6773,61 @@ func (x *MsgElemInfoServtype33) GetBuf() []byte { return nil } +type MsgElemInfoServtype38 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReactData []byte `protobuf:"bytes,1,opt,name=reactData" json:"reactData,omitempty"` + ReplyData []byte `protobuf:"bytes,2,opt,name=replyData" json:"replyData,omitempty"` +} + +func (x *MsgElemInfoServtype38) Reset() { + *x = MsgElemInfoServtype38{} + if protoimpl.UnsafeEnabled { + mi := &file_pb_msg_msg_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgElemInfoServtype38) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgElemInfoServtype38) ProtoMessage() {} + +func (x *MsgElemInfoServtype38) ProtoReflect() protoreflect.Message { + mi := &file_pb_msg_msg_proto_msgTypes[65] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgElemInfoServtype38.ProtoReflect.Descriptor instead. +func (*MsgElemInfoServtype38) Descriptor() ([]byte, []int) { + return file_pb_msg_msg_proto_rawDescGZIP(), []int{65} +} + +func (x *MsgElemInfoServtype38) GetReactData() []byte { + if x != nil { + return x.ReactData + } + return nil +} + +func (x *MsgElemInfoServtype38) GetReplyData() []byte { + if x != nil { + return x.ReplyData + } + return nil +} + type SubMsgType0X4Body struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -6786,7 +6841,7 @@ type SubMsgType0X4Body struct { func (x *SubMsgType0X4Body) Reset() { *x = SubMsgType0X4Body{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[65] + mi := &file_pb_msg_msg_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6799,7 +6854,7 @@ func (x *SubMsgType0X4Body) String() string { func (*SubMsgType0X4Body) ProtoMessage() {} func (x *SubMsgType0X4Body) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[65] + mi := &file_pb_msg_msg_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6812,7 +6867,7 @@ func (x *SubMsgType0X4Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SubMsgType0X4Body.ProtoReflect.Descriptor instead. func (*SubMsgType0X4Body) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{65} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{66} } func (x *SubMsgType0X4Body) GetNotOnlineFile() *NotOnlineFile { @@ -6848,7 +6903,7 @@ type ResvAttr struct { func (x *ResvAttr) Reset() { *x = ResvAttr{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[66] + mi := &file_pb_msg_msg_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6861,7 +6916,7 @@ func (x *ResvAttr) String() string { func (*ResvAttr) ProtoMessage() {} func (x *ResvAttr) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[66] + mi := &file_pb_msg_msg_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6874,7 +6929,7 @@ func (x *ResvAttr) ProtoReflect() protoreflect.Message { // Deprecated: Use ResvAttr.ProtoReflect.Descriptor instead. func (*ResvAttr) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{66} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{67} } func (x *ResvAttr) GetImageBizType() uint32 { @@ -6903,7 +6958,7 @@ type AnimationImageShow struct { func (x *AnimationImageShow) Reset() { *x = AnimationImageShow{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[67] + mi := &file_pb_msg_msg_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6916,7 +6971,7 @@ func (x *AnimationImageShow) String() string { func (*AnimationImageShow) ProtoMessage() {} func (x *AnimationImageShow) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[67] + mi := &file_pb_msg_msg_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6929,7 +6984,7 @@ func (x *AnimationImageShow) ProtoReflect() protoreflect.Message { // Deprecated: Use AnimationImageShow.ProtoReflect.Descriptor instead. func (*AnimationImageShow) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{67} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{68} } func (x *AnimationImageShow) GetEffectId() int32 { @@ -6959,7 +7014,7 @@ type UinTypeUserDef struct { func (x *UinTypeUserDef) Reset() { *x = UinTypeUserDef{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[68] + mi := &file_pb_msg_msg_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6972,7 +7027,7 @@ func (x *UinTypeUserDef) String() string { func (*UinTypeUserDef) ProtoMessage() {} func (x *UinTypeUserDef) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[68] + mi := &file_pb_msg_msg_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6985,7 +7040,7 @@ func (x *UinTypeUserDef) ProtoReflect() protoreflect.Message { // Deprecated: Use UinTypeUserDef.ProtoReflect.Descriptor instead. func (*UinTypeUserDef) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{68} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{69} } func (x *UinTypeUserDef) GetFromUinType() int32 { @@ -7027,7 +7082,7 @@ type GetGroupMsgReq struct { func (x *GetGroupMsgReq) Reset() { *x = GetGroupMsgReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[69] + mi := &file_pb_msg_msg_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7040,7 +7095,7 @@ func (x *GetGroupMsgReq) String() string { func (*GetGroupMsgReq) ProtoMessage() {} func (x *GetGroupMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[69] + mi := &file_pb_msg_msg_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7053,7 +7108,7 @@ func (x *GetGroupMsgReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMsgReq.ProtoReflect.Descriptor instead. func (*GetGroupMsgReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{69} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{70} } func (x *GetGroupMsgReq) GetGroupCode() uint64 { @@ -7128,7 +7183,7 @@ type GetGroupMsgResp struct { func (x *GetGroupMsgResp) Reset() { *x = GetGroupMsgResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[70] + mi := &file_pb_msg_msg_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7141,7 +7196,7 @@ func (x *GetGroupMsgResp) String() string { func (*GetGroupMsgResp) ProtoMessage() {} func (x *GetGroupMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[70] + mi := &file_pb_msg_msg_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7154,7 +7209,7 @@ func (x *GetGroupMsgResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMsgResp.ProtoReflect.Descriptor instead. func (*GetGroupMsgResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{70} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{71} } func (x *GetGroupMsgResp) GetResult() uint32 { @@ -7213,7 +7268,7 @@ type PbGetOneDayRoamMsgReq struct { func (x *PbGetOneDayRoamMsgReq) Reset() { *x = PbGetOneDayRoamMsgReq{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[71] + mi := &file_pb_msg_msg_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7226,7 +7281,7 @@ func (x *PbGetOneDayRoamMsgReq) String() string { func (*PbGetOneDayRoamMsgReq) ProtoMessage() {} func (x *PbGetOneDayRoamMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[71] + mi := &file_pb_msg_msg_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7239,7 +7294,7 @@ func (x *PbGetOneDayRoamMsgReq) ProtoReflect() protoreflect.Message { // Deprecated: Use PbGetOneDayRoamMsgReq.ProtoReflect.Descriptor instead. func (*PbGetOneDayRoamMsgReq) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{71} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{72} } func (x *PbGetOneDayRoamMsgReq) GetPeerUin() uint64 { @@ -7287,7 +7342,7 @@ type PbGetOneDayRoamMsgResp struct { func (x *PbGetOneDayRoamMsgResp) Reset() { *x = PbGetOneDayRoamMsgResp{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[72] + mi := &file_pb_msg_msg_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7300,7 +7355,7 @@ func (x *PbGetOneDayRoamMsgResp) String() string { func (*PbGetOneDayRoamMsgResp) ProtoMessage() {} func (x *PbGetOneDayRoamMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[72] + mi := &file_pb_msg_msg_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7313,7 +7368,7 @@ func (x *PbGetOneDayRoamMsgResp) ProtoReflect() protoreflect.Message { // Deprecated: Use PbGetOneDayRoamMsgResp.ProtoReflect.Descriptor instead. func (*PbGetOneDayRoamMsgResp) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{72} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{73} } func (x *PbGetOneDayRoamMsgResp) GetResult() uint32 { @@ -7381,7 +7436,7 @@ type PbPushMsg struct { func (x *PbPushMsg) Reset() { *x = PbPushMsg{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[73] + mi := &file_pb_msg_msg_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7394,7 +7449,7 @@ func (x *PbPushMsg) String() string { func (*PbPushMsg) ProtoMessage() {} func (x *PbPushMsg) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[73] + mi := &file_pb_msg_msg_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7407,7 +7462,7 @@ func (x *PbPushMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use PbPushMsg.ProtoReflect.Descriptor instead. func (*PbPushMsg) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{73} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{74} } func (x *PbPushMsg) GetMsg() *Message { @@ -7464,7 +7519,7 @@ type ElemFlags2_Inst struct { func (x *ElemFlags2_Inst) Reset() { *x = ElemFlags2_Inst{} if protoimpl.UnsafeEnabled { - mi := &file_msg_proto_msgTypes[74] + mi := &file_pb_msg_msg_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7477,7 +7532,7 @@ func (x *ElemFlags2_Inst) String() string { func (*ElemFlags2_Inst) ProtoMessage() {} func (x *ElemFlags2_Inst) ProtoReflect() protoreflect.Message { - mi := &file_msg_proto_msgTypes[74] + mi := &file_pb_msg_msg_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7490,7 +7545,7 @@ func (x *ElemFlags2_Inst) ProtoReflect() protoreflect.Message { // Deprecated: Use ElemFlags2_Inst.ProtoReflect.Descriptor instead. func (*ElemFlags2_Inst) Descriptor() ([]byte, []int) { - return file_msg_proto_rawDescGZIP(), []int{25, 0} + return file_pb_msg_msg_proto_rawDescGZIP(), []int{25, 0} } func (x *ElemFlags2_Inst) GetAppId() uint32 { @@ -7507,13 +7562,14 @@ func (x *ElemFlags2_Inst) GetInstId() uint32 { return 0 } -var File_msg_proto protoreflect.FileDescriptor +var File_pb_msg_msg_proto protoreflect.FileDescriptor -var file_msg_proto_rawDesc = []byte{ - 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd8, 0x03, 0x0a, 0x11, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x25, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, +var file_pb_msg_msg_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x70, 0x62, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xdc, 0x03, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, + 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x0d, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6d, 0x62, @@ -7540,27 +7596,28 @@ var file_msg_proto_rawDesc = []byte{ 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x22, 0xf0, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, + 0x76, 0x65, 0x72, 0x42, 0x75, 0x66, 0x22, 0x80, 0x03, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, - 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2e, 0x0a, - 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, - 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x26, 0x0a, - 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, - 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, - 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, - 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x12, - 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x07, 0x6d, 0x73, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x12, 0x32, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x42, 0x6f, 0x64, + 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, + 0x52, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x52, + 0x61, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, + 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x56, 0x69, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, + 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x22, 0x45, 0x0a, 0x13, 0x53, 0x65, 0x6e, @@ -7568,1096 +7625,1119 @@ var file_msg_proto_rawDesc = []byte{ 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x22, 0x82, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, - 0x52, 0x65, 0x71, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, - 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, - 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0b, 0x63, 0x32, - 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3a, 0x0a, 0x0d, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, - 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, - 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x98, 0x01, 0x0a, 0x11, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, - 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, - 0x32, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, - 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, - 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, - 0x22, 0xac, 0x01, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, - 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, - 0x6d, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x27, 0x0a, 0x07, - 0x6d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, + 0x52, 0x65, 0x71, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, + 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, + 0x52, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3e, 0x0a, + 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x71, 0x52, 0x0d, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x9c, 0x01, + 0x0a, 0x11, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, + 0x52, 0x65, 0x71, 0x12, 0x29, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, + 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, + 0x0a, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x6f, 0x6e, 0x67, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x22, 0xb0, 0x01, 0x0a, + 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, + 0x77, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x22, - 0x85, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, - 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x32, 0x43, 0x4d, 0x73, - 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0b, 0x63, - 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3b, 0x0a, 0x0d, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, - 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, - 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, 0x44, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x4d, 0x73, - 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x46, 0x0a, - 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, + 0x8d, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, + 0x61, 0x77, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x0b, 0x63, 0x32, 0x63, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x12, 0x3f, + 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x22, + 0x44, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, - 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5e, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, - 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, - 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xba, 0x02, 0x0a, 0x0a, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, - 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, - 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, - 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, - 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, - 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, - 0x61, 0x64, 0x22, 0x7f, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, - 0x64, 0x12, 0x16, 0x0a, 0x03, 0x63, 0x32, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, - 0x2e, 0x43, 0x32, 0x43, 0x52, 0x03, 0x63, 0x32, 0x63, 0x12, 0x16, 0x0a, 0x03, 0x67, 0x72, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x47, 0x72, 0x70, 0x52, 0x03, 0x67, 0x72, - 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x07, 0x2e, 0x47, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x67, 0x72, 0x70, 0x54, - 0x6d, 0x70, 0x12, 0x1f, 0x0a, 0x06, 0x77, 0x70, 0x61, 0x54, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x07, 0x2e, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x77, 0x70, 0x61, - 0x54, 0x6d, 0x70, 0x22, 0x30, 0x0a, 0x06, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, - 0x55, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x03, 0x73, 0x69, 0x67, 0x22, 0x1b, 0x0a, 0x03, 0x43, 0x32, 0x43, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, - 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x03, 0x47, 0x72, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x06, 0x47, 0x72, 0x70, 0x54, 0x6d, - 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, - 0x55, 0x69, 0x6e, 0x22, 0x23, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xf6, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x25, 0x0a, 0x08, 0x73, - 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x09, 0x2e, - 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, 0x6c, - 0x61, 0x67, 0x12, 0x31, 0x0a, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x55, 0x69, 0x6e, 0x50, 0x61, 0x69, - 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, - 0x72, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, - 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, - 0x6b, 0x69, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, - 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, - 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x42, 0x75, - 0x66, 0x22, 0xa9, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x22, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, - 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, - 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x4c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x4c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x98, 0x01, - 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x64, 0x12, 0x24, 0x0a, 0x08, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x75, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, - 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x26, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, - 0x82, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, - 0x25, 0x0a, 0x08, 0x72, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x09, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x72, 0x69, - 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, - 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, - 0x74, 0x12, 0x19, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x05, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x12, 0x1b, 0x0a, 0x05, - 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, - 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x34, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, - 0x16, 0x0a, 0x03, 0x70, 0x74, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, 0x50, - 0x74, 0x74, 0x52, 0x03, 0x70, 0x74, 0x74, 0x22, 0xc8, 0x06, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, - 0x12, 0x19, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, - 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x66, - 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x46, 0x61, 0x63, 0x65, - 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x4f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, - 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, - 0x30, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, - 0x65, 0x6d, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x2b, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, - 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x2b, - 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x0a, 0x65, - 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x52, 0x0a, 0x65, 0x6c, - 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x12, 0x22, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, - 0x4d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x52, 0x69, 0x63, 0x68, - 0x4d, 0x73, 0x67, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x28, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x52, - 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x61, 0x6e, - 0x6f, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x51, 0x51, - 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, - 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, - 0x6c, 0x65, 0x6d, 0x12, 0x31, 0x0a, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, - 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x73, 0x67, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x08, 0x6c, 0x69, - 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x4c, - 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x6c, 0x69, 0x67, - 0x68, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2b, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, - 0x6c, 0x65, 0x6d, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, - 0x65, 0x6d, 0x22, 0xf0, 0x02, 0x0a, 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x61, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, - 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, 0x64, 0x74, - 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, - 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x6f, 0x62, 0x69, - 0x6c, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xa9, 0x04, 0x0a, 0x0a, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, - 0x61, 0x67, 0x73, 0x32, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, - 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, - 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, - 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x74, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x70, 0x74, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x76, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x76, 0x69, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x05, 0x69, 0x6e, 0x73, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, - 0x05, 0x69, 0x6e, 0x73, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, 0x74, - 0x43, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, - 0x74, 0x43, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, 0x73, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x0c, - 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x50, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, - 0x66, 0x52, 0x0c, 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x1a, 0x34, 0x0a, 0x04, 0x49, - 0x6e, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, - 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, - 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x50, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, - 0x65, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, - 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, - 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x6a, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x62, 0x45, 0x6c, - 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, - 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x39, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, - 0x4d, 0x73, 0x67, 0x12, 0x2a, 0x0a, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, - 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x22, - 0xf3, 0x04, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, - 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, 0x28, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x51, 0x51, 0x57, 0x61, - 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, - 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, - 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, - 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0b, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x4f, 0x70, - 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, - 0x4f, 0x70, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6e, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x63, 0x6f, 0x6e, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1e, 0x0a, - 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, - 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, - 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, - 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x6e, - 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, 0x6e, 0x6b, - 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x72, 0x69, - 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, - 0x74, 0x72, 0x69, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x49, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x61, 0x74, 0x69, - 0x76, 0x65, 0x49, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, - 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6e, 0x61, - 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, - 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x69, 0x63, - 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, - 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x66, - 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x61, 0x69, - 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, - 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x63, - 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x69, 0x63, 0x68, 0x4d, 0x73, - 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, 0x71, 0x22, - 0x78, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x65, 0x73, - 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, - 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x04, 0x54, 0x65, - 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x36, 0x42, 0x75, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, - 0x36, 0x42, 0x75, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, 0x75, 0x66, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, 0x75, 0x66, - 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, - 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x22, 0x90, 0x02, 0x0a, 0x04, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x64, - 0x65, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f, 0x64, - 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x66, 0x66, - 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x12, 0x26, 0x0a, - 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, - 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x22, 0xb9, 0x05, 0x0a, 0x03, 0x50, 0x74, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, 0x6e, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, - 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, - 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, - 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, - 0x63, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, - 0x63, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, - 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x77, 0x69, 0x74, - 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, - 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x20, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x22, - 0x65, 0x0a, 0x0b, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x67, 0x75, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, - 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, - 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xf0, 0x05, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, - 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x12, - 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, - 0x64, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, - 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, - 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x6d, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x69, 0x63, - 0x4d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, - 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x12, - 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, - 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x46, - 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6f, 0x70, - 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x50, 0x69, - 0x63, 0x4d, 0x64, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x50, - 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, - 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, - 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, - 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, - 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, - 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xb9, 0x04, 0x0a, 0x0d, 0x4e, 0x6f, - 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, - 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, - 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, - 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x69, 0x66, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x69, 0x66, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x62, 0x73, 0x46, - 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, - 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, 0x02, 0x0a, - 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, - 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x54, 0x61, 0x69, - 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x54, 0x61, - 0x69, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x6e, 0x73, 0x54, 0x69, - 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x70, 0x6e, 0x73, 0x54, 0x69, - 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x75, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x6e, 0x73, - 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x61, 0x70, 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, - 0x61, 0x67, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, - 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, - 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, - 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x64, 0x4d, 0x73, - 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x65, 0x65, - 0x64, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x41, 0x6e, 0x6f, 0x6e, 0x79, - 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, - 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x61, - 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, - 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xc9, 0x06, 0x0a, 0x09, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, - 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, - 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4d, - 0x64, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, - 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, - 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, - 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x75, - 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, - 0x18, 0x14, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, - 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, - 0x18, 0x15, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, - 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x68, - 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, - 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, 0x64, 0x65, - 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, - 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x05, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, - 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, - 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x46, 0x61, 0x63, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0x3e, 0x0a, 0x0c, 0x4c, - 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, 0x64, 0x22, 0x99, 0x07, 0x0a, 0x0a, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, - 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, - 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, - 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, - 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x66, 0x75, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x66, - 0x75, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x03, 0x6d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, - 0x55, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, - 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, - 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, - 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, - 0x69, 0x64, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, - 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, - 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, - 0x4c, 0x65, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, - 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, - 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x5f, 0x34, 0x30, 0x30, 0x55, 0x72, 0x6c, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x34, 0x30, 0x30, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x5f, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x5f, 0x34, - 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x77, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, - 0x76, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, - 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0xe0, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x46, 0x0a, 0x14, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, + 0x67, 0x57, 0x69, 0x74, 0x68, 0x44, 0x72, 0x61, 0x77, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5e, 0x0a, + 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x22, 0xbe, 0x02, + 0x0a, 0x0a, 0x43, 0x32, 0x43, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, + 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, + 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, + 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, + 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x0b, 0x72, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x22, 0x8f, + 0x01, 0x0a, 0x0b, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x1a, + 0x0a, 0x03, 0x63, 0x32, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x43, 0x32, 0x43, 0x52, 0x03, 0x63, 0x32, 0x63, 0x12, 0x1a, 0x0a, 0x03, 0x67, 0x72, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, + 0x70, 0x52, 0x03, 0x67, 0x72, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x70, + 0x54, 0x6d, 0x70, 0x52, 0x06, 0x67, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x77, + 0x70, 0x61, 0x54, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x52, 0x06, 0x77, 0x70, 0x61, 0x54, 0x6d, 0x70, + 0x22, 0x30, 0x0a, 0x06, 0x57, 0x50, 0x41, 0x54, 0x6d, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, + 0x69, 0x67, 0x22, 0x1b, 0x0a, 0x03, 0x43, 0x32, 0x43, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, + 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x22, + 0x23, 0x0a, 0x03, 0x47, 0x72, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x43, 0x6f, 0x64, 0x65, 0x22, 0x3a, 0x0a, 0x06, 0x47, 0x72, 0x70, 0x54, 0x6d, 0x70, 0x12, 0x1a, + 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x32, - 0x63, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x63, 0x32, 0x63, 0x43, - 0x6d, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, - 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0d, - 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, - 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, 0x64, 0x12, 0x28, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x2e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x75, - 0x74, 0x68, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x69, 0x63, - 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, 0x69, 0x63, - 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x61, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0e, 0x6d, 0x75, 0x74, - 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, - 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x75, 0x74, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, - 0x61, 0x64, 0x12, 0x2b, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, - 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, - 0x72, 0x6c, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, - 0x3e, 0x0a, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x1a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x2a, 0x0a, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, - 0x65, 0x61, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, - 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x70, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x70, 0x69, 0x64, 0x12, - 0x3a, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x6d, - 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, - 0x78, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, - 0x4d, 0x73, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, - 0x4d, 0x73, 0x67, 0x22, 0x8b, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, - 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, - 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, - 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x69, 0x73, - 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x64, - 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, - 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0x3e, 0x0a, 0x0e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x73, - 0x67, 0x49, 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x32, - 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x32, 0x63, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, - 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, - 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, - 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0x9b, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x73, - 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x2f, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, - 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, - 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, - 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x0b, 0x6d, 0x73, 0x67, - 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, - 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x22, 0x7e, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, - 0x73, 0x74, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, - 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x26, - 0x0a, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, - 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, - 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, - 0x6e, 0x31, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x12, 0x12, - 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, - 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x73, 0x74, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, - 0x74, 0x32, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, - 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, 0x22, 0x8e, 0x03, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, - 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, - 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, - 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, - 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x65, 0x78, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, - 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, - 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x62, 0x62, - 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, - 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x4e, - 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, - 0x6c, 0x61, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, - 0x72, 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, - 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, - 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, - 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, - 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0c, 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x53, - 0x65, 0x71, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, 0x70, 0x69, - 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x6c, - 0x79, 0x6d, 0x70, 0x69, 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x61, - 0x62, 0x79, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x62, 0x61, 0x62, 0x79, 0x71, 0x47, 0x75, - 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x28, 0x0a, 0x0f, - 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, - 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, - 0x53, 0x75, 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x62, - 0x62, 0x6c, 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x6e, 0x64, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x6e, - 0x64, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x54, - 0x0a, 0x0e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, - 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x06, - 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x50, - 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x52, 0x06, 0x62, 0x75, - 0x66, 0x66, 0x65, 0x72, 0x22, 0x2b, 0x0a, 0x0d, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, - 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x61, 0x0a, 0x12, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, - 0x4c, 0x69, 0x73, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x12, 0x33, - 0x0a, 0x0f, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x70, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x46, 0x61, 0x63, 0x65, 0x52, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x54, 0x72, 0x6f, 0x6f, 0x70, - 0x50, 0x69, 0x63, 0x12, 0x33, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x63, 0x32, 0x63, - 0x5f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x4e, 0x6f, 0x74, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x61, - 0x73, 0x68, 0x43, 0x32, 0x63, 0x50, 0x69, 0x63, 0x22, 0x6c, 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x45, - 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, - 0x33, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, - 0x6d, 0x70, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0xa3, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x4d, 0x73, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x30, 0x78, 0x34, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x34, 0x0a, 0x0d, - 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, + 0x22, 0x23, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xfe, 0x02, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, + 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x79, + 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x29, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, + 0x46, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x35, 0x0a, 0x0b, 0x75, 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x55, + 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x75, + 0x69, 0x6e, 0x50, 0x61, 0x69, 0x72, 0x4d, 0x73, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, + 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x69, 0x6e, + 0x64, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x52, 0x73, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, + 0x70, 0x75, 0x62, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x79, 0x6e, + 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x74, 0x72, + 0x6c, 0x42, 0x75, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, + 0x74, 0x72, 0x6c, 0x42, 0x75, 0x66, 0x22, 0xad, 0x01, 0x0a, 0x11, 0x50, 0x75, 0x73, 0x68, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, + 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, + 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x6e, 0x67, + 0x46, 0x4c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, + 0x46, 0x4c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, + 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x50, 0x61, + 0x69, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x43, 0x6f, + 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, + 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x08, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x24, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, + 0x64, 0x52, 0x04, 0x68, 0x65, 0x61, 0x64, 0x12, 0x2a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, + 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x22, 0x86, 0x01, 0x0a, 0x0b, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x29, 0x0a, 0x08, 0x72, 0x69, 0x63, + 0x68, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x72, 0x69, 0x63, 0x68, + 0x54, 0x65, 0x78, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x6d, 0x73, 0x67, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x11, 0x6d, 0x73, 0x67, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x22, 0xa0, 0x01, 0x0a, 0x08, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x1d, 0x0a, 0x04, 0x61, 0x74, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x52, 0x04, 0x61, 0x74, 0x74, 0x72, 0x12, 0x1f, + 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, + 0x38, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4e, 0x6f, 0x74, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x03, 0x70, 0x74, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x50, 0x74, 0x74, + 0x52, 0x03, 0x70, 0x74, 0x74, 0x22, 0x94, 0x07, 0x0a, 0x04, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1d, + 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6d, + 0x73, 0x67, 0x2e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x0a, + 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6d, 0x73, + 0x67, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x0b, + 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x3b, 0x0a, 0x0e, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4e, + 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x6e, + 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, + 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x45, 0x6c, 0x65, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x61, + 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x6d, 0x61, 0x72, 0x6b, 0x65, 0x74, + 0x46, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, + 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x46, 0x61, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x0a, 0x65, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, + 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x52, 0x0a, 0x65, 0x6c, 0x65, 0x6d, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x12, 0x26, 0x0a, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, + 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x52, 0x69, + 0x63, 0x68, 0x4d, 0x73, 0x67, 0x52, 0x07, 0x72, 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x2c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x09, + 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x65, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x09, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x09, 0x76, + 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x6e, 0x6f, 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x6e, 0x6f, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x0b, 0x51, 0x51, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x52, + 0x0b, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x0a, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, + 0x6d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x35, 0x0a, + 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x25, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x73, 0x67, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x08, + 0x6c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, + 0x6d, 0x52, 0x08, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x22, 0xf0, 0x02, 0x0a, + 0x0a, 0x4d, 0x61, 0x72, 0x6b, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, + 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x74, 0x65, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x06, 0x66, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x73, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, + 0xb5, 0x04, 0x0a, 0x0a, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x05, 0x6d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x77, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x74, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x42, + 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x74, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x42, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x69, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, + 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x70, + 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x6e, 0x73, 0x74, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, + 0x65, 0x6d, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, 0x05, 0x69, + 0x6e, 0x73, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, 0x74, 0x43, 0x6e, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x73, 0x67, 0x52, 0x70, 0x74, 0x43, + 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x32, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x52, 0x07, 0x73, 0x72, 0x63, 0x49, 0x6e, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x74, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x12, 0x35, + 0x0a, 0x0c, 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x50, 0x63, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x52, 0x0c, 0x70, 0x63, 0x53, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x44, 0x65, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x72, 0x6d, 0x46, 0x6c, 0x61, 0x67, + 0x73, 0x1a, 0x34, 0x0a, 0x04, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x69, 0x6e, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd4, 0x01, 0x0a, 0x0c, 0x50, 0x63, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x66, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x63, 0x50, 0x74, + 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x63, + 0x50, 0x74, 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x63, 0x50, 0x74, + 0x6c, 0x45, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x63, 0x50, 0x74, + 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, 0x42, 0x65, + 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x50, 0x74, + 0x6c, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, 0x6c, + 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x50, 0x74, + 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x74, 0x6c, 0x73, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, + 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, + 0x70, 0x74, 0x6c, 0x73, 0x4e, 0x6f, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x6a, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, + 0x70, 0x62, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x62, 0x75, + 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x0b, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x07, 0x61, 0x69, 0x6f, + 0x42, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x51, 0x51, 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, + 0x52, 0x07, 0x61, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xfb, 0x04, 0x0a, 0x0f, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x73, 0x65, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x12, 0x2c, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x06, 0x73, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x30, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x51, 0x51, + 0x57, 0x61, 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x52, 0x08, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x11, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x74, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x6c, + 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x69, 0x6c, 0x6c, 0x4e, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, + 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x76, 0x65, 0x6c, + 0x4f, 0x70, 0x65, 0x49, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x0a, 0x65, 0x6e, 0x76, + 0x65, 0x6c, 0x4f, 0x70, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x6e, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x11, 0x52, 0x08, 0x63, + 0x6f, 0x6e, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, + 0x6f, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x11, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x06, 0x70, 0x63, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x18, 0x14, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x07, 0x67, 0x72, 0x61, 0x70, 0x55, 0x69, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x0f, 0x51, 0x51, 0x57, 0x61, + 0x6c, 0x6c, 0x65, 0x74, 0x41, 0x69, 0x6f, 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, + 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, + 0x69, 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6c, 0x69, + 0x6e, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, + 0x72, 0x69, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x6c, 0x61, 0x63, + 0x6b, 0x53, 0x74, 0x72, 0x69, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, + 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x6e, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x49, 0x6f, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x6e, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x64, 0x72, 0x6f, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x67, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x66, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x61, 0x69, 0x6f, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x69, 0x6f, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x61, 0x69, 0x6f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x63, 0x66, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x69, 0x63, 0x68, + 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x31, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x31, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, + 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, + 0x71, 0x22, 0x78, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x6c, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x65, 0x73, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x03, 0x65, 0x78, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x04, + 0x54, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x36, 0x42, 0x75, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, + 0x74, 0x72, 0x36, 0x42, 0x75, 0x66, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, + 0x75, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x74, 0x74, 0x72, 0x37, 0x42, + 0x75, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x03, 0x62, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x22, 0x90, 0x02, 0x0a, 0x04, 0x41, 0x74, 0x74, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, + 0x6f, 0x64, 0x65, 0x50, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, + 0x64, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x53, 0x65, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x70, 0x69, 0x74, 0x63, 0x68, 0x41, 0x6e, + 0x64, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x6f, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb9, 0x05, 0x0a, 0x03, 0x50, 0x74, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, + 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x73, 0x72, 0x63, 0x55, 0x69, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x07, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x73, 0x68, 0x6f, + 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x50, 0x74, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x76, 0x6f, 0x69, 0x63, + 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, + 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x12, + 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, 0x6c, 0x65, + 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x64, 0x6f, 0x77, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x1d, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x0c, 0x62, 0x79, 0x74, 0x65, 0x73, 0x50, 0x74, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x22, 0x65, 0x0a, 0x0b, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, + 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x22, 0xf0, 0x05, 0x0a, 0x0e, 0x4e, 0x6f, 0x74, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, + 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x61, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, + 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x6f, + 0x6c, 0x64, 0x56, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x69, 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x69, 0x6d, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x76, 0x69, + 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x73, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, + 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x69, 0x63, 0x48, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x69, 0x63, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x14, 0x0a, 0x05, 0x72, 0x65, 0x73, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x72, 0x65, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, + 0x67, 0x55, 0x72, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, + 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, 0x0a, 0x09, 0x6f, + 0x70, 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, + 0x6f, 0x70, 0x46, 0x61, 0x63, 0x65, 0x42, 0x75, 0x66, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6c, 0x64, + 0x50, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x6c, + 0x64, 0x50, 0x69, 0x63, 0x4d, 0x64, 0x35, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, + 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x18, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xb9, 0x04, 0x0a, 0x0d, + 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x69, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, + 0x64, 0x35, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, + 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, + 0x63, 0x6d, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x75, 0x62, 0x63, 0x6d, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x46, + 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x18, 0x32, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x64, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, + 0x69, 0x66, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x62, 0x73, 0x46, 0x69, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x61, 0x62, + 0x73, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x38, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x45, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x45, 0x6c, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x6c, 0x65, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe3, + 0x02, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x72, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x73, 0x67, 0x54, + 0x61, 0x69, 0x6c, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x73, 0x67, + 0x54, 0x61, 0x69, 0x6c, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x70, 0x6e, 0x73, + 0x54, 0x69, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x61, 0x70, 0x6e, 0x73, + 0x54, 0x69, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x73, 0x67, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x73, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, + 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x61, 0x70, 0x6e, 0x73, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x46, 0x6c, 0x61, 0x67, 0x22, 0xa1, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x69, + 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, + 0x69, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x65, 0x64, + 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, + 0x65, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, + 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x41, 0x6e, 0x6f, + 0x6e, 0x79, 0x6d, 0x6f, 0x75, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x6f, 0x6e, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6e, 0x6f, 0x6e, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x08, 0x61, 0x6e, 0x6f, 0x6e, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, + 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x50, 0x6f, 0x72, 0x74, 0x72, 0x61, 0x69, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x72, 0x61, 0x6e, 0x6b, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xc9, 0x06, 0x0a, 0x09, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, + 0x55, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, + 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x66, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, + 0x65, 0x4d, 0x64, 0x35, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, + 0x62, 0x46, 0x69, 0x6c, 0x65, 0x4d, 0x64, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, + 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x43, 0x68, 0x61, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x6f, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x62, 0x6f, 0x6f, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, + 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x20, 0x0a, 0x0b, + 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x73, 0x75, 0x62, 0x42, 0x75, 0x73, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x12, 0x2e, 0x0a, 0x12, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, + 0x68, 0x75, 0x6d, 0x62, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2e, 0x0a, 0x12, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, + 0x6c, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x12, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2c, 0x0a, 0x11, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x44, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x09, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x53, 0x65, 0x71, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1f, 0x0a, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x6c, 0x65, 0x6d, + 0x52, 0x05, 0x65, 0x6c, 0x65, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x69, 0x63, 0x68, 0x4d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x69, + 0x63, 0x68, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x72, 0x63, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x40, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6f, 0x6c, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x62, 0x75, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, + 0x66, 0x22, 0x3e, 0x0a, 0x0c, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x41, 0x70, 0x70, 0x45, 0x6c, 0x65, + 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x69, + 0x64, 0x22, 0x99, 0x07, 0x0a, 0x0a, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x67, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x50, 0x6f, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x75, 0x73, 0x65, 0x66, 0x75, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x64, 0x35, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6d, 0x64, 0x35, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x55, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x72, 0x69, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x7a, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x62, 0x69, 0x7a, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x20, 0x0a, 0x0b, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x5f, 0x34, + 0x30, 0x30, 0x55, 0x72, 0x6c, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x34, 0x30, 0x30, + 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x5f, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x34, 0x30, 0x30, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x1d, 0x0a, 0x0a, 0x5f, 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x34, 0x30, 0x30, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x77, 0x0a, + 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x6b, 0x67, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6b, + 0x67, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x64, 0x69, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x6f, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0xf8, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x63, 0x32, 0x63, 0x43, 0x6d, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x63, 0x32, 0x63, 0x43, 0x6d, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x53, + 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, + 0x67, 0x55, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, + 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, + 0x65, 0x61, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x73, 0x67, 0x2e, + 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, + 0x61, 0x64, 0x52, 0x0d, 0x63, 0x32, 0x63, 0x54, 0x6d, 0x70, 0x4d, 0x73, 0x67, 0x48, 0x65, 0x61, + 0x64, 0x12, 0x2c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x70, 0x70, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x32, 0x0a, + 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x61, 0x75, 0x74, 0x68, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, + 0x69, 0x63, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4e, + 0x69, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, + 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x6d, + 0x75, 0x74, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x52, 0x0e, 0x6d, 0x75, 0x74, 0x69, 0x6c, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x48, 0x65, 0x61, 0x64, 0x12, 0x2f, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x49, + 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x52, 0x0b, 0x6d, 0x73, + 0x67, 0x49, 0x6e, 0x73, 0x74, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x3e, 0x0a, 0x1a, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x1a, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x77, 0x73, 0x65, + 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, 0x67, 0x68, 0x65, 0x61, 0x64, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x10, 0x77, 0x73, 0x65, 0x71, 0x49, 0x6e, 0x43, 0x32, 0x63, 0x4d, 0x73, + 0x67, 0x68, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x69, 0x64, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x04, 0x63, 0x70, 0x69, 0x64, 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x78, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x13, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x43, 0x6f, 0x6d, + 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x75, 0x74, 0x68, 0x53, 0x65, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x75, + 0x74, 0x68, 0x53, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, 0x4d, 0x73, + 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x72, 0x63, 0x4d, 0x73, + 0x67, 0x22, 0x8b, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0xbf, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x55, 0x69, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x63, 0x75, + 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, + 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0d, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x63, 0x75, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x3e, 0x0a, 0x0e, 0x4d, 0x75, 0x74, 0x69, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x48, + 0x65, 0x61, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, + 0x73, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x73, 0x67, 0x49, + 0x64, 0x22, 0xd2, 0x02, 0x0a, 0x12, 0x43, 0x32, 0x43, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x32, 0x63, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x32, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x73, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x73, 0x69, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x73, 0x69, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, + 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, + 0x72, 0x6f, 0x6d, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6f, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x43, + 0x74, 0x72, 0x6c, 0x12, 0x33, 0x0a, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x6f, + 0x49, 0x6e, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x73, 0x67, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x6f, 0x49, 0x6e, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x0e, 0x6d, 0x73, 0x67, 0x45, + 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0e, 0x6d, 0x73, 0x67, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x12, + 0x2f, 0x0a, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x49, 0x6e, 0x73, 0x74, + 0x22, 0x7e, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x70, 0x70, 0x70, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x70, + 0x70, 0x70, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x6e, 0x73, 0x74, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x75, 0x6d, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x65, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x49, 0x0a, 0x0f, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x75, 0x72, 0x4d, 0x61, 0x78, 0x53, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x63, 0x75, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x0a, + 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, + 0x6d, 0x65, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x69, 0x6d, 0x65, 0x31, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x32, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x32, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x32, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x32, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x33, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x79, 0x6e, 0x63, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, + 0x53, 0x79, 0x6e, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x73, + 0x74, 0x34, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x34, + 0x22, 0x92, 0x03, 0x0a, 0x0c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x4d, 0x73, 0x67, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x69, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, + 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x6d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, + 0x73, 0x67, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x73, 0x67, + 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x73, 0x67, 0x55, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x6c, 0x4d, 0x73, 0x67, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x6c, + 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x76, 0x72, 0x49, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, + 0x72, 0x49, 0x70, 0x12, 0x3e, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, + 0x65, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, + 0x73, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x46, 0x6c, + 0x61, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x22, 0x84, 0x05, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, + 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x79, 0x54, 0x65, 0x78, 0x74, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x4e, 0x65, 0x77, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x46, 0x6c, 0x61, + 0x67, 0x4e, 0x65, 0x77, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x03, 0x75, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x70, 0x49, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x72, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, + 0x70, 0x46, 0x6f, 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x72, 0x70, + 0x46, 0x6f, 0x6c, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x6f, 0x6e, 0x67, + 0x54, 0x65, 0x78, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6e, 0x67, + 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6c, 0x6f, 0x6e, 0x67, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x69, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x74, 0x6f, 0x55, 0x69, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x6c, + 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x67, 0x6c, 0x61, 0x6d, 0x6f, 0x75, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x65, 0x71, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x61, 0x6e, + 0x6b, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, 0x70, 0x69, 0x63, 0x54, + 0x6f, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6f, 0x6c, 0x79, 0x6d, + 0x70, 0x69, 0x63, 0x54, 0x6f, 0x72, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x61, 0x62, 0x79, + 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x62, 0x61, 0x62, 0x79, 0x71, 0x47, 0x75, 0x69, 0x64, + 0x65, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x69, + 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0f, 0x75, 0x69, 0x6e, 0x33, 0x32, 0x45, 0x78, 0x70, 0x65, 0x72, 0x74, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x53, 0x75, + 0x62, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x75, 0x62, 0x62, 0x6c, + 0x65, 0x53, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x6e, + 0x74, 0x49, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x70, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x09, 0x70, 0x62, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x22, 0x58, 0x0a, 0x0e, + 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x62, 0x75, + 0x66, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x52, 0x06, + 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x0d, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x12, 0x1e, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x69, 0x0a, 0x12, 0x50, 0x62, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x4d, 0x73, 0x67, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1e, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, + 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x50, 0x62, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x4d, + 0x73, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x70, 0x62, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x12, 0x37, 0x0a, 0x0f, + 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x74, 0x72, 0x6f, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x52, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x54, 0x72, 0x6f, + 0x6f, 0x70, 0x50, 0x69, 0x63, 0x12, 0x37, 0x0a, 0x0d, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x63, + 0x32, 0x63, 0x5f, 0x70, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, + 0x73, 0x67, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x43, 0x32, 0x63, 0x50, 0x69, 0x63, 0x22, 0x6c, + 0x0a, 0x16, 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x74, 0x65, + 0x78, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x75, + 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x62, 0x75, 0x66, 0x22, 0x54, 0x0a, 0x16, + 0x4d, 0x73, 0x67, 0x45, 0x6c, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x74, 0x79, 0x70, 0x65, 0x33, 0x38, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x44, 0x61, + 0x74, 0x61, 0x22, 0xa7, 0x01, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x4d, 0x73, 0x67, 0x54, 0x79, 0x70, + 0x65, 0x30, 0x78, 0x34, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x38, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x50, - 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x62, 0x0a, 0x08, + 0x6f, 0x6c, 0x79, 0x54, 0x6f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x66, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x76, 0x41, 0x74, 0x74, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x0a, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x42, 0x69, 0x7a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, - 0x22, 0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, 0x66, 0x66, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x61, 0x6e, - 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x74, 0x0a, 0x0e, - 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x66, 0x12, 0x20, - 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x75, - 0x69, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, - 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, 0x12, 0x20, 0x0a, - 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x28, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, - 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, - 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, 0x67, 0x12, 0x1c, 0x0a, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, - 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x64, - 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, - 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, - 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, - 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, - 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, - 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x43, 0x6e, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x16, + 0x32, 0x17, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x53, 0x68, 0x6f, 0x77, 0x22, 0x5a, 0x0a, 0x12, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x68, 0x6f, 0x77, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x66, + 0x66, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x65, + 0x66, 0x66, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x69, 0x6d, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0e, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x22, 0x74, 0x0a, 0x0e, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x6f, + 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, + 0x6c, 0x65, 0x55, 0x75, 0x69, 0x64, 0x22, 0x84, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x65, 0x67, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x06, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x71, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x46, + 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x61, 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x61, + 0x76, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x22, 0xcb, 0x01, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6d, 0x73, + 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, + 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x42, + 0x65, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x74, 0x75, 0x72, + 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x72, + 0x65, 0x74, 0x75, 0x72, 0x6e, 0x45, 0x6e, 0x64, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, - 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x50, 0x62, 0x50, 0x75, 0x73, - 0x68, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x08, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x64, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, + 0x43, 0x6e, 0x74, 0x22, 0xdc, 0x01, 0x0a, 0x16, 0x50, 0x62, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x65, + 0x44, 0x61, 0x79, 0x52, 0x6f, 0x61, 0x6d, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x70, 0x65, 0x65, 0x72, 0x55, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, + 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x50, 0x62, 0x50, 0x75, 0x73, 0x68, 0x4d, 0x73, 0x67, + 0x12, 0x1e, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, + 0x6d, 0x73, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x76, 0x72, 0x69, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x73, 0x68, 0x54, @@ -8669,178 +8749,179 @@ var file_msg_proto_rawDesc = []byte{ 0x01, 0x28, 0x04, 0x52, 0x07, 0x62, 0x69, 0x6e, 0x64, 0x55, 0x69, 0x6e, 0x2a, 0x2e, 0x0a, 0x08, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x54, 0x49, 0x4e, 0x55, 0x4d, 0x45, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, - 0x2e, 0x2f, 0x3b, 0x6d, 0x73, 0x67, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x42, 0x0c, 0x5a, 0x0a, + 0x70, 0x62, 0x2f, 0x6d, 0x73, 0x67, 0x3b, 0x6d, 0x73, 0x67, } var ( - file_msg_proto_rawDescOnce sync.Once - file_msg_proto_rawDescData = file_msg_proto_rawDesc + file_pb_msg_msg_proto_rawDescOnce sync.Once + file_pb_msg_msg_proto_rawDescData = file_pb_msg_msg_proto_rawDesc ) -func file_msg_proto_rawDescGZIP() []byte { - file_msg_proto_rawDescOnce.Do(func() { - file_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_msg_proto_rawDescData) +func file_pb_msg_msg_proto_rawDescGZIP() []byte { + file_pb_msg_msg_proto_rawDescOnce.Do(func() { + file_pb_msg_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_msg_msg_proto_rawDescData) }) - return file_msg_proto_rawDescData + return file_pb_msg_msg_proto_rawDescData } -var file_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 75) -var file_msg_proto_goTypes = []interface{}{ - (SyncFlag)(0), // 0: SyncFlag - (*GetMessageRequest)(nil), // 1: GetMessageRequest - (*SendMessageRequest)(nil), // 2: SendMessageRequest - (*SendMessageResponse)(nil), // 3: SendMessageResponse - (*MsgWithDrawReq)(nil), // 4: MsgWithDrawReq - (*C2CMsgWithDrawReq)(nil), // 5: C2CMsgWithDrawReq - (*GroupMsgWithDrawReq)(nil), // 6: GroupMsgWithDrawReq - (*MsgWithDrawResp)(nil), // 7: MsgWithDrawResp - (*C2CMsgWithDrawResp)(nil), // 8: C2CMsgWithDrawResp - (*GroupMsgWithDrawResp)(nil), // 9: GroupMsgWithDrawResp - (*GroupMsgInfo)(nil), // 10: GroupMsgInfo - (*C2CMsgInfo)(nil), // 11: C2CMsgInfo - (*RoutingHead)(nil), // 12: RoutingHead - (*WPATmp)(nil), // 13: WPATmp - (*C2C)(nil), // 14: C2C - (*Grp)(nil), // 15: Grp - (*GrpTmp)(nil), // 16: GrpTmp - (*MsgCtrl)(nil), // 17: MsgCtrl - (*GetMessageResponse)(nil), // 18: GetMessageResponse - (*PushMessagePacket)(nil), // 19: PushMessagePacket - (*UinPairMessage)(nil), // 20: UinPairMessage - (*Message)(nil), // 21: Message - (*MessageBody)(nil), // 22: MessageBody - (*RichText)(nil), // 23: RichText - (*Elem)(nil), // 24: Elem - (*MarketFace)(nil), // 25: MarketFace - (*ElemFlags2)(nil), // 26: ElemFlags2 - (*PcSupportDef)(nil), // 27: PcSupportDef - (*CommonElem)(nil), // 28: CommonElem - (*QQWalletMsg)(nil), // 29: QQWalletMsg - (*QQWalletAioBody)(nil), // 30: QQWalletAioBody - (*QQWalletAioElem)(nil), // 31: QQWalletAioElem - (*RichMsg)(nil), // 32: RichMsg - (*CustomElem)(nil), // 33: CustomElem - (*Text)(nil), // 34: Text - (*Attr)(nil), // 35: Attr - (*Ptt)(nil), // 36: Ptt - (*OnlineImage)(nil), // 37: OnlineImage - (*NotOnlineImage)(nil), // 38: NotOnlineImage - (*NotOnlineFile)(nil), // 39: NotOnlineFile - (*TransElem)(nil), // 40: TransElem - (*ExtraInfo)(nil), // 41: ExtraInfo - (*GroupFile)(nil), // 42: GroupFile - (*AnonymousGroupMessage)(nil), // 43: AnonymousGroupMessage - (*VideoFile)(nil), // 44: VideoFile - (*SourceMsg)(nil), // 45: SourceMsg - (*Face)(nil), // 46: Face - (*LightAppElem)(nil), // 47: LightAppElem - (*CustomFace)(nil), // 48: CustomFace - (*ContentHead)(nil), // 49: ContentHead - (*MessageHead)(nil), // 50: MessageHead - (*GroupInfo)(nil), // 51: GroupInfo - (*DiscussInfo)(nil), // 52: DiscussInfo - (*MutilTransHead)(nil), // 53: MutilTransHead - (*C2CTempMessageHead)(nil), // 54: C2CTempMessageHead - (*InstCtrl)(nil), // 55: InstCtrl - (*InstInfo)(nil), // 56: InstInfo - (*ExtGroupKeyInfo)(nil), // 57: ExtGroupKeyInfo - (*SyncCookie)(nil), // 58: SyncCookie - (*TransMsgInfo)(nil), // 59: TransMsgInfo - (*GeneralFlags)(nil), // 60: GeneralFlags - (*PbMultiMsgItem)(nil), // 61: PbMultiMsgItem - (*PbMultiMsgNew)(nil), // 62: PbMultiMsgNew - (*PbMultiMsgTransmit)(nil), // 63: PbMultiMsgTransmit - (*MsgElemInfoServtype3)(nil), // 64: MsgElemInfo_servtype3 - (*MsgElemInfoServtype33)(nil), // 65: MsgElemInfo_servtype33 - (*SubMsgType0X4Body)(nil), // 66: SubMsgType0x4Body - (*ResvAttr)(nil), // 67: ResvAttr - (*AnimationImageShow)(nil), // 68: AnimationImageShow - (*UinTypeUserDef)(nil), // 69: UinTypeUserDef - (*GetGroupMsgReq)(nil), // 70: GetGroupMsgReq - (*GetGroupMsgResp)(nil), // 71: GetGroupMsgResp - (*PbGetOneDayRoamMsgReq)(nil), // 72: PbGetOneDayRoamMsgReq - (*PbGetOneDayRoamMsgResp)(nil), // 73: PbGetOneDayRoamMsgResp - (*PbPushMsg)(nil), // 74: PbPushMsg - (*ElemFlags2_Inst)(nil), // 75: ElemFlags2.Inst +var file_pb_msg_msg_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_pb_msg_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 76) +var file_pb_msg_msg_proto_goTypes = []interface{}{ + (SyncFlag)(0), // 0: msg.SyncFlag + (*GetMessageRequest)(nil), // 1: msg.GetMessageRequest + (*SendMessageRequest)(nil), // 2: msg.SendMessageRequest + (*SendMessageResponse)(nil), // 3: msg.SendMessageResponse + (*MsgWithDrawReq)(nil), // 4: msg.MsgWithDrawReq + (*C2CMsgWithDrawReq)(nil), // 5: msg.C2CMsgWithDrawReq + (*GroupMsgWithDrawReq)(nil), // 6: msg.GroupMsgWithDrawReq + (*MsgWithDrawResp)(nil), // 7: msg.MsgWithDrawResp + (*C2CMsgWithDrawResp)(nil), // 8: msg.C2CMsgWithDrawResp + (*GroupMsgWithDrawResp)(nil), // 9: msg.GroupMsgWithDrawResp + (*GroupMsgInfo)(nil), // 10: msg.GroupMsgInfo + (*C2CMsgInfo)(nil), // 11: msg.C2CMsgInfo + (*RoutingHead)(nil), // 12: msg.RoutingHead + (*WPATmp)(nil), // 13: msg.WPATmp + (*C2C)(nil), // 14: msg.C2C + (*Grp)(nil), // 15: msg.Grp + (*GrpTmp)(nil), // 16: msg.GrpTmp + (*MsgCtrl)(nil), // 17: msg.MsgCtrl + (*GetMessageResponse)(nil), // 18: msg.GetMessageResponse + (*PushMessagePacket)(nil), // 19: msg.PushMessagePacket + (*UinPairMessage)(nil), // 20: msg.UinPairMessage + (*Message)(nil), // 21: msg.Message + (*MessageBody)(nil), // 22: msg.MessageBody + (*RichText)(nil), // 23: msg.RichText + (*Elem)(nil), // 24: msg.Elem + (*MarketFace)(nil), // 25: msg.MarketFace + (*ElemFlags2)(nil), // 26: msg.ElemFlags2 + (*PcSupportDef)(nil), // 27: msg.PcSupportDef + (*CommonElem)(nil), // 28: msg.CommonElem + (*QQWalletMsg)(nil), // 29: msg.QQWalletMsg + (*QQWalletAioBody)(nil), // 30: msg.QQWalletAioBody + (*QQWalletAioElem)(nil), // 31: msg.QQWalletAioElem + (*RichMsg)(nil), // 32: msg.RichMsg + (*CustomElem)(nil), // 33: msg.CustomElem + (*Text)(nil), // 34: msg.Text + (*Attr)(nil), // 35: msg.Attr + (*Ptt)(nil), // 36: msg.Ptt + (*OnlineImage)(nil), // 37: msg.OnlineImage + (*NotOnlineImage)(nil), // 38: msg.NotOnlineImage + (*NotOnlineFile)(nil), // 39: msg.NotOnlineFile + (*TransElem)(nil), // 40: msg.TransElem + (*ExtraInfo)(nil), // 41: msg.ExtraInfo + (*GroupFile)(nil), // 42: msg.GroupFile + (*AnonymousGroupMessage)(nil), // 43: msg.AnonymousGroupMessage + (*VideoFile)(nil), // 44: msg.VideoFile + (*SourceMsg)(nil), // 45: msg.SourceMsg + (*Face)(nil), // 46: msg.Face + (*LightAppElem)(nil), // 47: msg.LightAppElem + (*CustomFace)(nil), // 48: msg.CustomFace + (*ContentHead)(nil), // 49: msg.ContentHead + (*MessageHead)(nil), // 50: msg.MessageHead + (*GroupInfo)(nil), // 51: msg.GroupInfo + (*DiscussInfo)(nil), // 52: msg.DiscussInfo + (*MutilTransHead)(nil), // 53: msg.MutilTransHead + (*C2CTempMessageHead)(nil), // 54: msg.C2CTempMessageHead + (*InstCtrl)(nil), // 55: msg.InstCtrl + (*InstInfo)(nil), // 56: msg.InstInfo + (*ExtGroupKeyInfo)(nil), // 57: msg.ExtGroupKeyInfo + (*SyncCookie)(nil), // 58: msg.SyncCookie + (*TransMsgInfo)(nil), // 59: msg.TransMsgInfo + (*GeneralFlags)(nil), // 60: msg.GeneralFlags + (*PbMultiMsgItem)(nil), // 61: msg.PbMultiMsgItem + (*PbMultiMsgNew)(nil), // 62: msg.PbMultiMsgNew + (*PbMultiMsgTransmit)(nil), // 63: msg.PbMultiMsgTransmit + (*MsgElemInfoServtype3)(nil), // 64: msg.MsgElemInfo_servtype3 + (*MsgElemInfoServtype33)(nil), // 65: msg.MsgElemInfo_servtype33 + (*MsgElemInfoServtype38)(nil), // 66: msg.MsgElemInfo_servtype38 + (*SubMsgType0X4Body)(nil), // 67: msg.SubMsgType0x4Body + (*ResvAttr)(nil), // 68: msg.ResvAttr + (*AnimationImageShow)(nil), // 69: msg.AnimationImageShow + (*UinTypeUserDef)(nil), // 70: msg.UinTypeUserDef + (*GetGroupMsgReq)(nil), // 71: msg.GetGroupMsgReq + (*GetGroupMsgResp)(nil), // 72: msg.GetGroupMsgResp + (*PbGetOneDayRoamMsgReq)(nil), // 73: msg.PbGetOneDayRoamMsgReq + (*PbGetOneDayRoamMsgResp)(nil), // 74: msg.PbGetOneDayRoamMsgResp + (*PbPushMsg)(nil), // 75: msg.PbPushMsg + (*ElemFlags2_Inst)(nil), // 76: msg.ElemFlags2.Inst } -var file_msg_proto_depIdxs = []int32{ - 0, // 0: GetMessageRequest.syncFlag:type_name -> SyncFlag - 12, // 1: SendMessageRequest.routingHead:type_name -> RoutingHead - 49, // 2: SendMessageRequest.contentHead:type_name -> ContentHead - 22, // 3: SendMessageRequest.msgBody:type_name -> MessageBody - 17, // 4: SendMessageRequest.msgCtrl:type_name -> MsgCtrl - 5, // 5: MsgWithDrawReq.c2cWithDraw:type_name -> C2CMsgWithDrawReq - 6, // 6: MsgWithDrawReq.groupWithDraw:type_name -> GroupMsgWithDrawReq - 11, // 7: C2CMsgWithDrawReq.msgInfo:type_name -> C2CMsgInfo - 10, // 8: GroupMsgWithDrawReq.msgList:type_name -> GroupMsgInfo - 8, // 9: MsgWithDrawResp.c2cWithDraw:type_name -> C2CMsgWithDrawResp - 9, // 10: MsgWithDrawResp.groupWithDraw:type_name -> GroupMsgWithDrawResp - 12, // 11: C2CMsgInfo.routingHead:type_name -> RoutingHead - 14, // 12: RoutingHead.c2c:type_name -> C2C - 15, // 13: RoutingHead.grp:type_name -> Grp - 16, // 14: RoutingHead.grpTmp:type_name -> GrpTmp - 13, // 15: RoutingHead.wpaTmp:type_name -> WPATmp - 0, // 16: GetMessageResponse.syncFlag:type_name -> SyncFlag - 20, // 17: GetMessageResponse.uinPairMsgs:type_name -> UinPairMessage - 21, // 18: PushMessagePacket.message:type_name -> Message - 21, // 19: UinPairMessage.messages:type_name -> Message - 50, // 20: Message.head:type_name -> MessageHead - 49, // 21: Message.content:type_name -> ContentHead - 22, // 22: Message.body:type_name -> MessageBody - 23, // 23: MessageBody.richText:type_name -> RichText - 35, // 24: RichText.attr:type_name -> Attr - 24, // 25: RichText.elems:type_name -> Elem - 39, // 26: RichText.notOnlineFile:type_name -> NotOnlineFile - 36, // 27: RichText.ptt:type_name -> Ptt - 34, // 28: Elem.text:type_name -> Text - 46, // 29: Elem.face:type_name -> Face - 37, // 30: Elem.onlineImage:type_name -> OnlineImage - 38, // 31: Elem.notOnlineImage:type_name -> NotOnlineImage - 40, // 32: Elem.transElemInfo:type_name -> TransElem - 25, // 33: Elem.marketFace:type_name -> MarketFace - 48, // 34: Elem.customFace:type_name -> CustomFace - 26, // 35: Elem.elemFlags2:type_name -> ElemFlags2 - 32, // 36: Elem.richMsg:type_name -> RichMsg - 42, // 37: Elem.groupFile:type_name -> GroupFile - 41, // 38: Elem.extraInfo:type_name -> ExtraInfo - 44, // 39: Elem.videoFile:type_name -> VideoFile - 43, // 40: Elem.anonGroupMsg:type_name -> AnonymousGroupMessage - 29, // 41: Elem.QQWalletMsg:type_name -> QQWalletMsg - 33, // 42: Elem.customElem:type_name -> CustomElem - 60, // 43: Elem.generalFlags:type_name -> GeneralFlags - 45, // 44: Elem.srcMsg:type_name -> SourceMsg - 47, // 45: Elem.lightApp:type_name -> LightAppElem - 28, // 46: Elem.commonElem:type_name -> CommonElem - 75, // 47: ElemFlags2.insts:type_name -> ElemFlags2.Inst - 75, // 48: ElemFlags2.srcInst:type_name -> ElemFlags2.Inst - 27, // 49: ElemFlags2.pcSupportDef:type_name -> PcSupportDef - 30, // 50: QQWalletMsg.aioBody:type_name -> QQWalletAioBody - 31, // 51: QQWalletAioBody.sender:type_name -> QQWalletAioElem - 31, // 52: QQWalletAioBody.receiver:type_name -> QQWalletAioElem - 24, // 53: SourceMsg.elems:type_name -> Elem - 54, // 54: MessageHead.c2cTmpMsgHead:type_name -> C2CTempMessageHead - 51, // 55: MessageHead.groupInfo:type_name -> GroupInfo - 52, // 56: MessageHead.discussInfo:type_name -> DiscussInfo - 53, // 57: MessageHead.mutiltransHead:type_name -> MutilTransHead - 55, // 58: MessageHead.msgInstCtrl:type_name -> InstCtrl - 57, // 59: MessageHead.extGroupKeyInfo:type_name -> ExtGroupKeyInfo - 56, // 60: InstCtrl.msgSendToInst:type_name -> InstInfo - 56, // 61: InstCtrl.msgExcludeInst:type_name -> InstInfo - 56, // 62: InstCtrl.msgFromInst:type_name -> InstInfo - 57, // 63: TransMsgInfo.extGroupKeyInfo:type_name -> ExtGroupKeyInfo - 62, // 64: PbMultiMsgItem.buffer:type_name -> PbMultiMsgNew - 21, // 65: PbMultiMsgNew.msg:type_name -> Message - 21, // 66: PbMultiMsgTransmit.msg:type_name -> Message - 61, // 67: PbMultiMsgTransmit.pbItemList:type_name -> PbMultiMsgItem - 48, // 68: MsgElemInfo_servtype3.flash_troop_pic:type_name -> CustomFace - 38, // 69: MsgElemInfo_servtype3.flash_c2c_pic:type_name -> NotOnlineImage - 39, // 70: SubMsgType0x4Body.notOnlineFile:type_name -> NotOnlineFile - 68, // 71: ResvAttr.image_show:type_name -> AnimationImageShow - 21, // 72: GetGroupMsgResp.msg:type_name -> Message - 21, // 73: PbGetOneDayRoamMsgResp.msg:type_name -> Message - 21, // 74: PbPushMsg.msg:type_name -> Message +var file_pb_msg_msg_proto_depIdxs = []int32{ + 0, // 0: msg.GetMessageRequest.syncFlag:type_name -> msg.SyncFlag + 12, // 1: msg.SendMessageRequest.routingHead:type_name -> msg.RoutingHead + 49, // 2: msg.SendMessageRequest.contentHead:type_name -> msg.ContentHead + 22, // 3: msg.SendMessageRequest.msgBody:type_name -> msg.MessageBody + 17, // 4: msg.SendMessageRequest.msgCtrl:type_name -> msg.MsgCtrl + 5, // 5: msg.MsgWithDrawReq.c2cWithDraw:type_name -> msg.C2CMsgWithDrawReq + 6, // 6: msg.MsgWithDrawReq.groupWithDraw:type_name -> msg.GroupMsgWithDrawReq + 11, // 7: msg.C2CMsgWithDrawReq.msgInfo:type_name -> msg.C2CMsgInfo + 10, // 8: msg.GroupMsgWithDrawReq.msgList:type_name -> msg.GroupMsgInfo + 8, // 9: msg.MsgWithDrawResp.c2cWithDraw:type_name -> msg.C2CMsgWithDrawResp + 9, // 10: msg.MsgWithDrawResp.groupWithDraw:type_name -> msg.GroupMsgWithDrawResp + 12, // 11: msg.C2CMsgInfo.routingHead:type_name -> msg.RoutingHead + 14, // 12: msg.RoutingHead.c2c:type_name -> msg.C2C + 15, // 13: msg.RoutingHead.grp:type_name -> msg.Grp + 16, // 14: msg.RoutingHead.grpTmp:type_name -> msg.GrpTmp + 13, // 15: msg.RoutingHead.wpaTmp:type_name -> msg.WPATmp + 0, // 16: msg.GetMessageResponse.syncFlag:type_name -> msg.SyncFlag + 20, // 17: msg.GetMessageResponse.uinPairMsgs:type_name -> msg.UinPairMessage + 21, // 18: msg.PushMessagePacket.message:type_name -> msg.Message + 21, // 19: msg.UinPairMessage.messages:type_name -> msg.Message + 50, // 20: msg.Message.head:type_name -> msg.MessageHead + 49, // 21: msg.Message.content:type_name -> msg.ContentHead + 22, // 22: msg.Message.body:type_name -> msg.MessageBody + 23, // 23: msg.MessageBody.richText:type_name -> msg.RichText + 35, // 24: msg.RichText.attr:type_name -> msg.Attr + 24, // 25: msg.RichText.elems:type_name -> msg.Elem + 39, // 26: msg.RichText.notOnlineFile:type_name -> msg.NotOnlineFile + 36, // 27: msg.RichText.ptt:type_name -> msg.Ptt + 34, // 28: msg.Elem.text:type_name -> msg.Text + 46, // 29: msg.Elem.face:type_name -> msg.Face + 37, // 30: msg.Elem.onlineImage:type_name -> msg.OnlineImage + 38, // 31: msg.Elem.notOnlineImage:type_name -> msg.NotOnlineImage + 40, // 32: msg.Elem.transElemInfo:type_name -> msg.TransElem + 25, // 33: msg.Elem.marketFace:type_name -> msg.MarketFace + 48, // 34: msg.Elem.customFace:type_name -> msg.CustomFace + 26, // 35: msg.Elem.elemFlags2:type_name -> msg.ElemFlags2 + 32, // 36: msg.Elem.richMsg:type_name -> msg.RichMsg + 42, // 37: msg.Elem.groupFile:type_name -> msg.GroupFile + 41, // 38: msg.Elem.extraInfo:type_name -> msg.ExtraInfo + 44, // 39: msg.Elem.videoFile:type_name -> msg.VideoFile + 43, // 40: msg.Elem.anonGroupMsg:type_name -> msg.AnonymousGroupMessage + 29, // 41: msg.Elem.QQWalletMsg:type_name -> msg.QQWalletMsg + 33, // 42: msg.Elem.customElem:type_name -> msg.CustomElem + 60, // 43: msg.Elem.generalFlags:type_name -> msg.GeneralFlags + 45, // 44: msg.Elem.srcMsg:type_name -> msg.SourceMsg + 47, // 45: msg.Elem.lightApp:type_name -> msg.LightAppElem + 28, // 46: msg.Elem.commonElem:type_name -> msg.CommonElem + 76, // 47: msg.ElemFlags2.insts:type_name -> msg.ElemFlags2.Inst + 76, // 48: msg.ElemFlags2.srcInst:type_name -> msg.ElemFlags2.Inst + 27, // 49: msg.ElemFlags2.pcSupportDef:type_name -> msg.PcSupportDef + 30, // 50: msg.QQWalletMsg.aioBody:type_name -> msg.QQWalletAioBody + 31, // 51: msg.QQWalletAioBody.sender:type_name -> msg.QQWalletAioElem + 31, // 52: msg.QQWalletAioBody.receiver:type_name -> msg.QQWalletAioElem + 24, // 53: msg.SourceMsg.elems:type_name -> msg.Elem + 54, // 54: msg.MessageHead.c2cTmpMsgHead:type_name -> msg.C2CTempMessageHead + 51, // 55: msg.MessageHead.groupInfo:type_name -> msg.GroupInfo + 52, // 56: msg.MessageHead.discussInfo:type_name -> msg.DiscussInfo + 53, // 57: msg.MessageHead.mutiltransHead:type_name -> msg.MutilTransHead + 55, // 58: msg.MessageHead.msgInstCtrl:type_name -> msg.InstCtrl + 57, // 59: msg.MessageHead.extGroupKeyInfo:type_name -> msg.ExtGroupKeyInfo + 56, // 60: msg.InstCtrl.msgSendToInst:type_name -> msg.InstInfo + 56, // 61: msg.InstCtrl.msgExcludeInst:type_name -> msg.InstInfo + 56, // 62: msg.InstCtrl.msgFromInst:type_name -> msg.InstInfo + 57, // 63: msg.TransMsgInfo.extGroupKeyInfo:type_name -> msg.ExtGroupKeyInfo + 62, // 64: msg.PbMultiMsgItem.buffer:type_name -> msg.PbMultiMsgNew + 21, // 65: msg.PbMultiMsgNew.msg:type_name -> msg.Message + 21, // 66: msg.PbMultiMsgTransmit.msg:type_name -> msg.Message + 61, // 67: msg.PbMultiMsgTransmit.pbItemList:type_name -> msg.PbMultiMsgItem + 48, // 68: msg.MsgElemInfo_servtype3.flash_troop_pic:type_name -> msg.CustomFace + 38, // 69: msg.MsgElemInfo_servtype3.flash_c2c_pic:type_name -> msg.NotOnlineImage + 39, // 70: msg.SubMsgType0x4Body.notOnlineFile:type_name -> msg.NotOnlineFile + 69, // 71: msg.ResvAttr.image_show:type_name -> msg.AnimationImageShow + 21, // 72: msg.GetGroupMsgResp.msg:type_name -> msg.Message + 21, // 73: msg.PbGetOneDayRoamMsgResp.msg:type_name -> msg.Message + 21, // 74: msg.PbPushMsg.msg:type_name -> msg.Message 75, // [75:75] is the sub-list for method output_type 75, // [75:75] is the sub-list for method input_type 75, // [75:75] is the sub-list for extension type_name @@ -8848,13 +8929,13 @@ var file_msg_proto_depIdxs = []int32{ 0, // [0:75] is the sub-list for field type_name } -func init() { file_msg_proto_init() } -func file_msg_proto_init() { - if File_msg_proto != nil { +func init() { file_pb_msg_msg_proto_init() } +func file_pb_msg_msg_proto_init() { + if File_pb_msg_msg_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessageRequest); i { case 0: return &v.state @@ -8866,7 +8947,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageRequest); i { case 0: return &v.state @@ -8878,7 +8959,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SendMessageResponse); i { case 0: return &v.state @@ -8890,7 +8971,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgWithDrawReq); i { case 0: return &v.state @@ -8902,7 +8983,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgWithDrawReq); i { case 0: return &v.state @@ -8914,7 +8995,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgWithDrawReq); i { case 0: return &v.state @@ -8926,7 +9007,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgWithDrawResp); i { case 0: return &v.state @@ -8938,7 +9019,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgWithDrawResp); i { case 0: return &v.state @@ -8950,7 +9031,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgWithDrawResp); i { case 0: return &v.state @@ -8962,7 +9043,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupMsgInfo); i { case 0: return &v.state @@ -8974,7 +9055,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CMsgInfo); i { case 0: return &v.state @@ -8986,7 +9067,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoutingHead); i { case 0: return &v.state @@ -8998,7 +9079,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WPATmp); i { case 0: return &v.state @@ -9010,7 +9091,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2C); i { case 0: return &v.state @@ -9022,7 +9103,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Grp); i { case 0: return &v.state @@ -9034,7 +9115,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GrpTmp); i { case 0: return &v.state @@ -9046,7 +9127,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgCtrl); i { case 0: return &v.state @@ -9058,7 +9139,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMessageResponse); i { case 0: return &v.state @@ -9070,7 +9151,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PushMessagePacket); i { case 0: return &v.state @@ -9082,7 +9163,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UinPairMessage); i { case 0: return &v.state @@ -9094,7 +9175,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Message); i { case 0: return &v.state @@ -9106,7 +9187,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageBody); i { case 0: return &v.state @@ -9118,7 +9199,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichText); i { case 0: return &v.state @@ -9130,7 +9211,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Elem); i { case 0: return &v.state @@ -9142,7 +9223,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarketFace); i { case 0: return &v.state @@ -9154,7 +9235,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElemFlags2); i { case 0: return &v.state @@ -9166,7 +9247,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PcSupportDef); i { case 0: return &v.state @@ -9178,7 +9259,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CommonElem); i { case 0: return &v.state @@ -9190,7 +9271,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletMsg); i { case 0: return &v.state @@ -9202,7 +9283,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletAioBody); i { case 0: return &v.state @@ -9214,7 +9295,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QQWalletAioElem); i { case 0: return &v.state @@ -9226,7 +9307,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichMsg); i { case 0: return &v.state @@ -9238,7 +9319,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomElem); i { case 0: return &v.state @@ -9250,7 +9331,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Text); i { case 0: return &v.state @@ -9262,7 +9343,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Attr); i { case 0: return &v.state @@ -9274,7 +9355,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ptt); i { case 0: return &v.state @@ -9286,7 +9367,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*OnlineImage); i { case 0: return &v.state @@ -9298,7 +9379,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotOnlineImage); i { case 0: return &v.state @@ -9310,7 +9391,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotOnlineFile); i { case 0: return &v.state @@ -9322,7 +9403,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransElem); i { case 0: return &v.state @@ -9334,7 +9415,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtraInfo); i { case 0: return &v.state @@ -9346,7 +9427,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupFile); i { case 0: return &v.state @@ -9358,7 +9439,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnonymousGroupMessage); i { case 0: return &v.state @@ -9370,7 +9451,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VideoFile); i { case 0: return &v.state @@ -9382,7 +9463,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceMsg); i { case 0: return &v.state @@ -9394,7 +9475,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Face); i { case 0: return &v.state @@ -9406,7 +9487,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LightAppElem); i { case 0: return &v.state @@ -9418,7 +9499,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CustomFace); i { case 0: return &v.state @@ -9430,7 +9511,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContentHead); i { case 0: return &v.state @@ -9442,7 +9523,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MessageHead); i { case 0: return &v.state @@ -9454,7 +9535,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GroupInfo); i { case 0: return &v.state @@ -9466,7 +9547,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiscussInfo); i { case 0: return &v.state @@ -9478,7 +9559,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MutilTransHead); i { case 0: return &v.state @@ -9490,7 +9571,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*C2CTempMessageHead); i { case 0: return &v.state @@ -9502,7 +9583,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstCtrl); i { case 0: return &v.state @@ -9514,7 +9595,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InstInfo); i { case 0: return &v.state @@ -9526,7 +9607,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ExtGroupKeyInfo); i { case 0: return &v.state @@ -9538,7 +9619,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SyncCookie); i { case 0: return &v.state @@ -9550,7 +9631,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TransMsgInfo); i { case 0: return &v.state @@ -9562,7 +9643,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GeneralFlags); i { case 0: return &v.state @@ -9574,7 +9655,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgItem); i { case 0: return &v.state @@ -9586,7 +9667,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgNew); i { case 0: return &v.state @@ -9598,7 +9679,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbMultiMsgTransmit); i { case 0: return &v.state @@ -9610,7 +9691,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgElemInfoServtype3); i { case 0: return &v.state @@ -9622,7 +9703,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MsgElemInfoServtype33); i { case 0: return &v.state @@ -9634,7 +9715,19 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgElemInfoServtype38); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pb_msg_msg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SubMsgType0X4Body); i { case 0: return &v.state @@ -9646,7 +9739,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResvAttr); i { case 0: return &v.state @@ -9658,7 +9751,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnimationImageShow); i { case 0: return &v.state @@ -9670,7 +9763,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UinTypeUserDef); i { case 0: return &v.state @@ -9682,7 +9775,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupMsgReq); i { case 0: return &v.state @@ -9694,7 +9787,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupMsgResp); i { case 0: return &v.state @@ -9706,7 +9799,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbGetOneDayRoamMsgReq); i { case 0: return &v.state @@ -9718,7 +9811,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbGetOneDayRoamMsgResp); i { case 0: return &v.state @@ -9730,7 +9823,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbPushMsg); i { case 0: return &v.state @@ -9742,7 +9835,7 @@ func file_msg_proto_init() { return nil } } - file_msg_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + file_pb_msg_msg_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ElemFlags2_Inst); i { case 0: return &v.state @@ -9759,19 +9852,19 @@ func file_msg_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_msg_proto_rawDesc, + RawDescriptor: file_pb_msg_msg_proto_rawDesc, NumEnums: 1, - NumMessages: 75, + NumMessages: 76, NumExtensions: 0, NumServices: 0, }, - GoTypes: file_msg_proto_goTypes, - DependencyIndexes: file_msg_proto_depIdxs, - EnumInfos: file_msg_proto_enumTypes, - MessageInfos: file_msg_proto_msgTypes, + GoTypes: file_pb_msg_msg_proto_goTypes, + DependencyIndexes: file_pb_msg_msg_proto_depIdxs, + EnumInfos: file_pb_msg_msg_proto_enumTypes, + MessageInfos: file_pb_msg_msg_proto_msgTypes, }.Build() - File_msg_proto = out.File - file_msg_proto_rawDesc = nil - file_msg_proto_goTypes = nil - file_msg_proto_depIdxs = nil + File_pb_msg_msg_proto = out.File + file_pb_msg_msg_proto_rawDesc = nil + file_pb_msg_msg_proto_goTypes = nil + file_pb_msg_msg_proto_depIdxs = nil } diff --git a/client/pb/msg/msg.proto b/client/pb/msg/msg.proto index 22088721..92bb34c5 100644 --- a/client/pb/msg/msg.proto +++ b/client/pb/msg/msg.proto @@ -1,6 +1,8 @@ syntax = "proto2"; -option go_package = "./;msg"; +package msg; + +option go_package = "pb/msg;msg"; message GetMessageRequest { optional SyncFlag syncFlag = 1; @@ -774,6 +776,11 @@ message MsgElemInfo_servtype33 { optional bytes buf = 4; } +message MsgElemInfo_servtype38 { + optional bytes reactData = 1; + optional bytes replyData = 2; +} + message SubMsgType0x4Body { optional NotOnlineFile notOnlineFile = 1; optional uint32 msgTime = 2; diff --git a/message/image.go b/message/image.go index 147c537a..b8cbdcc3 100644 --- a/message/image.go +++ b/message/image.go @@ -36,6 +36,18 @@ type FriendImageElement struct { Flash bool } +type GuildImageElement struct { + FileId uint64 + FilePath string + ImageType int32 + Size int32 + Width int32 + Height int32 + DownloadIndex string + Md5 []byte + Url string +} + type ImageBizType uint32 const ( @@ -74,6 +86,10 @@ func (e *FriendImageElement) Type() ElementType { return Image } +func (e *GuildImageElement) Type() ElementType { + return Image +} + func (e *GroupImageElement) Pack() (r []*msg.Elem) { cface := &msg.CustomFace{ FileType: proto.Int32(66), @@ -155,3 +171,24 @@ func (e *FriendImageElement) Pack() (r []*msg.Elem) { elem := &msg.Elem{NotOnlineImage: image} return []*msg.Elem{elem} } + +func (e *GuildImageElement) Pack() (r []*msg.Elem) { + cface := &msg.CustomFace{ + FileType: proto.Int32(66), + Useful: proto.Int32(1), + BizType: proto.Int32(0), + Width: &e.Width, + Height: &e.Height, + FileId: proto.Int32(int32(e.FileId)), + FilePath: &e.FilePath, + ImageType: &e.ImageType, + Size: &e.Size, + Md5: e.Md5, + PbReserve: binary.DynamicProtoMessage{ + 1: uint32(0), 2: uint32(0), 6: "", 10: uint32(0), 15: uint32(8), + 20: e.DownloadIndex, + }.Encode(), + } + elem := &msg.Elem{CustomFace: cface} + return []*msg.Elem{elem} +} diff --git a/message/message_guild.go b/message/message_guild.go new file mode 100644 index 00000000..7297b0cc --- /dev/null +++ b/message/message_guild.go @@ -0,0 +1,26 @@ +package message + +type ( + GuildChannelMessage struct { + Id uint64 + InternalId int32 + GuildId uint64 + ChannelId uint64 + Time int64 + Sender *GuildSender + Elements []IMessageElement + } + + GuildMessageEmojiReaction struct { + EmojiId string + EmojiType uint64 + Face *FaceElement + Count int32 + Clicked bool + } + + GuildSender struct { + TinyId uint64 + Nickname string + } +)