// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.1 // protoc v3.14.0 // source: pb/channel/GuildFeedCloudMeta.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 ContentMetaData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Count *RichTextContentCount `protobuf:"bytes,1,opt,name=count" json:"count,omitempty"` ContentID *int64 `protobuf:"varint,2,opt,name=ContentID" json:"ContentID,omitempty"` } func (x *ContentMetaData) Reset() { *x = ContentMetaData{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ContentMetaData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ContentMetaData) ProtoMessage() {} func (x *ContentMetaData) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 ContentMetaData.ProtoReflect.Descriptor instead. func (*ContentMetaData) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{0} } func (x *ContentMetaData) GetCount() *RichTextContentCount { if x != nil { return x.Count } return nil } func (x *ContentMetaData) GetContentID() int64 { if x != nil && x.ContentID != nil { return *x.ContentID } return 0 } type FeedMetaData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Content *ContentMetaData `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"` LastModifiedTime *uint64 `protobuf:"varint,2,opt,name=lastModifiedTime" json:"lastModifiedTime,omitempty"` } func (x *FeedMetaData) Reset() { *x = FeedMetaData{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeedMetaData) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeedMetaData) ProtoMessage() {} func (x *FeedMetaData) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 FeedMetaData.ProtoReflect.Descriptor instead. func (*FeedMetaData) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{1} } func (x *FeedMetaData) GetContent() *ContentMetaData { if x != nil { return x.Content } return nil } func (x *FeedMetaData) GetLastModifiedTime() uint64 { if x != nil && x.LastModifiedTime != nil { return *x.LastModifiedTime } return 0 } type FeedRedTouchTransInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FeedId *string `protobuf:"bytes,1,opt,name=feedId" json:"feedId,omitempty"` Author *string `protobuf:"bytes,2,opt,name=author" json:"author,omitempty"` CreateTs *int64 `protobuf:"varint,3,opt,name=createTs" json:"createTs,omitempty"` MsgType *int32 `protobuf:"varint,4,opt,name=msgType" json:"msgType,omitempty"` PageType *int32 `protobuf:"varint,5,opt,name=pageType" json:"pageType,omitempty"` RedType *int32 `protobuf:"varint,6,opt,name=redType" json:"redType,omitempty"` InsertPageType *int32 `protobuf:"varint,7,opt,name=insertPageType" json:"insertPageType,omitempty"` } func (x *FeedRedTouchTransInfo) Reset() { *x = FeedRedTouchTransInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FeedRedTouchTransInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FeedRedTouchTransInfo) ProtoMessage() {} func (x *FeedRedTouchTransInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 FeedRedTouchTransInfo.ProtoReflect.Descriptor instead. func (*FeedRedTouchTransInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{2} } func (x *FeedRedTouchTransInfo) GetFeedId() string { if x != nil && x.FeedId != nil { return *x.FeedId } return "" } func (x *FeedRedTouchTransInfo) GetAuthor() string { if x != nil && x.Author != nil { return *x.Author } return "" } func (x *FeedRedTouchTransInfo) GetCreateTs() int64 { if x != nil && x.CreateTs != nil { return *x.CreateTs } return 0 } func (x *FeedRedTouchTransInfo) GetMsgType() int32 { if x != nil && x.MsgType != nil { return *x.MsgType } return 0 } func (x *FeedRedTouchTransInfo) GetPageType() int32 { if x != nil && x.PageType != nil { return *x.PageType } return 0 } func (x *FeedRedTouchTransInfo) GetRedType() int32 { if x != nil && x.RedType != nil { return *x.RedType } return 0 } func (x *FeedRedTouchTransInfo) GetInsertPageType() int32 { if x != nil && x.InsertPageType != nil { return *x.InsertPageType } return 0 } type NoticeOperation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` Schema *string `protobuf:"bytes,2,opt,name=schema" json:"schema,omitempty"` } func (x *NoticeOperation) Reset() { *x = NoticeOperation{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NoticeOperation) String() string { return protoimpl.X.MessageStringOf(x) } func (*NoticeOperation) ProtoMessage() {} func (x *NoticeOperation) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 NoticeOperation.ProtoReflect.Descriptor instead. func (*NoticeOperation) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{3} } func (x *NoticeOperation) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *NoticeOperation) GetSchema() string { if x != nil && x.Schema != nil { return *x.Schema } return "" } type RichTextContentCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TextWord *uint64 `protobuf:"varint,1,opt,name=textWord" json:"textWord,omitempty"` At *uint64 `protobuf:"varint,2,opt,name=at" json:"at,omitempty"` Url *uint64 `protobuf:"varint,3,opt,name=url" json:"url,omitempty"` Emoji *uint64 `protobuf:"varint,4,opt,name=emoji" json:"emoji,omitempty"` Image *uint64 `protobuf:"varint,5,opt,name=image" json:"image,omitempty"` Video *uint64 `protobuf:"varint,6,opt,name=video" json:"video,omitempty"` } func (x *RichTextContentCount) Reset() { *x = RichTextContentCount{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RichTextContentCount) String() string { return protoimpl.X.MessageStringOf(x) } func (*RichTextContentCount) ProtoMessage() {} func (x *RichTextContentCount) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 RichTextContentCount.ProtoReflect.Descriptor instead. func (*RichTextContentCount) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{4} } func (x *RichTextContentCount) GetTextWord() uint64 { if x != nil && x.TextWord != nil { return *x.TextWord } return 0 } func (x *RichTextContentCount) GetAt() uint64 { if x != nil && x.At != nil { return *x.At } return 0 } func (x *RichTextContentCount) GetUrl() uint64 { if x != nil && x.Url != nil { return *x.Url } return 0 } func (x *RichTextContentCount) GetEmoji() uint64 { if x != nil && x.Emoji != nil { return *x.Emoji } return 0 } func (x *RichTextContentCount) GetImage() uint64 { if x != nil && x.Image != nil { return *x.Image } return 0 } func (x *RichTextContentCount) GetVideo() uint64 { if x != nil && x.Video != nil { return *x.Video } return 0 } type StAnimation struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Width *uint32 `protobuf:"varint,1,opt,name=width" json:"width,omitempty"` Height *uint32 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"` AnimationUrl *string `protobuf:"bytes,3,opt,name=animationUrl" json:"animationUrl,omitempty"` BusiData []byte `protobuf:"bytes,4,opt,name=busiData" json:"busiData,omitempty"` } func (x *StAnimation) Reset() { *x = StAnimation{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StAnimation) String() string { return protoimpl.X.MessageStringOf(x) } func (*StAnimation) ProtoMessage() {} func (x *StAnimation) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StAnimation.ProtoReflect.Descriptor instead. func (*StAnimation) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{5} } func (x *StAnimation) GetWidth() uint32 { if x != nil && x.Width != nil { return *x.Width } return 0 } func (x *StAnimation) GetHeight() uint32 { if x != nil && x.Height != nil { return *x.Height } return 0 } func (x *StAnimation) GetAnimationUrl() string { if x != nil && x.AnimationUrl != nil { return *x.AnimationUrl } return "" } func (x *StAnimation) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } type StBusiReportInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RecomReport *StRecomReportInfo `protobuf:"bytes,1,opt,name=recomReport" json:"recomReport,omitempty"` TraceID *string `protobuf:"bytes,2,opt,name=traceID" json:"traceID,omitempty"` } func (x *StBusiReportInfo) Reset() { *x = StBusiReportInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StBusiReportInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StBusiReportInfo) ProtoMessage() {} func (x *StBusiReportInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StBusiReportInfo.ProtoReflect.Descriptor instead. func (*StBusiReportInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{6} } func (x *StBusiReportInfo) GetRecomReport() *StRecomReportInfo { if x != nil { return x.RecomReport } return nil } func (x *StBusiReportInfo) GetTraceID() string { if x != nil && x.TraceID != nil { return *x.TraceID } return "" } type StChannelShareInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FeedID *string `protobuf:"bytes,1,opt,name=feedID" json:"feedID,omitempty"` PosterID *string `protobuf:"bytes,2,opt,name=posterID" json:"posterID,omitempty"` FeedPublishAt *uint64 `protobuf:"varint,3,opt,name=feedPublishAt" json:"feedPublishAt,omitempty"` ChannelSign *StChannelSign `protobuf:"bytes,4,opt,name=channelSign" json:"channelSign,omitempty"` UpdateDurationMs *uint64 `protobuf:"varint,5,opt,name=updateDurationMs" json:"updateDurationMs,omitempty"` Sign *StChannelShareSign `protobuf:"bytes,6,opt,name=sign" json:"sign,omitempty"` } func (x *StChannelShareInfo) Reset() { *x = StChannelShareInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StChannelShareInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StChannelShareInfo) ProtoMessage() {} func (x *StChannelShareInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StChannelShareInfo.ProtoReflect.Descriptor instead. func (*StChannelShareInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{7} } func (x *StChannelShareInfo) GetFeedID() string { if x != nil && x.FeedID != nil { return *x.FeedID } return "" } func (x *StChannelShareInfo) GetPosterID() string { if x != nil && x.PosterID != nil { return *x.PosterID } return "" } func (x *StChannelShareInfo) GetFeedPublishAt() uint64 { if x != nil && x.FeedPublishAt != nil { return *x.FeedPublishAt } return 0 } func (x *StChannelShareInfo) GetChannelSign() *StChannelSign { if x != nil { return x.ChannelSign } return nil } func (x *StChannelShareInfo) GetUpdateDurationMs() uint64 { if x != nil && x.UpdateDurationMs != nil { return *x.UpdateDurationMs } return 0 } func (x *StChannelShareInfo) GetSign() *StChannelShareSign { if x != nil { return x.Sign } return nil } type StChannelShareSign struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CreateAt *uint64 `protobuf:"varint,1,opt,name=createAt" json:"createAt,omitempty"` Token *string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` } func (x *StChannelShareSign) Reset() { *x = StChannelShareSign{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StChannelShareSign) String() string { return protoimpl.X.MessageStringOf(x) } func (*StChannelShareSign) ProtoMessage() {} func (x *StChannelShareSign) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StChannelShareSign.ProtoReflect.Descriptor instead. func (*StChannelShareSign) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{8} } func (x *StChannelShareSign) GetCreateAt() uint64 { if x != nil && x.CreateAt != nil { return *x.CreateAt } return 0 } func (x *StChannelShareSign) GetToken() string { if x != nil && x.Token != nil { return *x.Token } return "" } type StCircleRankItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankNo *int32 `protobuf:"varint,1,opt,name=rankNo" json:"rankNo,omitempty"` CircleName *string `protobuf:"bytes,2,opt,name=circleName" json:"circleName,omitempty"` FuelValue *int64 `protobuf:"varint,3,opt,name=fuelValue" json:"fuelValue,omitempty"` FeedNum *int64 `protobuf:"varint,4,opt,name=feedNum" json:"feedNum,omitempty"` CircleID *string `protobuf:"bytes,5,opt,name=circleID" json:"circleID,omitempty"` } func (x *StCircleRankItem) Reset() { *x = StCircleRankItem{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StCircleRankItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*StCircleRankItem) ProtoMessage() {} func (x *StCircleRankItem) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StCircleRankItem.ProtoReflect.Descriptor instead. func (*StCircleRankItem) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{9} } func (x *StCircleRankItem) GetRankNo() int32 { if x != nil && x.RankNo != nil { return *x.RankNo } return 0 } func (x *StCircleRankItem) GetCircleName() string { if x != nil && x.CircleName != nil { return *x.CircleName } return "" } func (x *StCircleRankItem) GetFuelValue() int64 { if x != nil && x.FuelValue != nil { return *x.FuelValue } return 0 } func (x *StCircleRankItem) GetFeedNum() int64 { if x != nil && x.FeedNum != nil { return *x.FeedNum } return 0 } func (x *StCircleRankItem) GetCircleID() string { if x != nil && x.CircleID != nil { return *x.CircleID } return "" } type StClientInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Feedclientkey *string `protobuf:"bytes,1,opt,name=feedclientkey" json:"feedclientkey,omitempty"` ClientMap []*CommonEntry `protobuf:"bytes,2,rep,name=clientMap" json:"clientMap,omitempty"` } func (x *StClientInfo) Reset() { *x = StClientInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StClientInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StClientInfo) ProtoMessage() {} func (x *StClientInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StClientInfo.ProtoReflect.Descriptor instead. func (*StClientInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{10} } func (x *StClientInfo) GetFeedclientkey() string { if x != nil && x.Feedclientkey != nil { return *x.Feedclientkey } return "" } func (x *StClientInfo) GetClientMap() []*CommonEntry { if x != nil { return x.ClientMap } return nil } type StComment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` PostUser *StUser `protobuf:"bytes,2,opt,name=postUser" json:"postUser,omitempty"` CreateTime *uint64 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` Content *string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` ReplyCount *uint32 `protobuf:"varint,5,opt,name=replyCount" json:"replyCount,omitempty"` VecReply []*StReply `protobuf:"bytes,6,rep,name=vecReply" json:"vecReply,omitempty"` BusiData []byte `protobuf:"bytes,7,opt,name=busiData" json:"busiData,omitempty"` LikeInfo *StLike `protobuf:"bytes,8,opt,name=likeInfo" json:"likeInfo,omitempty"` TypeFlag *uint32 `protobuf:"varint,9,opt,name=typeFlag" json:"typeFlag,omitempty"` AtUinList []string `protobuf:"bytes,10,rep,name=atUinList" json:"atUinList,omitempty"` TypeFlag2 *uint32 `protobuf:"varint,11,opt,name=typeFlag2" json:"typeFlag2,omitempty"` CreateTimeNs *uint64 `protobuf:"varint,12,opt,name=createTimeNs" json:"createTimeNs,omitempty"` StoreExtInfo []*CommonEntry `protobuf:"bytes,13,rep,name=storeExtInfo" json:"storeExtInfo,omitempty"` ThirdId *string `protobuf:"bytes,14,opt,name=thirdId" json:"thirdId,omitempty"` SourceType *uint32 `protobuf:"varint,15,opt,name=sourceType" json:"sourceType,omitempty"` RichContents *StRichText `protobuf:"bytes,16,opt,name=richContents" json:"richContents,omitempty"` } func (x *StComment) Reset() { *x = StComment{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StComment) String() string { return protoimpl.X.MessageStringOf(x) } func (*StComment) ProtoMessage() {} func (x *StComment) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StComment.ProtoReflect.Descriptor instead. func (*StComment) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{11} } func (x *StComment) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StComment) GetPostUser() *StUser { if x != nil { return x.PostUser } return nil } func (x *StComment) GetCreateTime() uint64 { if x != nil && x.CreateTime != nil { return *x.CreateTime } return 0 } func (x *StComment) GetContent() string { if x != nil && x.Content != nil { return *x.Content } return "" } func (x *StComment) GetReplyCount() uint32 { if x != nil && x.ReplyCount != nil { return *x.ReplyCount } return 0 } func (x *StComment) GetVecReply() []*StReply { if x != nil { return x.VecReply } return nil } func (x *StComment) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StComment) GetLikeInfo() *StLike { if x != nil { return x.LikeInfo } return nil } func (x *StComment) GetTypeFlag() uint32 { if x != nil && x.TypeFlag != nil { return *x.TypeFlag } return 0 } func (x *StComment) GetAtUinList() []string { if x != nil { return x.AtUinList } return nil } func (x *StComment) GetTypeFlag2() uint32 { if x != nil && x.TypeFlag2 != nil { return *x.TypeFlag2 } return 0 } func (x *StComment) GetCreateTimeNs() uint64 { if x != nil && x.CreateTimeNs != nil { return *x.CreateTimeNs } return 0 } func (x *StComment) GetStoreExtInfo() []*CommonEntry { if x != nil { return x.StoreExtInfo } return nil } func (x *StComment) GetThirdId() string { if x != nil && x.ThirdId != nil { return *x.ThirdId } return "" } func (x *StComment) GetSourceType() uint32 { if x != nil && x.SourceType != nil { return *x.SourceType } return 0 } func (x *StComment) GetRichContents() *StRichText { if x != nil { return x.RichContents } return nil } type StDebugInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DebugMap []*CommonEntry `protobuf:"bytes,1,rep,name=debugMap" json:"debugMap,omitempty"` } func (x *StDebugInfo) Reset() { *x = StDebugInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StDebugInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StDebugInfo) ProtoMessage() {} func (x *StDebugInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StDebugInfo.ProtoReflect.Descriptor instead. func (*StDebugInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{12} } func (x *StDebugInfo) GetDebugMap() []*CommonEntry { if x != nil { return x.DebugMap } return nil } type StDittoFeed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DittoId *uint32 `protobuf:"varint,1,opt,name=dittoId" json:"dittoId,omitempty"` DittoPatternId *uint32 `protobuf:"varint,2,opt,name=dittoPatternId" json:"dittoPatternId,omitempty"` DittoData []byte `protobuf:"bytes,3,opt,name=dittoData" json:"dittoData,omitempty"` DittoDataNew []byte `protobuf:"bytes,4,opt,name=dittoDataNew" json:"dittoDataNew,omitempty"` } func (x *StDittoFeed) Reset() { *x = StDittoFeed{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StDittoFeed) String() string { return protoimpl.X.MessageStringOf(x) } func (*StDittoFeed) ProtoMessage() {} func (x *StDittoFeed) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StDittoFeed.ProtoReflect.Descriptor instead. func (*StDittoFeed) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{13} } func (x *StDittoFeed) GetDittoId() uint32 { if x != nil && x.DittoId != nil { return *x.DittoId } return 0 } func (x *StDittoFeed) GetDittoPatternId() uint32 { if x != nil && x.DittoPatternId != nil { return *x.DittoPatternId } return 0 } func (x *StDittoFeed) GetDittoData() []byte { if x != nil { return x.DittoData } return nil } func (x *StDittoFeed) GetDittoDataNew() []byte { if x != nil { return x.DittoDataNew } return nil } type StExifInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Kvs []*CommonEntry `protobuf:"bytes,1,rep,name=kvs" json:"kvs,omitempty"` } func (x *StExifInfo) Reset() { *x = StExifInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StExifInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StExifInfo) ProtoMessage() {} func (x *StExifInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StExifInfo.ProtoReflect.Descriptor instead. func (*StExifInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{14} } func (x *StExifInfo) GetKvs() []*CommonEntry { if x != nil { return x.Kvs } return nil } type StExternalMedalWallInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NeedRedPoint *bool `protobuf:"varint,1,opt,name=needRedPoint" json:"needRedPoint,omitempty"` MedalInfos []*StMedalInfo `protobuf:"bytes,2,rep,name=medalInfos" json:"medalInfos,omitempty"` MedalWallJumpUrl *string `protobuf:"bytes,3,opt,name=medalWallJumpUrl" json:"medalWallJumpUrl,omitempty"` NeedShowEntrance *bool `protobuf:"varint,4,opt,name=needShowEntrance" json:"needShowEntrance,omitempty"` } func (x *StExternalMedalWallInfo) Reset() { *x = StExternalMedalWallInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StExternalMedalWallInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StExternalMedalWallInfo) ProtoMessage() {} func (x *StExternalMedalWallInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StExternalMedalWallInfo.ProtoReflect.Descriptor instead. func (*StExternalMedalWallInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{15} } func (x *StExternalMedalWallInfo) GetNeedRedPoint() bool { if x != nil && x.NeedRedPoint != nil { return *x.NeedRedPoint } return false } func (x *StExternalMedalWallInfo) GetMedalInfos() []*StMedalInfo { if x != nil { return x.MedalInfos } return nil } func (x *StExternalMedalWallInfo) GetMedalWallJumpUrl() string { if x != nil && x.MedalWallJumpUrl != nil { return *x.MedalWallJumpUrl } return "" } func (x *StExternalMedalWallInfo) GetNeedShowEntrance() bool { if x != nil && x.NeedShowEntrance != nil { return *x.NeedShowEntrance } return false } type StFeed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Title *StRichText `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` Subtitle *StRichText `protobuf:"bytes,3,opt,name=subtitle" json:"subtitle,omitempty"` Poster *StUser `protobuf:"bytes,4,opt,name=poster" json:"poster,omitempty"` Videos []*StVideo `protobuf:"bytes,5,rep,name=videos" json:"videos,omitempty"` Contents *StRichText `protobuf:"bytes,6,opt,name=contents" json:"contents,omitempty"` CreateTime *uint64 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` EmotionReaction *EmojiReaction `protobuf:"bytes,8,opt,name=emotionReaction" json:"emotionReaction,omitempty"` CommentCount *uint32 `protobuf:"varint,9,opt,name=commentCount" json:"commentCount,omitempty"` VecComment []*StComment `protobuf:"bytes,10,rep,name=vecComment" json:"vecComment,omitempty"` Share *StShare `protobuf:"bytes,11,opt,name=share" json:"share,omitempty"` VisitorInfo *StVisitor `protobuf:"bytes,12,opt,name=visitorInfo" json:"visitorInfo,omitempty"` Images []*StImage `protobuf:"bytes,13,rep,name=images" json:"images,omitempty"` PoiInfo *StPoiInfoV2 `protobuf:"bytes,14,opt,name=poiInfo" json:"poiInfo,omitempty"` TagInfos []*StTagInfo `protobuf:"bytes,15,rep,name=tagInfos" json:"tagInfos,omitempty"` BusiReport []byte `protobuf:"bytes,16,opt,name=busiReport" json:"busiReport,omitempty"` OpMask []uint32 `protobuf:"varint,17,rep,name=opMask" json:"opMask,omitempty"` Opinfo *StOpinfo `protobuf:"bytes,18,opt,name=opinfo" json:"opinfo,omitempty"` ExtInfo []*CommonEntry `protobuf:"bytes,19,rep,name=extInfo" json:"extInfo,omitempty"` PatternInfo *string `protobuf:"bytes,20,opt,name=patternInfo" json:"patternInfo,omitempty"` ChannelInfo *StChannelInfo `protobuf:"bytes,21,opt,name=channelInfo" json:"channelInfo,omitempty"` CreateTimeNs *uint64 `protobuf:"varint,22,opt,name=createTimeNs" json:"createTimeNs,omitempty"` Summary *StFeedSummary `protobuf:"bytes,23,opt,name=summary" json:"summary,omitempty"` RecomInfo *StRecomInfo `protobuf:"bytes,24,opt,name=recomInfo" json:"recomInfo,omitempty"` Meta *FeedMetaData `protobuf:"bytes,25,opt,name=meta" json:"meta,omitempty"` } func (x *StFeed) Reset() { *x = StFeed{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StFeed) String() string { return protoimpl.X.MessageStringOf(x) } func (*StFeed) ProtoMessage() {} func (x *StFeed) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StFeed.ProtoReflect.Descriptor instead. func (*StFeed) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{16} } func (x *StFeed) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StFeed) GetTitle() *StRichText { if x != nil { return x.Title } return nil } func (x *StFeed) GetSubtitle() *StRichText { if x != nil { return x.Subtitle } return nil } func (x *StFeed) GetPoster() *StUser { if x != nil { return x.Poster } return nil } func (x *StFeed) GetVideos() []*StVideo { if x != nil { return x.Videos } return nil } func (x *StFeed) GetContents() *StRichText { if x != nil { return x.Contents } return nil } func (x *StFeed) GetCreateTime() uint64 { if x != nil && x.CreateTime != nil { return *x.CreateTime } return 0 } func (x *StFeed) GetEmotionReaction() *EmojiReaction { if x != nil { return x.EmotionReaction } return nil } func (x *StFeed) GetCommentCount() uint32 { if x != nil && x.CommentCount != nil { return *x.CommentCount } return 0 } func (x *StFeed) GetVecComment() []*StComment { if x != nil { return x.VecComment } return nil } func (x *StFeed) GetShare() *StShare { if x != nil { return x.Share } return nil } func (x *StFeed) GetVisitorInfo() *StVisitor { if x != nil { return x.VisitorInfo } return nil } func (x *StFeed) GetImages() []*StImage { if x != nil { return x.Images } return nil } func (x *StFeed) GetPoiInfo() *StPoiInfoV2 { if x != nil { return x.PoiInfo } return nil } func (x *StFeed) GetTagInfos() []*StTagInfo { if x != nil { return x.TagInfos } return nil } func (x *StFeed) GetBusiReport() []byte { if x != nil { return x.BusiReport } return nil } func (x *StFeed) GetOpMask() []uint32 { if x != nil { return x.OpMask } return nil } func (x *StFeed) GetOpinfo() *StOpinfo { if x != nil { return x.Opinfo } return nil } func (x *StFeed) GetExtInfo() []*CommonEntry { if x != nil { return x.ExtInfo } return nil } func (x *StFeed) GetPatternInfo() string { if x != nil && x.PatternInfo != nil { return *x.PatternInfo } return "" } func (x *StFeed) GetChannelInfo() *StChannelInfo { if x != nil { return x.ChannelInfo } return nil } func (x *StFeed) GetCreateTimeNs() uint64 { if x != nil && x.CreateTimeNs != nil { return *x.CreateTimeNs } return 0 } func (x *StFeed) GetSummary() *StFeedSummary { if x != nil { return x.Summary } return nil } func (x *StFeed) GetRecomInfo() *StRecomInfo { if x != nil { return x.RecomInfo } return nil } func (x *StFeed) GetMeta() *FeedMetaData { if x != nil { return x.Meta } return nil } type StFeedAbstract struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` Poster *StUser `protobuf:"bytes,3,opt,name=poster" json:"poster,omitempty"` Pic *StImage `protobuf:"bytes,4,opt,name=pic" json:"pic,omitempty"` Type *uint32 `protobuf:"varint,5,opt,name=type" json:"type,omitempty"` CreateTime *uint64 `protobuf:"varint,6,opt,name=createTime" json:"createTime,omitempty"` Video *StVideo `protobuf:"bytes,7,opt,name=video" json:"video,omitempty"` FuelNum *uint32 `protobuf:"varint,8,opt,name=fuelNum" json:"fuelNum,omitempty"` Content *string `protobuf:"bytes,9,opt,name=content" json:"content,omitempty"` Images []*StImage `protobuf:"bytes,10,rep,name=images" json:"images,omitempty"` CountInfo *StFeedCount `protobuf:"bytes,11,opt,name=countInfo" json:"countInfo,omitempty"` } func (x *StFeedAbstract) Reset() { *x = StFeedAbstract{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StFeedAbstract) String() string { return protoimpl.X.MessageStringOf(x) } func (*StFeedAbstract) ProtoMessage() {} func (x *StFeedAbstract) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StFeedAbstract.ProtoReflect.Descriptor instead. func (*StFeedAbstract) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{17} } func (x *StFeedAbstract) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StFeedAbstract) GetTitle() string { if x != nil && x.Title != nil { return *x.Title } return "" } func (x *StFeedAbstract) GetPoster() *StUser { if x != nil { return x.Poster } return nil } func (x *StFeedAbstract) GetPic() *StImage { if x != nil { return x.Pic } return nil } func (x *StFeedAbstract) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StFeedAbstract) GetCreateTime() uint64 { if x != nil && x.CreateTime != nil { return *x.CreateTime } return 0 } func (x *StFeedAbstract) GetVideo() *StVideo { if x != nil { return x.Video } return nil } func (x *StFeedAbstract) GetFuelNum() uint32 { if x != nil && x.FuelNum != nil { return *x.FuelNum } return 0 } func (x *StFeedAbstract) GetContent() string { if x != nil && x.Content != nil { return *x.Content } return "" } func (x *StFeedAbstract) GetImages() []*StImage { if x != nil { return x.Images } return nil } func (x *StFeedAbstract) GetCountInfo() *StFeedCount { if x != nil { return x.CountInfo } return nil } type StFeedCount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Liked *int64 `protobuf:"varint,1,opt,name=liked" json:"liked,omitempty"` Push *int64 `protobuf:"varint,2,opt,name=push" json:"push,omitempty"` Comment *int64 `protobuf:"varint,3,opt,name=comment" json:"comment,omitempty"` Visitor *int64 `protobuf:"varint,4,opt,name=visitor" json:"visitor,omitempty"` } func (x *StFeedCount) Reset() { *x = StFeedCount{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StFeedCount) String() string { return protoimpl.X.MessageStringOf(x) } func (*StFeedCount) ProtoMessage() {} func (x *StFeedCount) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StFeedCount.ProtoReflect.Descriptor instead. func (*StFeedCount) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{18} } func (x *StFeedCount) GetLiked() int64 { if x != nil && x.Liked != nil { return *x.Liked } return 0 } func (x *StFeedCount) GetPush() int64 { if x != nil && x.Push != nil { return *x.Push } return 0 } func (x *StFeedCount) GetComment() int64 { if x != nil && x.Comment != nil { return *x.Comment } return 0 } func (x *StFeedCount) GetVisitor() int64 { if x != nil && x.Visitor != nil { return *x.Visitor } return 0 } type StFeedSummary struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LayoutType *uint32 `protobuf:"varint,1,opt,name=layoutType" json:"layoutType,omitempty"` } func (x *StFeedSummary) Reset() { *x = StFeedSummary{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StFeedSummary) String() string { return protoimpl.X.MessageStringOf(x) } func (*StFeedSummary) ProtoMessage() {} func (x *StFeedSummary) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StFeedSummary.ProtoReflect.Descriptor instead. func (*StFeedSummary) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{19} } func (x *StFeedSummary) GetLayoutType() uint32 { if x != nil && x.LayoutType != nil { return *x.LayoutType } return 0 } type StFollowRecomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FollowText *string `protobuf:"bytes,1,opt,name=followText" json:"followText,omitempty"` FollowUsers []*StFollowUser `protobuf:"bytes,4,rep,name=followUsers" json:"followUsers,omitempty"` CommFriendText *string `protobuf:"bytes,6,opt,name=commFriendText" json:"commFriendText,omitempty"` CommGroupText *string `protobuf:"bytes,7,opt,name=commGroupText" json:"commGroupText,omitempty"` } func (x *StFollowRecomInfo) Reset() { *x = StFollowRecomInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StFollowRecomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StFollowRecomInfo) ProtoMessage() {} func (x *StFollowRecomInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StFollowRecomInfo.ProtoReflect.Descriptor instead. func (*StFollowRecomInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{20} } func (x *StFollowRecomInfo) GetFollowText() string { if x != nil && x.FollowText != nil { return *x.FollowText } return "" } func (x *StFollowRecomInfo) GetFollowUsers() []*StFollowUser { if x != nil { return x.FollowUsers } return nil } func (x *StFollowRecomInfo) GetCommFriendText() string { if x != nil && x.CommFriendText != nil { return *x.CommFriendText } return "" } func (x *StFollowRecomInfo) GetCommGroupText() string { if x != nil && x.CommGroupText != nil { return *x.CommGroupText } return "" } type StFollowUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid *uint64 `protobuf:"varint,1,opt,name=uid" json:"uid,omitempty"` Nick *string `protobuf:"bytes,2,opt,name=nick" json:"nick,omitempty"` } func (x *StFollowUser) Reset() { *x = StFollowUser{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StFollowUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*StFollowUser) ProtoMessage() {} func (x *StFollowUser) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StFollowUser.ProtoReflect.Descriptor instead. func (*StFollowUser) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{21} } func (x *StFollowUser) GetUid() uint64 { if x != nil && x.Uid != nil { return *x.Uid } return 0 } func (x *StFollowUser) GetNick() string { if x != nil && x.Nick != nil { return *x.Nick } return "" } type StGPSV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Lat *int64 `protobuf:"varint,1,opt,name=lat" json:"lat,omitempty"` Lon *int64 `protobuf:"varint,2,opt,name=lon" json:"lon,omitempty"` EType *int64 `protobuf:"varint,3,opt,name=eType" json:"eType,omitempty"` Alt *int64 `protobuf:"varint,4,opt,name=alt" json:"alt,omitempty"` } func (x *StGPSV2) Reset() { *x = StGPSV2{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StGPSV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*StGPSV2) ProtoMessage() {} func (x *StGPSV2) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StGPSV2.ProtoReflect.Descriptor instead. func (*StGPSV2) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{22} } func (x *StGPSV2) GetLat() int64 { if x != nil && x.Lat != nil { return *x.Lat } return 0 } func (x *StGPSV2) GetLon() int64 { if x != nil && x.Lon != nil { return *x.Lon } return 0 } func (x *StGPSV2) GetEType() int64 { if x != nil && x.EType != nil { return *x.EType } return 0 } func (x *StGPSV2) GetAlt() int64 { if x != nil && x.Alt != nil { return *x.Alt } return 0 } type StGuidePublishBubble struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` BackgroundImage *StImage `protobuf:"bytes,2,opt,name=backgroundImage" json:"backgroundImage,omitempty"` JumpUrl *string `protobuf:"bytes,3,opt,name=jumpUrl" json:"jumpUrl,omitempty"` } func (x *StGuidePublishBubble) Reset() { *x = StGuidePublishBubble{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StGuidePublishBubble) String() string { return protoimpl.X.MessageStringOf(x) } func (*StGuidePublishBubble) ProtoMessage() {} func (x *StGuidePublishBubble) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StGuidePublishBubble.ProtoReflect.Descriptor instead. func (*StGuidePublishBubble) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{23} } func (x *StGuidePublishBubble) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StGuidePublishBubble) GetBackgroundImage() *StImage { if x != nil { return x.BackgroundImage } return nil } func (x *StGuidePublishBubble) GetJumpUrl() string { if x != nil && x.JumpUrl != nil { return *x.JumpUrl } return "" } type StIconInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IconUrl40 *string `protobuf:"bytes,1,opt,name=iconUrl40" json:"iconUrl40,omitempty"` IconUrl100 *string `protobuf:"bytes,2,opt,name=iconUrl100" json:"iconUrl100,omitempty"` IconUrl140 *string `protobuf:"bytes,3,opt,name=iconUrl140" json:"iconUrl140,omitempty"` IconUrl640 *string `protobuf:"bytes,4,opt,name=iconUrl640" json:"iconUrl640,omitempty"` IconUrl *string `protobuf:"bytes,5,opt,name=iconUrl" json:"iconUrl,omitempty"` } func (x *StIconInfo) Reset() { *x = StIconInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StIconInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StIconInfo) ProtoMessage() {} func (x *StIconInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StIconInfo.ProtoReflect.Descriptor instead. func (*StIconInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{24} } func (x *StIconInfo) GetIconUrl40() string { if x != nil && x.IconUrl40 != nil { return *x.IconUrl40 } return "" } func (x *StIconInfo) GetIconUrl100() string { if x != nil && x.IconUrl100 != nil { return *x.IconUrl100 } return "" } func (x *StIconInfo) GetIconUrl140() string { if x != nil && x.IconUrl140 != nil { return *x.IconUrl140 } return "" } func (x *StIconInfo) GetIconUrl640() string { if x != nil && x.IconUrl640 != nil { return *x.IconUrl640 } return "" } func (x *StIconInfo) GetIconUrl() string { if x != nil && x.IconUrl != nil { return *x.IconUrl } return "" } type StImage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Width *uint32 `protobuf:"varint,1,opt,name=width" json:"width,omitempty"` Height *uint32 `protobuf:"varint,2,opt,name=height" json:"height,omitempty"` PicUrl *string `protobuf:"bytes,3,opt,name=picUrl" json:"picUrl,omitempty"` VecImageUrl []*StImageUrl `protobuf:"bytes,4,rep,name=vecImageUrl" json:"vecImageUrl,omitempty"` PicId *string `protobuf:"bytes,5,opt,name=picId" json:"picId,omitempty"` BusiData []byte `protobuf:"bytes,6,opt,name=busiData" json:"busiData,omitempty"` ImageMD5 *string `protobuf:"bytes,7,opt,name=imageMD5" json:"imageMD5,omitempty"` LayerPicUrl *string `protobuf:"bytes,8,opt,name=layerPicUrl" json:"layerPicUrl,omitempty"` PatternId *string `protobuf:"bytes,9,opt,name=patternId" json:"patternId,omitempty"` DisplayIndex *uint32 `protobuf:"varint,10,opt,name=displayIndex" json:"displayIndex,omitempty"` } func (x *StImage) Reset() { *x = StImage{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StImage) String() string { return protoimpl.X.MessageStringOf(x) } func (*StImage) ProtoMessage() {} func (x *StImage) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StImage.ProtoReflect.Descriptor instead. func (*StImage) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{25} } func (x *StImage) GetWidth() uint32 { if x != nil && x.Width != nil { return *x.Width } return 0 } func (x *StImage) GetHeight() uint32 { if x != nil && x.Height != nil { return *x.Height } return 0 } func (x *StImage) GetPicUrl() string { if x != nil && x.PicUrl != nil { return *x.PicUrl } return "" } func (x *StImage) GetVecImageUrl() []*StImageUrl { if x != nil { return x.VecImageUrl } return nil } func (x *StImage) GetPicId() string { if x != nil && x.PicId != nil { return *x.PicId } return "" } func (x *StImage) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StImage) GetImageMD5() string { if x != nil && x.ImageMD5 != nil { return *x.ImageMD5 } return "" } func (x *StImage) GetLayerPicUrl() string { if x != nil && x.LayerPicUrl != nil { return *x.LayerPicUrl } return "" } func (x *StImage) GetPatternId() string { if x != nil && x.PatternId != nil { return *x.PatternId } return "" } func (x *StImage) GetDisplayIndex() uint32 { if x != nil && x.DisplayIndex != nil { return *x.DisplayIndex } return 0 } type StImageUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LevelType *uint32 `protobuf:"varint,1,opt,name=levelType" json:"levelType,omitempty"` Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"` Width *uint32 `protobuf:"varint,3,opt,name=width" json:"width,omitempty"` Height *uint32 `protobuf:"varint,4,opt,name=height" json:"height,omitempty"` BusiData []byte `protobuf:"bytes,5,opt,name=busiData" json:"busiData,omitempty"` } func (x *StImageUrl) Reset() { *x = StImageUrl{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StImageUrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*StImageUrl) ProtoMessage() {} func (x *StImageUrl) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StImageUrl.ProtoReflect.Descriptor instead. func (*StImageUrl) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{26} } func (x *StImageUrl) GetLevelType() uint32 { if x != nil && x.LevelType != nil { return *x.LevelType } return 0 } func (x *StImageUrl) GetUrl() string { if x != nil && x.Url != nil { return *x.Url } return "" } func (x *StImageUrl) GetWidth() uint32 { if x != nil && x.Width != nil { return *x.Width } return 0 } func (x *StImageUrl) GetHeight() uint32 { if x != nil && x.Height != nil { return *x.Height } return 0 } func (x *StImageUrl) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } type StLightInteractInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields User *StUser `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` Relation *StRelationInfo `protobuf:"bytes,2,opt,name=relation" json:"relation,omitempty"` Count *uint32 `protobuf:"varint,3,opt,name=count" json:"count,omitempty"` BusiData []byte `protobuf:"bytes,4,opt,name=busiData" json:"busiData,omitempty"` } func (x *StLightInteractInfo) Reset() { *x = StLightInteractInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StLightInteractInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StLightInteractInfo) ProtoMessage() {} func (x *StLightInteractInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StLightInteractInfo.ProtoReflect.Descriptor instead. func (*StLightInteractInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{27} } func (x *StLightInteractInfo) GetUser() *StUser { if x != nil { return x.User } return nil } func (x *StLightInteractInfo) GetRelation() *StRelationInfo { if x != nil { return x.Relation } return nil } func (x *StLightInteractInfo) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } func (x *StLightInteractInfo) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } type StLike struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Count *uint32 `protobuf:"varint,2,opt,name=count" json:"count,omitempty"` Status *uint32 `protobuf:"varint,3,opt,name=status" json:"status,omitempty"` VecUser []*StUser `protobuf:"bytes,4,rep,name=vecUser" json:"vecUser,omitempty"` BusiData []byte `protobuf:"bytes,5,opt,name=busiData" json:"busiData,omitempty"` PostUser *StUser `protobuf:"bytes,6,opt,name=postUser" json:"postUser,omitempty"` HasLikedCount *uint32 `protobuf:"varint,7,opt,name=hasLikedCount" json:"hasLikedCount,omitempty"` OwnerStatus *uint32 `protobuf:"varint,8,opt,name=ownerStatus" json:"ownerStatus,omitempty"` JumpUrl *string `protobuf:"bytes,9,opt,name=jumpUrl" json:"jumpUrl,omitempty"` } func (x *StLike) Reset() { *x = StLike{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StLike) String() string { return protoimpl.X.MessageStringOf(x) } func (*StLike) ProtoMessage() {} func (x *StLike) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StLike.ProtoReflect.Descriptor instead. func (*StLike) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{28} } func (x *StLike) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StLike) GetCount() uint32 { if x != nil && x.Count != nil { return *x.Count } return 0 } func (x *StLike) GetStatus() uint32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *StLike) GetVecUser() []*StUser { if x != nil { return x.VecUser } return nil } func (x *StLike) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StLike) GetPostUser() *StUser { if x != nil { return x.PostUser } return nil } func (x *StLike) GetHasLikedCount() uint32 { if x != nil && x.HasLikedCount != nil { return *x.HasLikedCount } return 0 } func (x *StLike) GetOwnerStatus() uint32 { if x != nil && x.OwnerStatus != nil { return *x.OwnerStatus } return 0 } func (x *StLike) GetJumpUrl() string { if x != nil && x.JumpUrl != nil { return *x.JumpUrl } return "" } type StLiteBanner struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Icon *StImage `protobuf:"bytes,1,opt,name=icon" json:"icon,omitempty"` Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` JumpUrl *string `protobuf:"bytes,3,opt,name=jumpUrl" json:"jumpUrl,omitempty"` ActivityID *string `protobuf:"bytes,4,opt,name=activityID" json:"activityID,omitempty"` JsonStyle *string `protobuf:"bytes,5,opt,name=jsonStyle" json:"jsonStyle,omitempty"` ExtInfo []*CommonEntry `protobuf:"bytes,6,rep,name=extInfo" json:"extInfo,omitempty"` } func (x *StLiteBanner) Reset() { *x = StLiteBanner{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StLiteBanner) String() string { return protoimpl.X.MessageStringOf(x) } func (*StLiteBanner) ProtoMessage() {} func (x *StLiteBanner) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StLiteBanner.ProtoReflect.Descriptor instead. func (*StLiteBanner) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{29} } func (x *StLiteBanner) GetIcon() *StImage { if x != nil { return x.Icon } return nil } func (x *StLiteBanner) GetTitle() string { if x != nil && x.Title != nil { return *x.Title } return "" } func (x *StLiteBanner) GetJumpUrl() string { if x != nil && x.JumpUrl != nil { return *x.JumpUrl } return "" } func (x *StLiteBanner) GetActivityID() string { if x != nil && x.ActivityID != nil { return *x.ActivityID } return "" } func (x *StLiteBanner) GetJsonStyle() string { if x != nil && x.JsonStyle != nil { return *x.JsonStyle } return "" } func (x *StLiteBanner) GetExtInfo() []*CommonEntry { if x != nil { return x.ExtInfo } return nil } type StMaterialDataNew struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MaterialType *string `protobuf:"bytes,1,opt,name=materialType" json:"materialType,omitempty"` MaterialList []*StSingleMaterial `protobuf:"bytes,2,rep,name=materialList" json:"materialList,omitempty"` } func (x *StMaterialDataNew) Reset() { *x = StMaterialDataNew{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StMaterialDataNew) String() string { return protoimpl.X.MessageStringOf(x) } func (*StMaterialDataNew) ProtoMessage() {} func (x *StMaterialDataNew) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StMaterialDataNew.ProtoReflect.Descriptor instead. func (*StMaterialDataNew) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{30} } func (x *StMaterialDataNew) GetMaterialType() string { if x != nil && x.MaterialType != nil { return *x.MaterialType } return "" } func (x *StMaterialDataNew) GetMaterialList() []*StSingleMaterial { if x != nil { return x.MaterialList } return nil } type StMedalInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` MedalName *string `protobuf:"bytes,2,opt,name=medalName" json:"medalName,omitempty"` MedalID *string `protobuf:"bytes,3,opt,name=medalID" json:"medalID,omitempty"` Rank *int32 `protobuf:"varint,4,opt,name=rank" json:"rank,omitempty"` IsHighLight *bool `protobuf:"varint,5,opt,name=isHighLight" json:"isHighLight,omitempty"` IsNew *bool `protobuf:"varint,6,opt,name=isNew" json:"isNew,omitempty"` JumpUrl *string `protobuf:"bytes,7,opt,name=jumpUrl" json:"jumpUrl,omitempty"` IconUrl *string `protobuf:"bytes,8,opt,name=iconUrl" json:"iconUrl,omitempty"` BackgroundUrl *string `protobuf:"bytes,9,opt,name=backgroundUrl" json:"backgroundUrl,omitempty"` Describe *string `protobuf:"bytes,10,opt,name=describe" json:"describe,omitempty"` ReportValue *int32 `protobuf:"varint,11,opt,name=reportValue" json:"reportValue,omitempty"` } func (x *StMedalInfo) Reset() { *x = StMedalInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StMedalInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StMedalInfo) ProtoMessage() {} func (x *StMedalInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StMedalInfo.ProtoReflect.Descriptor instead. func (*StMedalInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{31} } func (x *StMedalInfo) GetType() int32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StMedalInfo) GetMedalName() string { if x != nil && x.MedalName != nil { return *x.MedalName } return "" } func (x *StMedalInfo) GetMedalID() string { if x != nil && x.MedalID != nil { return *x.MedalID } return "" } func (x *StMedalInfo) GetRank() int32 { if x != nil && x.Rank != nil { return *x.Rank } return 0 } func (x *StMedalInfo) GetIsHighLight() bool { if x != nil && x.IsHighLight != nil { return *x.IsHighLight } return false } func (x *StMedalInfo) GetIsNew() bool { if x != nil && x.IsNew != nil { return *x.IsNew } return false } func (x *StMedalInfo) GetJumpUrl() string { if x != nil && x.JumpUrl != nil { return *x.JumpUrl } return "" } func (x *StMedalInfo) GetIconUrl() string { if x != nil && x.IconUrl != nil { return *x.IconUrl } return "" } func (x *StMedalInfo) GetBackgroundUrl() string { if x != nil && x.BackgroundUrl != nil { return *x.BackgroundUrl } return "" } func (x *StMedalInfo) GetDescribe() string { if x != nil && x.Describe != nil { return *x.Describe } return "" } func (x *StMedalInfo) GetReportValue() int32 { if x != nil && x.ReportValue != nil { return *x.ReportValue } return 0 } type StNotice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PsvFeed *StFeed `protobuf:"bytes,1,opt,name=psvFeed" json:"psvFeed,omitempty"` OrigineFeed *StFeed `protobuf:"bytes,2,opt,name=origineFeed" json:"origineFeed,omitempty"` PattonInfo *StNoticePattonInfo `protobuf:"bytes,3,opt,name=pattonInfo" json:"pattonInfo,omitempty"` } func (x *StNotice) Reset() { *x = StNotice{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StNotice) String() string { return protoimpl.X.MessageStringOf(x) } func (*StNotice) ProtoMessage() {} func (x *StNotice) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StNotice.ProtoReflect.Descriptor instead. func (*StNotice) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{32} } func (x *StNotice) GetPsvFeed() *StFeed { if x != nil { return x.PsvFeed } return nil } func (x *StNotice) GetOrigineFeed() *StFeed { if x != nil { return x.OrigineFeed } return nil } func (x *StNotice) GetPattonInfo() *StNoticePattonInfo { if x != nil { return x.PattonInfo } return nil } type StNoticePattonInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PattonType *uint32 `protobuf:"varint,1,opt,name=pattonType" json:"pattonType,omitempty"` PlainTxt *StPlainTxtInfo `protobuf:"bytes,2,opt,name=plainTxt" json:"plainTxt,omitempty"` } func (x *StNoticePattonInfo) Reset() { *x = StNoticePattonInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StNoticePattonInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StNoticePattonInfo) ProtoMessage() {} func (x *StNoticePattonInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StNoticePattonInfo.ProtoReflect.Descriptor instead. func (*StNoticePattonInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{33} } func (x *StNoticePattonInfo) GetPattonType() uint32 { if x != nil && x.PattonType != nil { return *x.PattonType } return 0 } func (x *StNoticePattonInfo) GetPlainTxt() *StPlainTxtInfo { if x != nil { return x.PlainTxt } return nil } type StNoticeTxtInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Content *StRichText `protobuf:"bytes,1,opt,name=content" json:"content,omitempty"` ContentOfReference *StRichText `protobuf:"bytes,2,opt,name=contentOfReference" json:"contentOfReference,omitempty"` } func (x *StNoticeTxtInfo) Reset() { *x = StNoticeTxtInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StNoticeTxtInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StNoticeTxtInfo) ProtoMessage() {} func (x *StNoticeTxtInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StNoticeTxtInfo.ProtoReflect.Descriptor instead. func (*StNoticeTxtInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{34} } func (x *StNoticeTxtInfo) GetContent() *StRichText { if x != nil { return x.Content } return nil } func (x *StNoticeTxtInfo) GetContentOfReference() *StRichText { if x != nil { return x.ContentOfReference } return nil } type StOpinfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CreateTime []uint64 `protobuf:"varint,1,rep,name=createTime" json:"createTime,omitempty"` } func (x *StOpinfo) Reset() { *x = StOpinfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StOpinfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StOpinfo) ProtoMessage() {} func (x *StOpinfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StOpinfo.ProtoReflect.Descriptor instead. func (*StOpinfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{35} } func (x *StOpinfo) GetCreateTime() []uint64 { if x != nil { return x.CreateTime } return nil } type StPlainTxtInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TxtInfo *StNoticeTxtInfo `protobuf:"bytes,1,opt,name=txtInfo" json:"txtInfo,omitempty"` Operation *NoticeOperation `protobuf:"bytes,2,opt,name=operation" json:"operation,omitempty"` } func (x *StPlainTxtInfo) Reset() { *x = StPlainTxtInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StPlainTxtInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StPlainTxtInfo) ProtoMessage() {} func (x *StPlainTxtInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StPlainTxtInfo.ProtoReflect.Descriptor instead. func (*StPlainTxtInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{36} } func (x *StPlainTxtInfo) GetTxtInfo() *StNoticeTxtInfo { if x != nil { return x.TxtInfo } return nil } func (x *StPlainTxtInfo) GetOperation() *NoticeOperation { if x != nil { return x.Operation } return nil } type StPoiInfoV2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PoiId *string `protobuf:"bytes,1,opt,name=poiId" json:"poiId,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` PoiType *int32 `protobuf:"varint,3,opt,name=poiType" json:"poiType,omitempty"` TypeName *string `protobuf:"bytes,4,opt,name=typeName" json:"typeName,omitempty"` Address *string `protobuf:"bytes,5,opt,name=address" json:"address,omitempty"` DistrictCode *int32 `protobuf:"varint,6,opt,name=districtCode" json:"districtCode,omitempty"` Gps *StGPSV2 `protobuf:"bytes,7,opt,name=gps" json:"gps,omitempty"` Distance *int32 `protobuf:"varint,8,opt,name=distance" json:"distance,omitempty"` HotValue *int32 `protobuf:"varint,9,opt,name=hotValue" json:"hotValue,omitempty"` Phone *string `protobuf:"bytes,10,opt,name=phone" json:"phone,omitempty"` Country *string `protobuf:"bytes,11,opt,name=country" json:"country,omitempty"` Province *string `protobuf:"bytes,12,opt,name=province" json:"province,omitempty"` City *string `protobuf:"bytes,13,opt,name=city" json:"city,omitempty"` PoiNum *int32 `protobuf:"varint,14,opt,name=poiNum" json:"poiNum,omitempty"` PoiOrderType *int32 `protobuf:"varint,15,opt,name=poiOrderType" json:"poiOrderType,omitempty"` DefaultName *string `protobuf:"bytes,16,opt,name=defaultName" json:"defaultName,omitempty"` District *string `protobuf:"bytes,17,opt,name=district" json:"district,omitempty"` DianPingId *string `protobuf:"bytes,18,opt,name=dianPingId" json:"dianPingId,omitempty"` DistanceText *string `protobuf:"bytes,19,opt,name=distanceText" json:"distanceText,omitempty"` DisplayName *string `protobuf:"bytes,20,opt,name=displayName" json:"displayName,omitempty"` } func (x *StPoiInfoV2) Reset() { *x = StPoiInfoV2{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StPoiInfoV2) String() string { return protoimpl.X.MessageStringOf(x) } func (*StPoiInfoV2) ProtoMessage() {} func (x *StPoiInfoV2) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StPoiInfoV2.ProtoReflect.Descriptor instead. func (*StPoiInfoV2) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{37} } func (x *StPoiInfoV2) GetPoiId() string { if x != nil && x.PoiId != nil { return *x.PoiId } return "" } func (x *StPoiInfoV2) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *StPoiInfoV2) GetPoiType() int32 { if x != nil && x.PoiType != nil { return *x.PoiType } return 0 } func (x *StPoiInfoV2) GetTypeName() string { if x != nil && x.TypeName != nil { return *x.TypeName } return "" } func (x *StPoiInfoV2) GetAddress() string { if x != nil && x.Address != nil { return *x.Address } return "" } func (x *StPoiInfoV2) GetDistrictCode() int32 { if x != nil && x.DistrictCode != nil { return *x.DistrictCode } return 0 } func (x *StPoiInfoV2) GetGps() *StGPSV2 { if x != nil { return x.Gps } return nil } func (x *StPoiInfoV2) GetDistance() int32 { if x != nil && x.Distance != nil { return *x.Distance } return 0 } func (x *StPoiInfoV2) GetHotValue() int32 { if x != nil && x.HotValue != nil { return *x.HotValue } return 0 } func (x *StPoiInfoV2) GetPhone() string { if x != nil && x.Phone != nil { return *x.Phone } return "" } func (x *StPoiInfoV2) GetCountry() string { if x != nil && x.Country != nil { return *x.Country } return "" } func (x *StPoiInfoV2) GetProvince() string { if x != nil && x.Province != nil { return *x.Province } return "" } func (x *StPoiInfoV2) GetCity() string { if x != nil && x.City != nil { return *x.City } return "" } func (x *StPoiInfoV2) GetPoiNum() int32 { if x != nil && x.PoiNum != nil { return *x.PoiNum } return 0 } func (x *StPoiInfoV2) GetPoiOrderType() int32 { if x != nil && x.PoiOrderType != nil { return *x.PoiOrderType } return 0 } func (x *StPoiInfoV2) GetDefaultName() string { if x != nil && x.DefaultName != nil { return *x.DefaultName } return "" } func (x *StPoiInfoV2) GetDistrict() string { if x != nil && x.District != nil { return *x.District } return "" } func (x *StPoiInfoV2) GetDianPingId() string { if x != nil && x.DianPingId != nil { return *x.DianPingId } return "" } func (x *StPoiInfoV2) GetDistanceText() string { if x != nil && x.DistanceText != nil { return *x.DistanceText } return "" } func (x *StPoiInfoV2) GetDisplayName() string { if x != nil && x.DisplayName != nil { return *x.DisplayName } return "" } type StPrePullCacheFeed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Poster *StUser `protobuf:"bytes,2,opt,name=poster" json:"poster,omitempty"` CreateTime *uint64 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` //repeated GuildCommon.BytesEntry busiTranparent = 4; } func (x *StPrePullCacheFeed) Reset() { *x = StPrePullCacheFeed{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StPrePullCacheFeed) String() string { return protoimpl.X.MessageStringOf(x) } func (*StPrePullCacheFeed) ProtoMessage() {} func (x *StPrePullCacheFeed) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StPrePullCacheFeed.ProtoReflect.Descriptor instead. func (*StPrePullCacheFeed) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{38} } func (x *StPrePullCacheFeed) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StPrePullCacheFeed) GetPoster() *StUser { if x != nil { return x.Poster } return nil } func (x *StPrePullCacheFeed) GetCreateTime() uint64 { if x != nil && x.CreateTime != nil { return *x.CreateTime } return 0 } type StProxyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CmdId *int32 `protobuf:"varint,1,opt,name=cmdId" json:"cmdId,omitempty"` SubCmdId *int32 `protobuf:"varint,2,opt,name=subCmdId" json:"subCmdId,omitempty"` AppProtocol *string `protobuf:"bytes,3,opt,name=appProtocol" json:"appProtocol,omitempty"` ReqBody []byte `protobuf:"bytes,4,opt,name=reqBody" json:"reqBody,omitempty"` } func (x *StProxyInfo) Reset() { *x = StProxyInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StProxyInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StProxyInfo) ProtoMessage() {} func (x *StProxyInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StProxyInfo.ProtoReflect.Descriptor instead. func (*StProxyInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{39} } func (x *StProxyInfo) GetCmdId() int32 { if x != nil && x.CmdId != nil { return *x.CmdId } return 0 } func (x *StProxyInfo) GetSubCmdId() int32 { if x != nil && x.SubCmdId != nil { return *x.SubCmdId } return 0 } func (x *StProxyInfo) GetAppProtocol() string { if x != nil && x.AppProtocol != nil { return *x.AppProtocol } return "" } func (x *StProxyInfo) GetReqBody() []byte { if x != nil { return x.ReqBody } return nil } type StRankingItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields User *StUser `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` Relation *StRelationInfo `protobuf:"bytes,2,opt,name=relation" json:"relation,omitempty"` Score *int64 `protobuf:"varint,3,opt,name=score" json:"score,omitempty"` Grade *int32 `protobuf:"varint,4,opt,name=grade" json:"grade,omitempty"` BusiData []byte `protobuf:"bytes,5,opt,name=busiData" json:"busiData,omitempty"` RankNo *int32 `protobuf:"varint,6,opt,name=rankNo" json:"rankNo,omitempty"` InTopicList *int32 `protobuf:"varint,7,opt,name=inTopicList" json:"inTopicList,omitempty"` } func (x *StRankingItem) Reset() { *x = StRankingItem{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRankingItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRankingItem) ProtoMessage() {} func (x *StRankingItem) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRankingItem.ProtoReflect.Descriptor instead. func (*StRankingItem) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{40} } func (x *StRankingItem) GetUser() *StUser { if x != nil { return x.User } return nil } func (x *StRankingItem) GetRelation() *StRelationInfo { if x != nil { return x.Relation } return nil } func (x *StRankingItem) GetScore() int64 { if x != nil && x.Score != nil { return *x.Score } return 0 } func (x *StRankingItem) GetGrade() int32 { if x != nil && x.Grade != nil { return *x.Grade } return 0 } func (x *StRankingItem) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StRankingItem) GetRankNo() int32 { if x != nil && x.RankNo != nil { return *x.RankNo } return 0 } func (x *StRankingItem) GetInTopicList() int32 { if x != nil && x.InTopicList != nil { return *x.InTopicList } return 0 } type StRecomForward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"` Subtitle *string `protobuf:"bytes,3,opt,name=subtitle" json:"subtitle,omitempty"` Poster *StUser `protobuf:"bytes,4,opt,name=poster" json:"poster,omitempty"` CreateTime *uint64 `protobuf:"varint,5,opt,name=createTime" json:"createTime,omitempty"` Type *uint32 `protobuf:"varint,6,opt,name=type" json:"type,omitempty"` BusiData []byte `protobuf:"bytes,7,opt,name=busiData" json:"busiData,omitempty"` } func (x *StRecomForward) Reset() { *x = StRecomForward{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRecomForward) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRecomForward) ProtoMessage() {} func (x *StRecomForward) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRecomForward.ProtoReflect.Descriptor instead. func (*StRecomForward) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{41} } func (x *StRecomForward) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StRecomForward) GetTitle() string { if x != nil && x.Title != nil { return *x.Title } return "" } func (x *StRecomForward) GetSubtitle() string { if x != nil && x.Subtitle != nil { return *x.Subtitle } return "" } func (x *StRecomForward) GetPoster() *StUser { if x != nil { return x.Poster } return nil } func (x *StRecomForward) GetCreateTime() uint64 { if x != nil && x.CreateTime != nil { return *x.CreateTime } return 0 } func (x *StRecomForward) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StRecomForward) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } type StRecomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RecomReason *string `protobuf:"bytes,1,opt,name=recomReason" json:"recomReason,omitempty"` RecomAttachInfo []byte `protobuf:"bytes,2,opt,name=recomAttachInfo" json:"recomAttachInfo,omitempty"` RecomTrace *string `protobuf:"bytes,3,opt,name=recomTrace" json:"recomTrace,omitempty"` ClientSealData []byte `protobuf:"bytes,4,opt,name=clientSealData" json:"clientSealData,omitempty"` IconUrl *string `protobuf:"bytes,5,opt,name=iconUrl" json:"iconUrl,omitempty"` RecomReasonType *int32 `protobuf:"varint,6,opt,name=recomReasonType" json:"recomReasonType,omitempty"` } func (x *StRecomInfo) Reset() { *x = StRecomInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRecomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRecomInfo) ProtoMessage() {} func (x *StRecomInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRecomInfo.ProtoReflect.Descriptor instead. func (*StRecomInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{42} } func (x *StRecomInfo) GetRecomReason() string { if x != nil && x.RecomReason != nil { return *x.RecomReason } return "" } func (x *StRecomInfo) GetRecomAttachInfo() []byte { if x != nil { return x.RecomAttachInfo } return nil } func (x *StRecomInfo) GetRecomTrace() string { if x != nil && x.RecomTrace != nil { return *x.RecomTrace } return "" } func (x *StRecomInfo) GetClientSealData() []byte { if x != nil { return x.ClientSealData } return nil } func (x *StRecomInfo) GetIconUrl() string { if x != nil && x.IconUrl != nil { return *x.IconUrl } return "" } func (x *StRecomInfo) GetRecomReasonType() int32 { if x != nil && x.RecomReasonType != nil { return *x.RecomReasonType } return 0 } type StRecomReportInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RecomInfos []*StSingleRecomReportInfo `protobuf:"bytes,1,rep,name=recomInfos" json:"recomInfos,omitempty"` } func (x *StRecomReportInfo) Reset() { *x = StRecomReportInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRecomReportInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRecomReportInfo) ProtoMessage() {} func (x *StRecomReportInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRecomReportInfo.ProtoReflect.Descriptor instead. func (*StRecomReportInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{43} } func (x *StRecomReportInfo) GetRecomInfos() []*StSingleRecomReportInfo { if x != nil { return x.RecomInfos } return nil } type StRelationInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Relation *uint32 `protobuf:"varint,2,opt,name=relation" json:"relation,omitempty"` BusiData []byte `protobuf:"bytes,3,opt,name=busiData" json:"busiData,omitempty"` RelationState *uint32 `protobuf:"varint,4,opt,name=relationState" json:"relationState,omitempty"` Score *uint32 `protobuf:"varint,5,opt,name=score" json:"score,omitempty"` IsBlock *bool `protobuf:"varint,6,opt,name=isBlock" json:"isBlock,omitempty"` IsBlocked *bool `protobuf:"varint,7,opt,name=isBlocked" json:"isBlocked,omitempty"` IsFriend *bool `protobuf:"varint,8,opt,name=isFriend" json:"isFriend,omitempty"` IsUncare *bool `protobuf:"varint,9,opt,name=isUncare" json:"isUncare,omitempty"` ImBitMap *uint64 `protobuf:"varint,10,opt,name=imBitMap" json:"imBitMap,omitempty"` } func (x *StRelationInfo) Reset() { *x = StRelationInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRelationInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRelationInfo) ProtoMessage() {} func (x *StRelationInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRelationInfo.ProtoReflect.Descriptor instead. func (*StRelationInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{44} } func (x *StRelationInfo) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StRelationInfo) GetRelation() uint32 { if x != nil && x.Relation != nil { return *x.Relation } return 0 } func (x *StRelationInfo) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StRelationInfo) GetRelationState() uint32 { if x != nil && x.RelationState != nil { return *x.RelationState } return 0 } func (x *StRelationInfo) GetScore() uint32 { if x != nil && x.Score != nil { return *x.Score } return 0 } func (x *StRelationInfo) GetIsBlock() bool { if x != nil && x.IsBlock != nil { return *x.IsBlock } return false } func (x *StRelationInfo) GetIsBlocked() bool { if x != nil && x.IsBlocked != nil { return *x.IsBlocked } return false } func (x *StRelationInfo) GetIsFriend() bool { if x != nil && x.IsFriend != nil { return *x.IsFriend } return false } func (x *StRelationInfo) GetIsUncare() bool { if x != nil && x.IsUncare != nil { return *x.IsUncare } return false } func (x *StRelationInfo) GetImBitMap() uint64 { if x != nil && x.ImBitMap != nil { return *x.ImBitMap } return 0 } type StReply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` PostUser *StUser `protobuf:"bytes,2,opt,name=postUser" json:"postUser,omitempty"` CreateTime *uint64 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` Content *string `protobuf:"bytes,4,opt,name=content" json:"content,omitempty"` TargetUser *StUser `protobuf:"bytes,5,opt,name=targetUser" json:"targetUser,omitempty"` BusiData []byte `protobuf:"bytes,6,opt,name=busiData" json:"busiData,omitempty"` LikeInfo *StLike `protobuf:"bytes,7,opt,name=likeInfo" json:"likeInfo,omitempty"` TypeFlag *uint32 `protobuf:"varint,8,opt,name=typeFlag" json:"typeFlag,omitempty"` Modifyflag *uint32 `protobuf:"varint,9,opt,name=modifyflag" json:"modifyflag,omitempty"` AtUinList []string `protobuf:"bytes,10,rep,name=atUinList" json:"atUinList,omitempty"` TypeFlag2 *uint32 `protobuf:"varint,11,opt,name=typeFlag2" json:"typeFlag2,omitempty"` CreateTimeNs *uint64 `protobuf:"varint,12,opt,name=createTimeNs" json:"createTimeNs,omitempty"` StoreExtInfo []*CommonEntry `protobuf:"bytes,13,rep,name=storeExtInfo" json:"storeExtInfo,omitempty"` ThirdId *string `protobuf:"bytes,14,opt,name=thirdId" json:"thirdId,omitempty"` TargetReplyID *string `protobuf:"bytes,15,opt,name=targetReplyID" json:"targetReplyID,omitempty"` SourceType *uint32 `protobuf:"varint,16,opt,name=sourceType" json:"sourceType,omitempty"` RichContents *StRichText `protobuf:"bytes,17,opt,name=richContents" json:"richContents,omitempty"` } func (x *StReply) Reset() { *x = StReply{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StReply) String() string { return protoimpl.X.MessageStringOf(x) } func (*StReply) ProtoMessage() {} func (x *StReply) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StReply.ProtoReflect.Descriptor instead. func (*StReply) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{45} } func (x *StReply) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StReply) GetPostUser() *StUser { if x != nil { return x.PostUser } return nil } func (x *StReply) GetCreateTime() uint64 { if x != nil && x.CreateTime != nil { return *x.CreateTime } return 0 } func (x *StReply) GetContent() string { if x != nil && x.Content != nil { return *x.Content } return "" } func (x *StReply) GetTargetUser() *StUser { if x != nil { return x.TargetUser } return nil } func (x *StReply) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StReply) GetLikeInfo() *StLike { if x != nil { return x.LikeInfo } return nil } func (x *StReply) GetTypeFlag() uint32 { if x != nil && x.TypeFlag != nil { return *x.TypeFlag } return 0 } func (x *StReply) GetModifyflag() uint32 { if x != nil && x.Modifyflag != nil { return *x.Modifyflag } return 0 } func (x *StReply) GetAtUinList() []string { if x != nil { return x.AtUinList } return nil } func (x *StReply) GetTypeFlag2() uint32 { if x != nil && x.TypeFlag2 != nil { return *x.TypeFlag2 } return 0 } func (x *StReply) GetCreateTimeNs() uint64 { if x != nil && x.CreateTimeNs != nil { return *x.CreateTimeNs } return 0 } func (x *StReply) GetStoreExtInfo() []*CommonEntry { if x != nil { return x.StoreExtInfo } return nil } func (x *StReply) GetThirdId() string { if x != nil && x.ThirdId != nil { return *x.ThirdId } return "" } func (x *StReply) GetTargetReplyID() string { if x != nil && x.TargetReplyID != nil { return *x.TargetReplyID } return "" } func (x *StReply) GetSourceType() uint32 { if x != nil && x.SourceType != nil { return *x.SourceType } return 0 } func (x *StReply) GetRichContents() *StRichText { if x != nil { return x.RichContents } return nil } type StReportInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` BusiReport []byte `protobuf:"bytes,2,opt,name=busiReport" json:"busiReport,omitempty"` } func (x *StReportInfo) Reset() { *x = StReportInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StReportInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StReportInfo) ProtoMessage() {} func (x *StReportInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StReportInfo.ProtoReflect.Descriptor instead. func (*StReportInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{46} } func (x *StReportInfo) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StReportInfo) GetBusiReport() []byte { if x != nil { return x.BusiReport } return nil } type StRichText struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Contents []*StRichTextContent `protobuf:"bytes,1,rep,name=contents" json:"contents,omitempty"` } func (x *StRichText) Reset() { *x = StRichText{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichText) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichText) ProtoMessage() {} func (x *StRichText) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichText.ProtoReflect.Descriptor instead. func (*StRichText) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{47} } func (x *StRichText) GetContents() []*StRichTextContent { if x != nil { return x.Contents } return nil } type StRichTextAtContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` GuildInfo *GuildChannelBaseGuildInfo `protobuf:"bytes,2,opt,name=guildInfo" json:"guildInfo,omitempty"` RoleGroupId *GuildChannelBaseRoleGroupInfo `protobuf:"bytes,3,opt,name=roleGroupId" json:"roleGroupId,omitempty"` User *StUser `protobuf:"bytes,4,opt,name=user" json:"user,omitempty"` } func (x *StRichTextAtContent) Reset() { *x = StRichTextAtContent{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichTextAtContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichTextAtContent) ProtoMessage() {} func (x *StRichTextAtContent) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichTextAtContent.ProtoReflect.Descriptor instead. func (*StRichTextAtContent) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{48} } func (x *StRichTextAtContent) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StRichTextAtContent) GetGuildInfo() *GuildChannelBaseGuildInfo { if x != nil { return x.GuildInfo } return nil } func (x *StRichTextAtContent) GetRoleGroupId() *GuildChannelBaseRoleGroupInfo { if x != nil { return x.RoleGroupId } return nil } func (x *StRichTextAtContent) GetUser() *StUser { if x != nil { return x.User } return nil } type GuildChannelBaseGuildInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GuildId *uint64 `protobuf:"varint,1,opt,name=guildId" json:"guildId,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` JoinTime *uint64 `protobuf:"varint,3,opt,name=joinTime" json:"joinTime,omitempty"` } func (x *GuildChannelBaseGuildInfo) Reset() { *x = GuildChannelBaseGuildInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuildChannelBaseGuildInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuildChannelBaseGuildInfo) ProtoMessage() {} func (x *GuildChannelBaseGuildInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GuildChannelBaseGuildInfo.ProtoReflect.Descriptor instead. func (*GuildChannelBaseGuildInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{49} } func (x *GuildChannelBaseGuildInfo) GetGuildId() uint64 { if x != nil && x.GuildId != nil { return *x.GuildId } return 0 } func (x *GuildChannelBaseGuildInfo) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *GuildChannelBaseGuildInfo) GetJoinTime() uint64 { if x != nil && x.JoinTime != nil { return *x.JoinTime } return 0 } type GuildChannelBaseRoleGroupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RoleId *uint64 `protobuf:"varint,1,opt,name=roleId" json:"roleId,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` Color *uint32 `protobuf:"varint,3,opt,name=color" json:"color,omitempty"` } func (x *GuildChannelBaseRoleGroupInfo) Reset() { *x = GuildChannelBaseRoleGroupInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuildChannelBaseRoleGroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuildChannelBaseRoleGroupInfo) ProtoMessage() {} func (x *GuildChannelBaseRoleGroupInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GuildChannelBaseRoleGroupInfo.ProtoReflect.Descriptor instead. func (*GuildChannelBaseRoleGroupInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{50} } func (x *GuildChannelBaseRoleGroupInfo) GetRoleId() uint64 { if x != nil && x.RoleId != nil { return *x.RoleId } return 0 } func (x *GuildChannelBaseRoleGroupInfo) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *GuildChannelBaseRoleGroupInfo) GetColor() uint32 { if x != nil && x.Color != nil { return *x.Color } return 0 } type StRichTextChannelContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChannelInfo *StChannelInfo `protobuf:"bytes,1,opt,name=channelInfo" json:"channelInfo,omitempty"` } func (x *StRichTextChannelContent) Reset() { *x = StRichTextChannelContent{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichTextChannelContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichTextChannelContent) ProtoMessage() {} func (x *StRichTextChannelContent) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichTextChannelContent.ProtoReflect.Descriptor instead. func (*StRichTextChannelContent) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{51} } func (x *StRichTextChannelContent) GetChannelInfo() *StChannelInfo { if x != nil { return x.ChannelInfo } return nil } type StRichTextContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *uint32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` PatternId *string `protobuf:"bytes,2,opt,name=patternId" json:"patternId,omitempty"` TextContent *StRichTextTextContent `protobuf:"bytes,3,opt,name=textContent" json:"textContent,omitempty"` AtContent *StRichTextAtContent `protobuf:"bytes,4,opt,name=atContent" json:"atContent,omitempty"` UrlContent *StRichTextURLContent `protobuf:"bytes,5,opt,name=urlContent" json:"urlContent,omitempty"` EmojiContent *StRichTextEmojiContent `protobuf:"bytes,6,opt,name=emojiContent" json:"emojiContent,omitempty"` ChannelContent *StRichTextChannelContent `protobuf:"bytes,7,opt,name=channelContent" json:"channelContent,omitempty"` } func (x *StRichTextContent) Reset() { *x = StRichTextContent{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichTextContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichTextContent) ProtoMessage() {} func (x *StRichTextContent) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichTextContent.ProtoReflect.Descriptor instead. func (*StRichTextContent) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{52} } func (x *StRichTextContent) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StRichTextContent) GetPatternId() string { if x != nil && x.PatternId != nil { return *x.PatternId } return "" } func (x *StRichTextContent) GetTextContent() *StRichTextTextContent { if x != nil { return x.TextContent } return nil } func (x *StRichTextContent) GetAtContent() *StRichTextAtContent { if x != nil { return x.AtContent } return nil } func (x *StRichTextContent) GetUrlContent() *StRichTextURLContent { if x != nil { return x.UrlContent } return nil } func (x *StRichTextContent) GetEmojiContent() *StRichTextEmojiContent { if x != nil { return x.EmojiContent } return nil } func (x *StRichTextContent) GetChannelContent() *StRichTextChannelContent { if x != nil { return x.ChannelContent } return nil } type StRichTextEmojiContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Type *string `protobuf:"bytes,2,opt,name=type" json:"type,omitempty"` Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` Url *string `protobuf:"bytes,4,opt,name=url" json:"url,omitempty"` } func (x *StRichTextEmojiContent) Reset() { *x = StRichTextEmojiContent{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichTextEmojiContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichTextEmojiContent) ProtoMessage() {} func (x *StRichTextEmojiContent) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichTextEmojiContent.ProtoReflect.Descriptor instead. func (*StRichTextEmojiContent) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{53} } func (x *StRichTextEmojiContent) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StRichTextEmojiContent) GetType() string { if x != nil && x.Type != nil { return *x.Type } return "" } func (x *StRichTextEmojiContent) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *StRichTextEmojiContent) GetUrl() string { if x != nil && x.Url != nil { return *x.Url } return "" } type StRichTextTextContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"` } func (x *StRichTextTextContent) Reset() { *x = StRichTextTextContent{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichTextTextContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichTextTextContent) ProtoMessage() {} func (x *StRichTextTextContent) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichTextTextContent.ProtoReflect.Descriptor instead. func (*StRichTextTextContent) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{54} } func (x *StRichTextTextContent) GetText() string { if x != nil && x.Text != nil { return *x.Text } return "" } type StRichTextURLContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"` DisplayText *string `protobuf:"bytes,2,opt,name=displayText" json:"displayText,omitempty"` } func (x *StRichTextURLContent) Reset() { *x = StRichTextURLContent{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StRichTextURLContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*StRichTextURLContent) ProtoMessage() {} func (x *StRichTextURLContent) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StRichTextURLContent.ProtoReflect.Descriptor instead. func (*StRichTextURLContent) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{55} } func (x *StRichTextURLContent) GetUrl() string { if x != nil && x.Url != nil { return *x.Url } return "" } func (x *StRichTextURLContent) GetDisplayText() string { if x != nil && x.DisplayText != nil { return *x.DisplayText } return "" } type StSameTopicGuideInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsSameTopicGuide *uint32 `protobuf:"varint,1,opt,name=isSameTopicGuide" json:"isSameTopicGuide,omitempty"` StayShowTime *int64 `protobuf:"varint,2,opt,name=stayShowTime" json:"stayShowTime,omitempty"` HashTag *string `protobuf:"bytes,3,opt,name=hashTag" json:"hashTag,omitempty"` Words *string `protobuf:"bytes,4,opt,name=words" json:"words,omitempty"` JumpUrl *string `protobuf:"bytes,5,opt,name=jumpUrl" json:"jumpUrl,omitempty"` ReportExt *string `protobuf:"bytes,6,opt,name=reportExt" json:"reportExt,omitempty"` } func (x *StSameTopicGuideInfo) Reset() { *x = StSameTopicGuideInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StSameTopicGuideInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StSameTopicGuideInfo) ProtoMessage() {} func (x *StSameTopicGuideInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StSameTopicGuideInfo.ProtoReflect.Descriptor instead. func (*StSameTopicGuideInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{56} } func (x *StSameTopicGuideInfo) GetIsSameTopicGuide() uint32 { if x != nil && x.IsSameTopicGuide != nil { return *x.IsSameTopicGuide } return 0 } func (x *StSameTopicGuideInfo) GetStayShowTime() int64 { if x != nil && x.StayShowTime != nil { return *x.StayShowTime } return 0 } func (x *StSameTopicGuideInfo) GetHashTag() string { if x != nil && x.HashTag != nil { return *x.HashTag } return "" } func (x *StSameTopicGuideInfo) GetWords() string { if x != nil && x.Words != nil { return *x.Words } return "" } func (x *StSameTopicGuideInfo) GetJumpUrl() string { if x != nil && x.JumpUrl != nil { return *x.JumpUrl } return "" } func (x *StSameTopicGuideInfo) GetReportExt() string { if x != nil && x.ReportExt != nil { return *x.ReportExt } return "" } type StShare struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` Desc *string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` Type *uint32 `protobuf:"varint,3,opt,name=type" json:"type,omitempty"` Url *string `protobuf:"bytes,4,opt,name=url" json:"url,omitempty"` Author *StUser `protobuf:"bytes,5,opt,name=author" json:"author,omitempty"` Poster *StUser `protobuf:"bytes,6,opt,name=poster" json:"poster,omitempty"` Videos []*StVideo `protobuf:"bytes,7,rep,name=videos" json:"videos,omitempty"` Shorturl *string `protobuf:"bytes,8,opt,name=shorturl" json:"shorturl,omitempty"` ShareCardInfo *string `protobuf:"bytes,9,opt,name=shareCardInfo" json:"shareCardInfo,omitempty"` ShareQzoneInfo *StShareQzoneInfo `protobuf:"bytes,10,opt,name=shareQzoneInfo" json:"shareQzoneInfo,omitempty"` Images []*StImage `protobuf:"bytes,11,rep,name=images" json:"images,omitempty"` PublishTotalUser *uint32 `protobuf:"varint,12,opt,name=publishTotalUser" json:"publishTotalUser,omitempty"` SharedCount *uint32 `protobuf:"varint,13,opt,name=sharedCount" json:"sharedCount,omitempty"` ChannelShareInfo *StChannelShareInfo `protobuf:"bytes,14,opt,name=channelShareInfo" json:"channelShareInfo,omitempty"` } func (x *StShare) Reset() { *x = StShare{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StShare) String() string { return protoimpl.X.MessageStringOf(x) } func (*StShare) ProtoMessage() {} func (x *StShare) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StShare.ProtoReflect.Descriptor instead. func (*StShare) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{57} } func (x *StShare) GetTitle() string { if x != nil && x.Title != nil { return *x.Title } return "" } func (x *StShare) GetDesc() string { if x != nil && x.Desc != nil { return *x.Desc } return "" } func (x *StShare) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StShare) GetUrl() string { if x != nil && x.Url != nil { return *x.Url } return "" } func (x *StShare) GetAuthor() *StUser { if x != nil { return x.Author } return nil } func (x *StShare) GetPoster() *StUser { if x != nil { return x.Poster } return nil } func (x *StShare) GetVideos() []*StVideo { if x != nil { return x.Videos } return nil } func (x *StShare) GetShorturl() string { if x != nil && x.Shorturl != nil { return *x.Shorturl } return "" } func (x *StShare) GetShareCardInfo() string { if x != nil && x.ShareCardInfo != nil { return *x.ShareCardInfo } return "" } func (x *StShare) GetShareQzoneInfo() *StShareQzoneInfo { if x != nil { return x.ShareQzoneInfo } return nil } func (x *StShare) GetImages() []*StImage { if x != nil { return x.Images } return nil } func (x *StShare) GetPublishTotalUser() uint32 { if x != nil && x.PublishTotalUser != nil { return *x.PublishTotalUser } return 0 } func (x *StShare) GetSharedCount() uint32 { if x != nil && x.SharedCount != nil { return *x.SharedCount } return 0 } func (x *StShare) GetChannelShareInfo() *StChannelShareInfo { if x != nil { return x.ChannelShareInfo } return nil } type StShareQzoneInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Entrys []*CommonEntry `protobuf:"bytes,1,rep,name=entrys" json:"entrys,omitempty"` } func (x *StShareQzoneInfo) Reset() { *x = StShareQzoneInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StShareQzoneInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StShareQzoneInfo) ProtoMessage() {} func (x *StShareQzoneInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StShareQzoneInfo.ProtoReflect.Descriptor instead. func (*StShareQzoneInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{58} } func (x *StShareQzoneInfo) GetEntrys() []*CommonEntry { if x != nil { return x.Entrys } return nil } type StSingleMaterial struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MaterialId *string `protobuf:"bytes,1,opt,name=materialId" json:"materialId,omitempty"` } func (x *StSingleMaterial) Reset() { *x = StSingleMaterial{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StSingleMaterial) String() string { return protoimpl.X.MessageStringOf(x) } func (*StSingleMaterial) ProtoMessage() {} func (x *StSingleMaterial) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StSingleMaterial.ProtoReflect.Descriptor instead. func (*StSingleMaterial) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{59} } func (x *StSingleMaterial) GetMaterialId() string { if x != nil && x.MaterialId != nil { return *x.MaterialId } return "" } type StSingleRecomReportInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReportID *string `protobuf:"bytes,1,opt,name=reportID" json:"reportID,omitempty"` ReportData []byte `protobuf:"bytes,2,opt,name=reportData" json:"reportData,omitempty"` } func (x *StSingleRecomReportInfo) Reset() { *x = StSingleRecomReportInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StSingleRecomReportInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StSingleRecomReportInfo) ProtoMessage() {} func (x *StSingleRecomReportInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StSingleRecomReportInfo.ProtoReflect.Descriptor instead. func (*StSingleRecomReportInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{60} } func (x *StSingleRecomReportInfo) GetReportID() string { if x != nil && x.ReportID != nil { return *x.ReportID } return "" } func (x *StSingleRecomReportInfo) GetReportData() []byte { if x != nil { return x.ReportData } return nil } type StTagInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TagId *string `protobuf:"bytes,1,opt,name=tagId" json:"tagId,omitempty"` TagName *string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"` TagDec *string `protobuf:"bytes,3,opt,name=tagDec" json:"tagDec,omitempty"` UserList []*StUser `protobuf:"bytes,4,rep,name=userList" json:"userList,omitempty"` FeedList []*StFeedAbstract `protobuf:"bytes,5,rep,name=feedList" json:"feedList,omitempty"` TagTotalUser *uint32 `protobuf:"varint,6,opt,name=tagTotalUser" json:"tagTotalUser,omitempty"` TagTotalFeed *uint32 `protobuf:"varint,7,opt,name=tagTotalFeed" json:"tagTotalFeed,omitempty"` TagWording *string `protobuf:"bytes,8,opt,name=tagWording" json:"tagWording,omitempty"` TagType *uint32 `protobuf:"varint,9,opt,name=tagType" json:"tagType,omitempty"` FollowState *uint32 `protobuf:"varint,10,opt,name=followState" json:"followState,omitempty"` ShareInfo *StShare `protobuf:"bytes,11,opt,name=shareInfo" json:"shareInfo,omitempty"` IsTop *uint32 `protobuf:"varint,12,opt,name=isTop" json:"isTop,omitempty"` IsSelected *uint32 `protobuf:"varint,13,opt,name=isSelected" json:"isSelected,omitempty"` UserViewHistory *int64 `protobuf:"varint,14,opt,name=userViewHistory" json:"userViewHistory,omitempty"` Medal *StTagMedalInfo `protobuf:"bytes,15,opt,name=medal" json:"medal,omitempty"` Status *uint32 `protobuf:"varint,16,opt,name=status" json:"status,omitempty"` OptInfo *StTagOperateInfo `protobuf:"bytes,17,opt,name=optInfo" json:"optInfo,omitempty"` TagBaseStatus *uint32 `protobuf:"varint,18,opt,name=tagBaseStatus" json:"tagBaseStatus,omitempty"` IsRecommend *int32 `protobuf:"varint,19,opt,name=isRecommend" json:"isRecommend,omitempty"` TagViewHistory *int64 `protobuf:"varint,20,opt,name=tagViewHistory" json:"tagViewHistory,omitempty"` OperateIconUrl *string `protobuf:"bytes,21,opt,name=operateIconUrl" json:"operateIconUrl,omitempty"` TagReport *string `protobuf:"bytes,99,opt,name=tagReport" json:"tagReport,omitempty"` TagIconUrl *string `protobuf:"bytes,100,opt,name=tagIconUrl" json:"tagIconUrl,omitempty"` } func (x *StTagInfo) Reset() { *x = StTagInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StTagInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StTagInfo) ProtoMessage() {} func (x *StTagInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StTagInfo.ProtoReflect.Descriptor instead. func (*StTagInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{61} } func (x *StTagInfo) GetTagId() string { if x != nil && x.TagId != nil { return *x.TagId } return "" } func (x *StTagInfo) GetTagName() string { if x != nil && x.TagName != nil { return *x.TagName } return "" } func (x *StTagInfo) GetTagDec() string { if x != nil && x.TagDec != nil { return *x.TagDec } return "" } func (x *StTagInfo) GetUserList() []*StUser { if x != nil { return x.UserList } return nil } func (x *StTagInfo) GetFeedList() []*StFeedAbstract { if x != nil { return x.FeedList } return nil } func (x *StTagInfo) GetTagTotalUser() uint32 { if x != nil && x.TagTotalUser != nil { return *x.TagTotalUser } return 0 } func (x *StTagInfo) GetTagTotalFeed() uint32 { if x != nil && x.TagTotalFeed != nil { return *x.TagTotalFeed } return 0 } func (x *StTagInfo) GetTagWording() string { if x != nil && x.TagWording != nil { return *x.TagWording } return "" } func (x *StTagInfo) GetTagType() uint32 { if x != nil && x.TagType != nil { return *x.TagType } return 0 } func (x *StTagInfo) GetFollowState() uint32 { if x != nil && x.FollowState != nil { return *x.FollowState } return 0 } func (x *StTagInfo) GetShareInfo() *StShare { if x != nil { return x.ShareInfo } return nil } func (x *StTagInfo) GetIsTop() uint32 { if x != nil && x.IsTop != nil { return *x.IsTop } return 0 } func (x *StTagInfo) GetIsSelected() uint32 { if x != nil && x.IsSelected != nil { return *x.IsSelected } return 0 } func (x *StTagInfo) GetUserViewHistory() int64 { if x != nil && x.UserViewHistory != nil { return *x.UserViewHistory } return 0 } func (x *StTagInfo) GetMedal() *StTagMedalInfo { if x != nil { return x.Medal } return nil } func (x *StTagInfo) GetStatus() uint32 { if x != nil && x.Status != nil { return *x.Status } return 0 } func (x *StTagInfo) GetOptInfo() *StTagOperateInfo { if x != nil { return x.OptInfo } return nil } func (x *StTagInfo) GetTagBaseStatus() uint32 { if x != nil && x.TagBaseStatus != nil { return *x.TagBaseStatus } return 0 } func (x *StTagInfo) GetIsRecommend() int32 { if x != nil && x.IsRecommend != nil { return *x.IsRecommend } return 0 } func (x *StTagInfo) GetTagViewHistory() int64 { if x != nil && x.TagViewHistory != nil { return *x.TagViewHistory } return 0 } func (x *StTagInfo) GetOperateIconUrl() string { if x != nil && x.OperateIconUrl != nil { return *x.OperateIconUrl } return "" } func (x *StTagInfo) GetTagReport() string { if x != nil && x.TagReport != nil { return *x.TagReport } return "" } func (x *StTagInfo) GetTagIconUrl() string { if x != nil && x.TagIconUrl != nil { return *x.TagIconUrl } return "" } type StTagMedalInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TagID *string `protobuf:"bytes,1,opt,name=tagID" json:"tagID,omitempty"` TagName *string `protobuf:"bytes,2,opt,name=tagName" json:"tagName,omitempty"` Rank *uint64 `protobuf:"varint,3,opt,name=rank" json:"rank,omitempty"` } func (x *StTagMedalInfo) Reset() { *x = StTagMedalInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StTagMedalInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StTagMedalInfo) ProtoMessage() {} func (x *StTagMedalInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StTagMedalInfo.ProtoReflect.Descriptor instead. func (*StTagMedalInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{62} } func (x *StTagMedalInfo) GetTagID() string { if x != nil && x.TagID != nil { return *x.TagID } return "" } func (x *StTagMedalInfo) GetTagName() string { if x != nil && x.TagName != nil { return *x.TagName } return "" } func (x *StTagMedalInfo) GetRank() uint64 { if x != nil && x.Rank != nil { return *x.Rank } return 0 } type StTagOperateInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CreateUser *string `protobuf:"bytes,1,opt,name=createUser" json:"createUser,omitempty"` CoverURL *string `protobuf:"bytes,2,opt,name=coverURL" json:"coverURL,omitempty"` Desc *string `protobuf:"bytes,3,opt,name=desc" json:"desc,omitempty"` BackgroundURL *string `protobuf:"bytes,4,opt,name=backgroundURL" json:"backgroundURL,omitempty"` BannerURL *string `protobuf:"bytes,5,opt,name=bannerURL" json:"bannerURL,omitempty"` BannerSkipLink *string `protobuf:"bytes,6,opt,name=bannerSkipLink" json:"bannerSkipLink,omitempty"` ActivityStartTime *int64 `protobuf:"varint,7,opt,name=activityStartTime" json:"activityStartTime,omitempty"` ActivityEndTime *int64 `protobuf:"varint,8,opt,name=activityEndTime" json:"activityEndTime,omitempty"` RecommendReason *string `protobuf:"bytes,9,opt,name=recommendReason" json:"recommendReason,omitempty"` IsWhite *int32 `protobuf:"varint,10,opt,name=isWhite" json:"isWhite,omitempty"` BeWhiteStartTime *int64 `protobuf:"varint,11,opt,name=beWhiteStartTime" json:"beWhiteStartTime,omitempty"` BeWhiteEndTime *int64 `protobuf:"varint,12,opt,name=beWhiteEndTime" json:"beWhiteEndTime,omitempty"` PublishSchema *string `protobuf:"bytes,13,opt,name=publishSchema" json:"publishSchema,omitempty"` } func (x *StTagOperateInfo) Reset() { *x = StTagOperateInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StTagOperateInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StTagOperateInfo) ProtoMessage() {} func (x *StTagOperateInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StTagOperateInfo.ProtoReflect.Descriptor instead. func (*StTagOperateInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{63} } func (x *StTagOperateInfo) GetCreateUser() string { if x != nil && x.CreateUser != nil { return *x.CreateUser } return "" } func (x *StTagOperateInfo) GetCoverURL() string { if x != nil && x.CoverURL != nil { return *x.CoverURL } return "" } func (x *StTagOperateInfo) GetDesc() string { if x != nil && x.Desc != nil { return *x.Desc } return "" } func (x *StTagOperateInfo) GetBackgroundURL() string { if x != nil && x.BackgroundURL != nil { return *x.BackgroundURL } return "" } func (x *StTagOperateInfo) GetBannerURL() string { if x != nil && x.BannerURL != nil { return *x.BannerURL } return "" } func (x *StTagOperateInfo) GetBannerSkipLink() string { if x != nil && x.BannerSkipLink != nil { return *x.BannerSkipLink } return "" } func (x *StTagOperateInfo) GetActivityStartTime() int64 { if x != nil && x.ActivityStartTime != nil { return *x.ActivityStartTime } return 0 } func (x *StTagOperateInfo) GetActivityEndTime() int64 { if x != nil && x.ActivityEndTime != nil { return *x.ActivityEndTime } return 0 } func (x *StTagOperateInfo) GetRecommendReason() string { if x != nil && x.RecommendReason != nil { return *x.RecommendReason } return "" } func (x *StTagOperateInfo) GetIsWhite() int32 { if x != nil && x.IsWhite != nil { return *x.IsWhite } return 0 } func (x *StTagOperateInfo) GetBeWhiteStartTime() int64 { if x != nil && x.BeWhiteStartTime != nil { return *x.BeWhiteStartTime } return 0 } func (x *StTagOperateInfo) GetBeWhiteEndTime() int64 { if x != nil && x.BeWhiteEndTime != nil { return *x.BeWhiteEndTime } return 0 } func (x *StTagOperateInfo) GetPublishSchema() string { if x != nil && x.PublishSchema != nil { return *x.PublishSchema } return "" } type StUnifiedTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UnifiedType *string `protobuf:"bytes,1,opt,name=unifiedType" json:"unifiedType,omitempty"` UnifiedId *string `protobuf:"bytes,2,opt,name=unifiedId" json:"unifiedId,omitempty"` } func (x *StUnifiedTag) Reset() { *x = StUnifiedTag{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StUnifiedTag) String() string { return protoimpl.X.MessageStringOf(x) } func (*StUnifiedTag) ProtoMessage() {} func (x *StUnifiedTag) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StUnifiedTag.ProtoReflect.Descriptor instead. func (*StUnifiedTag) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{64} } func (x *StUnifiedTag) GetUnifiedType() string { if x != nil && x.UnifiedType != nil { return *x.UnifiedType } return "" } func (x *StUnifiedTag) GetUnifiedId() string { if x != nil && x.UnifiedId != nil { return *x.UnifiedId } return "" } type StUser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Nick *string `protobuf:"bytes,2,opt,name=nick" json:"nick,omitempty"` Icon *StIconInfo `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` Desc *string `protobuf:"bytes,4,opt,name=desc" json:"desc,omitempty"` FollowState *uint32 `protobuf:"varint,5,opt,name=followState" json:"followState,omitempty"` Type *uint32 `protobuf:"varint,6,opt,name=type" json:"type,omitempty"` Sex *uint32 `protobuf:"varint,7,opt,name=sex" json:"sex,omitempty"` Birthday *uint64 `protobuf:"varint,8,opt,name=birthday" json:"birthday,omitempty"` School *string `protobuf:"bytes,9,opt,name=school" json:"school,omitempty"` Location *string `protobuf:"bytes,11,opt,name=location" json:"location,omitempty"` BusiData []byte `protobuf:"bytes,12,opt,name=busiData" json:"busiData,omitempty"` FrdState *uint32 `protobuf:"varint,13,opt,name=frdState" json:"frdState,omitempty"` RelationState *uint32 `protobuf:"varint,14,opt,name=relationState" json:"relationState,omitempty"` BlackState *uint32 `protobuf:"varint,15,opt,name=blackState" json:"blackState,omitempty"` Medal *StTagMedalInfo `protobuf:"bytes,16,opt,name=medal" json:"medal,omitempty"` Constellation *int32 `protobuf:"varint,17,opt,name=constellation" json:"constellation,omitempty"` JumpUrl *string `protobuf:"bytes,18,opt,name=jumpUrl" json:"jumpUrl,omitempty"` LocationCode *string `protobuf:"bytes,19,opt,name=locationCode" json:"locationCode,omitempty"` ThirdId *string `protobuf:"bytes,20,opt,name=thirdId" json:"thirdId,omitempty"` Company *string `protobuf:"bytes,21,opt,name=company" json:"company,omitempty"` CertificationDesc *string `protobuf:"bytes,22,opt,name=certificationDesc" json:"certificationDesc,omitempty"` DescType *uint32 `protobuf:"varint,23,opt,name=descType" json:"descType,omitempty"` ChannelUserInfo *GuildChannelBaseChannelUserInfo `protobuf:"bytes,24,opt,name=channelUserInfo" json:"channelUserInfo,omitempty"` LoginId *string `protobuf:"bytes,25,opt,name=loginId" json:"loginId,omitempty"` } func (x *StUser) Reset() { *x = StUser{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StUser) String() string { return protoimpl.X.MessageStringOf(x) } func (*StUser) ProtoMessage() {} func (x *StUser) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_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 StUser.ProtoReflect.Descriptor instead. func (*StUser) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{65} } func (x *StUser) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StUser) GetNick() string { if x != nil && x.Nick != nil { return *x.Nick } return "" } func (x *StUser) GetIcon() *StIconInfo { if x != nil { return x.Icon } return nil } func (x *StUser) GetDesc() string { if x != nil && x.Desc != nil { return *x.Desc } return "" } func (x *StUser) GetFollowState() uint32 { if x != nil && x.FollowState != nil { return *x.FollowState } return 0 } func (x *StUser) GetType() uint32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StUser) GetSex() uint32 { if x != nil && x.Sex != nil { return *x.Sex } return 0 } func (x *StUser) GetBirthday() uint64 { if x != nil && x.Birthday != nil { return *x.Birthday } return 0 } func (x *StUser) GetSchool() string { if x != nil && x.School != nil { return *x.School } return "" } func (x *StUser) GetLocation() string { if x != nil && x.Location != nil { return *x.Location } return "" } func (x *StUser) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StUser) GetFrdState() uint32 { if x != nil && x.FrdState != nil { return *x.FrdState } return 0 } func (x *StUser) GetRelationState() uint32 { if x != nil && x.RelationState != nil { return *x.RelationState } return 0 } func (x *StUser) GetBlackState() uint32 { if x != nil && x.BlackState != nil { return *x.BlackState } return 0 } func (x *StUser) GetMedal() *StTagMedalInfo { if x != nil { return x.Medal } return nil } func (x *StUser) GetConstellation() int32 { if x != nil && x.Constellation != nil { return *x.Constellation } return 0 } func (x *StUser) GetJumpUrl() string { if x != nil && x.JumpUrl != nil { return *x.JumpUrl } return "" } func (x *StUser) GetLocationCode() string { if x != nil && x.LocationCode != nil { return *x.LocationCode } return "" } func (x *StUser) GetThirdId() string { if x != nil && x.ThirdId != nil { return *x.ThirdId } return "" } func (x *StUser) GetCompany() string { if x != nil && x.Company != nil { return *x.Company } return "" } func (x *StUser) GetCertificationDesc() string { if x != nil && x.CertificationDesc != nil { return *x.CertificationDesc } return "" } func (x *StUser) GetDescType() uint32 { if x != nil && x.DescType != nil { return *x.DescType } return 0 } func (x *StUser) GetChannelUserInfo() *GuildChannelBaseChannelUserInfo { if x != nil { return x.ChannelUserInfo } return nil } func (x *StUser) GetLoginId() string { if x != nil && x.LoginId != nil { return *x.LoginId } return "" } type GuildChannelBaseChannelUserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ClientIdentity *ClientIdentity `protobuf:"bytes,1,opt,name=clientIdentity" json:"clientIdentity,omitempty"` MemberType *uint32 `protobuf:"varint,2,opt,name=memberType" json:"memberType,omitempty"` // optional ChannelUserPermission permission = 3; RoleGroups []*GuildChannelBaseRoleGroupInfo `protobuf:"bytes,4,rep,name=roleGroups" json:"roleGroups,omitempty"` } func (x *GuildChannelBaseChannelUserInfo) Reset() { *x = GuildChannelBaseChannelUserInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GuildChannelBaseChannelUserInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*GuildChannelBaseChannelUserInfo) ProtoMessage() {} func (x *GuildChannelBaseChannelUserInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GuildChannelBaseChannelUserInfo.ProtoReflect.Descriptor instead. func (*GuildChannelBaseChannelUserInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{66} } func (x *GuildChannelBaseChannelUserInfo) GetClientIdentity() *ClientIdentity { if x != nil { return x.ClientIdentity } return nil } func (x *GuildChannelBaseChannelUserInfo) GetMemberType() uint32 { if x != nil && x.MemberType != nil { return *x.MemberType } return 0 } func (x *GuildChannelBaseChannelUserInfo) GetRoleGroups() []*GuildChannelBaseRoleGroupInfo { if x != nil { return x.RoleGroups } return nil } type StUserGroupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id *string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"` Name *string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` UserList []*StUser `protobuf:"bytes,3,rep,name=userList" json:"userList,omitempty"` } func (x *StUserGroupInfo) Reset() { *x = StUserGroupInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StUserGroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StUserGroupInfo) ProtoMessage() {} func (x *StUserGroupInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StUserGroupInfo.ProtoReflect.Descriptor instead. func (*StUserGroupInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{67} } func (x *StUserGroupInfo) GetId() string { if x != nil && x.Id != nil { return *x.Id } return "" } func (x *StUserGroupInfo) GetName() string { if x != nil && x.Name != nil { return *x.Name } return "" } func (x *StUserGroupInfo) GetUserList() []*StUser { if x != nil { return x.UserList } return nil } type StUserRecomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields User *StUser `protobuf:"bytes,1,opt,name=user" json:"user,omitempty"` FeedList []*StFeedAbstract `protobuf:"bytes,2,rep,name=feedList" json:"feedList,omitempty"` BusiData []byte `protobuf:"bytes,3,opt,name=busiData" json:"busiData,omitempty"` } func (x *StUserRecomInfo) Reset() { *x = StUserRecomInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StUserRecomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StUserRecomInfo) ProtoMessage() {} func (x *StUserRecomInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[68] 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 StUserRecomInfo.ProtoReflect.Descriptor instead. func (*StUserRecomInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{68} } func (x *StUserRecomInfo) GetUser() *StUser { if x != nil { return x.User } return nil } func (x *StUserRecomInfo) GetFeedList() []*StFeedAbstract { if x != nil { return x.FeedList } return nil } func (x *StUserRecomInfo) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } type StVideo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FileId *string `protobuf:"bytes,1,opt,name=fileId" json:"fileId,omitempty"` FileSize *uint32 `protobuf:"varint,2,opt,name=fileSize" json:"fileSize,omitempty"` Duration *uint32 `protobuf:"varint,3,opt,name=duration" json:"duration,omitempty"` Width *uint32 `protobuf:"varint,4,opt,name=width" json:"width,omitempty"` Height *uint32 `protobuf:"varint,5,opt,name=height" json:"height,omitempty"` PlayUrl *string `protobuf:"bytes,6,opt,name=playUrl" json:"playUrl,omitempty"` TransStatus *uint32 `protobuf:"varint,7,opt,name=transStatus" json:"transStatus,omitempty"` VideoPrior *uint32 `protobuf:"varint,8,opt,name=videoPrior" json:"videoPrior,omitempty"` VideoRate *uint32 `protobuf:"varint,9,opt,name=videoRate" json:"videoRate,omitempty"` VecVideoUrl []*StVideoUrl `protobuf:"bytes,10,rep,name=vecVideoUrl" json:"vecVideoUrl,omitempty"` BusiData []byte `protobuf:"bytes,11,opt,name=busiData" json:"busiData,omitempty"` ApprovalStatus *uint32 `protobuf:"varint,12,opt,name=approvalStatus" json:"approvalStatus,omitempty"` VideoSource *uint32 `protobuf:"varint,13,opt,name=videoSource" json:"videoSource,omitempty"` MediaQualityRank *uint32 `protobuf:"varint,14,opt,name=mediaQualityRank" json:"mediaQualityRank,omitempty"` MediaQualityScore *float32 `protobuf:"fixed32,15,opt,name=mediaQualityScore" json:"mediaQualityScore,omitempty"` VideoMD5 *string `protobuf:"bytes,16,opt,name=videoMD5" json:"videoMD5,omitempty"` IsQuic *uint32 `protobuf:"varint,17,opt,name=isQuic" json:"isQuic,omitempty"` Orientation *uint32 `protobuf:"varint,18,opt,name=orientation" json:"orientation,omitempty"` Cover *StImage `protobuf:"bytes,19,opt,name=cover" json:"cover,omitempty"` PatternId *string `protobuf:"bytes,20,opt,name=patternId" json:"patternId,omitempty"` DisplayIndex *uint32 `protobuf:"varint,21,opt,name=displayIndex" json:"displayIndex,omitempty"` } func (x *StVideo) Reset() { *x = StVideo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StVideo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StVideo) ProtoMessage() {} func (x *StVideo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[69] 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 StVideo.ProtoReflect.Descriptor instead. func (*StVideo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{69} } func (x *StVideo) GetFileId() string { if x != nil && x.FileId != nil { return *x.FileId } return "" } func (x *StVideo) GetFileSize() uint32 { if x != nil && x.FileSize != nil { return *x.FileSize } return 0 } func (x *StVideo) GetDuration() uint32 { if x != nil && x.Duration != nil { return *x.Duration } return 0 } func (x *StVideo) GetWidth() uint32 { if x != nil && x.Width != nil { return *x.Width } return 0 } func (x *StVideo) GetHeight() uint32 { if x != nil && x.Height != nil { return *x.Height } return 0 } func (x *StVideo) GetPlayUrl() string { if x != nil && x.PlayUrl != nil { return *x.PlayUrl } return "" } func (x *StVideo) GetTransStatus() uint32 { if x != nil && x.TransStatus != nil { return *x.TransStatus } return 0 } func (x *StVideo) GetVideoPrior() uint32 { if x != nil && x.VideoPrior != nil { return *x.VideoPrior } return 0 } func (x *StVideo) GetVideoRate() uint32 { if x != nil && x.VideoRate != nil { return *x.VideoRate } return 0 } func (x *StVideo) GetVecVideoUrl() []*StVideoUrl { if x != nil { return x.VecVideoUrl } return nil } func (x *StVideo) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StVideo) GetApprovalStatus() uint32 { if x != nil && x.ApprovalStatus != nil { return *x.ApprovalStatus } return 0 } func (x *StVideo) GetVideoSource() uint32 { if x != nil && x.VideoSource != nil { return *x.VideoSource } return 0 } func (x *StVideo) GetMediaQualityRank() uint32 { if x != nil && x.MediaQualityRank != nil { return *x.MediaQualityRank } return 0 } func (x *StVideo) GetMediaQualityScore() float32 { if x != nil && x.MediaQualityScore != nil { return *x.MediaQualityScore } return 0 } func (x *StVideo) GetVideoMD5() string { if x != nil && x.VideoMD5 != nil { return *x.VideoMD5 } return "" } func (x *StVideo) GetIsQuic() uint32 { if x != nil && x.IsQuic != nil { return *x.IsQuic } return 0 } func (x *StVideo) GetOrientation() uint32 { if x != nil && x.Orientation != nil { return *x.Orientation } return 0 } func (x *StVideo) GetCover() *StImage { if x != nil { return x.Cover } return nil } func (x *StVideo) GetPatternId() string { if x != nil && x.PatternId != nil { return *x.PatternId } return "" } func (x *StVideo) GetDisplayIndex() uint32 { if x != nil && x.DisplayIndex != nil { return *x.DisplayIndex } return 0 } type StVideoUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LevelType *uint32 `protobuf:"varint,1,opt,name=levelType" json:"levelType,omitempty"` PlayUrl *string `protobuf:"bytes,2,opt,name=playUrl" json:"playUrl,omitempty"` VideoPrior *uint32 `protobuf:"varint,3,opt,name=videoPrior" json:"videoPrior,omitempty"` VideoRate *uint32 `protobuf:"varint,4,opt,name=videoRate" json:"videoRate,omitempty"` TransStatus *uint32 `protobuf:"varint,5,opt,name=transStatus" json:"transStatus,omitempty"` BusiData []byte `protobuf:"bytes,6,opt,name=busiData" json:"busiData,omitempty"` HasWatermark *bool `protobuf:"varint,7,opt,name=hasWatermark" json:"hasWatermark,omitempty"` } func (x *StVideoUrl) Reset() { *x = StVideoUrl{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StVideoUrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*StVideoUrl) ProtoMessage() {} func (x *StVideoUrl) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[70] 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 StVideoUrl.ProtoReflect.Descriptor instead. func (*StVideoUrl) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{70} } func (x *StVideoUrl) GetLevelType() uint32 { if x != nil && x.LevelType != nil { return *x.LevelType } return 0 } func (x *StVideoUrl) GetPlayUrl() string { if x != nil && x.PlayUrl != nil { return *x.PlayUrl } return "" } func (x *StVideoUrl) GetVideoPrior() uint32 { if x != nil && x.VideoPrior != nil { return *x.VideoPrior } return 0 } func (x *StVideoUrl) GetVideoRate() uint32 { if x != nil && x.VideoRate != nil { return *x.VideoRate } return 0 } func (x *StVideoUrl) GetTransStatus() uint32 { if x != nil && x.TransStatus != nil { return *x.TransStatus } return 0 } func (x *StVideoUrl) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StVideoUrl) GetHasWatermark() bool { if x != nil && x.HasWatermark != nil { return *x.HasWatermark } return false } type StVisitor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ViewCount *uint32 `protobuf:"varint,1,opt,name=viewCount" json:"viewCount,omitempty"` BusiData []byte `protobuf:"bytes,2,opt,name=busiData" json:"busiData,omitempty"` RecomCount *uint32 `protobuf:"varint,3,opt,name=recomCount" json:"recomCount,omitempty"` ViewDesc *string `protobuf:"bytes,4,opt,name=viewDesc" json:"viewDesc,omitempty"` } func (x *StVisitor) Reset() { *x = StVisitor{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StVisitor) String() string { return protoimpl.X.MessageStringOf(x) } func (*StVisitor) ProtoMessage() {} func (x *StVisitor) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[71] 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 StVisitor.ProtoReflect.Descriptor instead. func (*StVisitor) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{71} } func (x *StVisitor) GetViewCount() uint32 { if x != nil && x.ViewCount != nil { return *x.ViewCount } return 0 } func (x *StVisitor) GetBusiData() []byte { if x != nil { return x.BusiData } return nil } func (x *StVisitor) GetRecomCount() uint32 { if x != nil && x.RecomCount != nil { return *x.RecomCount } return 0 } func (x *StVisitor) GetViewDesc() string { if x != nil && x.ViewDesc != nil { return *x.ViewDesc } return "" } type StWearingMedal struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MedalInfos []*StWearingMedalInfo `protobuf:"bytes,1,rep,name=medalInfos" json:"medalInfos,omitempty"` } func (x *StWearingMedal) Reset() { *x = StWearingMedal{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StWearingMedal) String() string { return protoimpl.X.MessageStringOf(x) } func (*StWearingMedal) ProtoMessage() {} func (x *StWearingMedal) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[72] 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 StWearingMedal.ProtoReflect.Descriptor instead. func (*StWearingMedal) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{72} } func (x *StWearingMedal) GetMedalInfos() []*StWearingMedalInfo { if x != nil { return x.MedalInfos } return nil } type StWearingMedalInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *int32 `protobuf:"varint,1,opt,name=type" json:"type,omitempty"` MedalName *string `protobuf:"bytes,2,opt,name=medalName" json:"medalName,omitempty"` MedalID *string `protobuf:"bytes,3,opt,name=medalID" json:"medalID,omitempty"` } func (x *StWearingMedalInfo) Reset() { *x = StWearingMedalInfo{} if protoimpl.UnsafeEnabled { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StWearingMedalInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StWearingMedalInfo) ProtoMessage() {} func (x *StWearingMedalInfo) ProtoReflect() protoreflect.Message { mi := &file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[73] 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 StWearingMedalInfo.ProtoReflect.Descriptor instead. func (*StWearingMedalInfo) Descriptor() ([]byte, []int) { return file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP(), []int{73} } func (x *StWearingMedalInfo) GetType() int32 { if x != nil && x.Type != nil { return *x.Type } return 0 } func (x *StWearingMedalInfo) GetMedalName() string { if x != nil && x.MedalName != nil { return *x.MedalName } return "" } func (x *StWearingMedalInfo) GetMedalID() string { if x != nil && x.MedalID != nil { return *x.MedalID } return "" } var File_pb_channel_GuildFeedCloudMeta_proto protoreflect.FileDescriptor var file_pb_channel_GuildFeedCloudMeta_proto_rawDesc = []byte{ 0x0a, 0x23, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x65, 0x65, 0x64, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 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, 0x1a, 0x21, 0x70, 0x62, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x64, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x6e, 0x0a, 0x0c, 0x46, 0x65, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x65, 0x64, 0x52, 0x65, 0x64, 0x54, 0x6f, 0x75, 0x63, 0x68, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x65, 0x65, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x65, 0x72, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x78, 0x74, 0x57, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x74, 0x65, 0x78, 0x74, 0x57, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x22, 0x7b, 0x0a, 0x0b, 0x53, 0x74, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x22, 0x6a, 0x0a, 0x10, 0x53, 0x74, 0x42, 0x75, 0x73, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x65, 0x49, 0x44, 0x22, 0x85, 0x02, 0x0a, 0x12, 0x53, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x65, 0x65, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x65, 0x65, 0x64, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x41, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x12, 0x2f, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x22, 0x46, 0x0a, 0x12, 0x53, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x75, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x75, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x66, 0x65, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x49, 0x44, 0x22, 0x68, 0x0a, 0x0c, 0x53, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x65, 0x64, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x6b, 0x65, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x70, 0x22, 0xc2, 0x04, 0x0a, 0x09, 0x53, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x08, 0x76, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x08, 0x76, 0x65, 0x63, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x4c, 0x69, 0x6b, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x55, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x55, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x45, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x45, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x69, 0x72, 0x64, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x69, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x72, 0x69, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x72, 0x69, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x0b, 0x53, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4d, 0x61, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x53, 0x74, 0x44, 0x69, 0x74, 0x74, 0x6f, 0x46, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x69, 0x74, 0x74, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x77, 0x22, 0x34, 0x0a, 0x0a, 0x53, 0x74, 0x45, 0x78, 0x69, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x03, 0x6b, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x6b, 0x76, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x52, 0x65, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x4a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x57, 0x61, 0x6c, 0x6c, 0x4a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x53, 0x68, 0x6f, 0x77, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xb6, 0x08, 0x0a, 0x06, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x06, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x12, 0x2f, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x0f, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x65, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x76, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x76, 0x65, 0x63, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x0b, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x70, 0x6f, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x50, 0x6f, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x52, 0x07, 0x70, 0x6f, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x74, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x70, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x29, 0x0a, 0x06, 0x6f, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x4f, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 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, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x30, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x46, 0x65, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0xf1, 0x02, 0x0a, 0x0e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x03, 0x70, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x03, 0x70, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x05, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x75, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x75, 0x65, 0x6c, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x6b, 0x0a, 0x0b, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6b, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x75, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x70, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x2f, 0x0a, 0x0d, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x65, 0x78, 0x74, 0x12, 0x37, 0x0a, 0x0b, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0b, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x65, 0x78, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x65, 0x78, 0x74, 0x22, 0x34, 0x0a, 0x0c, 0x53, 0x74, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x22, 0x55, 0x0a, 0x07, 0x53, 0x74, 0x47, 0x50, 0x53, 0x56, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x6c, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x61, 0x6c, 0x74, 0x22, 0x7c, 0x0a, 0x14, 0x53, 0x74, 0x47, 0x75, 0x69, 0x64, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x42, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3a, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x22, 0xa4, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x34, 0x30, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x31, 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x31, 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x31, 0x34, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x31, 0x34, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x36, 0x34, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x36, 0x34, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0xb8, 0x02, 0x0a, 0x07, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x35, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x52, 0x0b, 0x76, 0x65, 0x63, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x69, 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x69, 0x63, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x44, 0x35, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x44, 0x35, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x69, 0x63, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x86, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x22, 0xa1, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x22, 0x9c, 0x02, 0x0a, 0x06, 0x53, 0x74, 0x4c, 0x69, 0x6b, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x76, 0x65, 0x63, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, 0x76, 0x65, 0x63, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x4c, 0x69, 0x6b, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x22, 0xd2, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x4c, 0x69, 0x74, 0x65, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x76, 0x0a, 0x11, 0x53, 0x74, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x0c, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbd, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x48, 0x69, 0x67, 0x68, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x48, 0x69, 0x67, 0x68, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x08, 0x53, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x70, 0x73, 0x76, 0x46, 0x65, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x52, 0x07, 0x70, 0x73, 0x76, 0x46, 0x65, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x65, 0x46, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x65, 0x46, 0x65, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x69, 0x0a, 0x12, 0x53, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x50, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x61, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x54, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x54, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0x54, 0x78, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2d, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x08, 0x53, 0x74, 0x4f, 0x70, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7c, 0x0a, 0x0e, 0x53, 0x74, 0x50, 0x6c, 0x61, 0x69, 0x6e, 0x54, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x32, 0x0a, 0x07, 0x74, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x54, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x74, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc7, 0x04, 0x0a, 0x0b, 0x53, 0x74, 0x50, 0x6f, 0x69, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x69, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6f, 0x69, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x70, 0x6f, 0x69, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x03, 0x67, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x47, 0x50, 0x53, 0x56, 0x32, 0x52, 0x03, 0x67, 0x70, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6f, 0x69, 0x4e, 0x75, 0x6d, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x6f, 0x69, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6f, 0x69, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x6f, 0x69, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x61, 0x6e, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x61, 0x6e, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x78, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6d, 0x0a, 0x12, 0x53, 0x74, 0x50, 0x72, 0x65, 0x50, 0x75, 0x6c, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, 0x65, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x0b, 0x53, 0x74, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6d, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6d, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x75, 0x62, 0x43, 0x6d, 0x64, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x65, 0x71, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xeb, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x23, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x6e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xcb, 0x01, 0x0a, 0x0e, 0x53, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x22, 0xe5, 0x01, 0x0a, 0x0b, 0x53, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x54, 0x72, 0x61, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x11, 0x53, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0xa0, 0x02, 0x0a, 0x0e, 0x53, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x55, 0x6e, 0x63, 0x61, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x55, 0x6e, 0x63, 0x61, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x42, 0x69, 0x74, 0x4d, 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6d, 0x42, 0x69, 0x74, 0x4d, 0x61, 0x70, 0x22, 0xe9, 0x04, 0x0a, 0x07, 0x53, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x70, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2b, 0x0a, 0x08, 0x6c, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x4c, 0x69, 0x6b, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x6b, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x55, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x55, 0x69, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x79, 0x70, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x32, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4e, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x45, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x45, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x69, 0x72, 0x64, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x69, 0x72, 0x64, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x72, 0x69, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0c, 0x72, 0x69, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x3e, 0x0a, 0x0c, 0x53, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x62, 0x75, 0x73, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x44, 0x0a, 0x0a, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x13, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x41, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x65, 0x0a, 0x19, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 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, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x1d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 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, 0x22, 0x54, 0x0a, 0x18, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x92, 0x03, 0x0a, 0x11, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0b, 0x74, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x09, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x41, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x09, 0x61, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x75, 0x72, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x55, 0x52, 0x4c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x75, 0x72, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0c, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x65, 0x6d, 0x6f, 0x6a, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x62, 0x0a, 0x16, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x2b, 0x0a, 0x15, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x54, 0x65, 0x78, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4a, 0x0a, 0x14, 0x53, 0x74, 0x52, 0x69, 0x63, 0x68, 0x54, 0x65, 0x78, 0x74, 0x55, 0x52, 0x4c, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x22, 0xce, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x53, 0x61, 0x6d, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x47, 0x75, 0x69, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x53, 0x61, 0x6d, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x47, 0x75, 0x69, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x73, 0x53, 0x61, 0x6d, 0x65, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x47, 0x75, 0x69, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x79, 0x53, 0x68, 0x6f, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x68, 0x54, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x68, 0x54, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x78, 0x74, 0x22, 0x9b, 0x04, 0x0a, 0x07, 0x53, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x70, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x06, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x06, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x75, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x51, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x51, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x68, 0x61, 0x72, 0x65, 0x51, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x47, 0x0a, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x40, 0x0a, 0x10, 0x53, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x51, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x73, 0x22, 0x32, 0x0a, 0x10, 0x53, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x49, 0x64, 0x22, 0x55, 0x0a, 0x17, 0x53, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x22, 0xbb, 0x06, 0x0a, 0x09, 0x53, 0x74, 0x54, 0x61, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x67, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x44, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x44, 0x65, 0x63, 0x12, 0x2b, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x74, 0x61, 0x67, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x67, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x54, 0x6f, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x73, 0x54, 0x6f, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x56, 0x69, 0x65, 0x77, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x54, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x54, 0x61, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x42, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x42, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x56, 0x69, 0x65, 0x77, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x74, 0x61, 0x67, 0x56, 0x69, 0x65, 0x77, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x63, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x61, 0x67, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x67, 0x49, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x49, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x54, 0x0a, 0x0e, 0x53, 0x74, 0x54, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x67, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x22, 0xe4, 0x03, 0x0a, 0x10, 0x53, 0x74, 0x54, 0x61, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x55, 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x52, 0x4c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x55, 0x52, 0x4c, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x55, 0x52, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x6b, 0x69, 0x70, 0x4c, 0x69, 0x6e, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x6b, 0x69, 0x70, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x57, 0x68, 0x69, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x69, 0x73, 0x57, 0x68, 0x69, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x62, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x62, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x4e, 0x0a, 0x0c, 0x53, 0x74, 0x55, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x66, 0x69, 0x65, 0x64, 0x49, 0x64, 0x22, 0xfe, 0x05, 0x0a, 0x06, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x69, 0x63, 0x6b, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x54, 0x61, 0x67, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x75, 0x6d, 0x70, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x68, 0x69, 0x72, 0x64, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x68, 0x69, 0x72, 0x64, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x73, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xca, 0x01, 0x0a, 0x1f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3f, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x61, 0x73, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x72, 0x6f, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x62, 0x0a, 0x0f, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x46, 0x65, 0x65, 0x64, 0x41, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x52, 0x08, 0x66, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb8, 0x05, 0x0a, 0x07, 0x53, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x76, 0x65, 0x63, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x52, 0x0b, 0x76, 0x65, 0x63, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x44, 0x35, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x44, 0x35, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x51, 0x75, 0x69, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x73, 0x51, 0x75, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x05, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xe4, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x52, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x68, 0x61, 0x73, 0x57, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x81, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x56, 0x69, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x76, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x62, 0x75, 0x73, 0x69, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x44, 0x65, 0x73, 0x63, 0x22, 0x4d, 0x0a, 0x0e, 0x53, 0x74, 0x57, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x12, 0x3b, 0x0a, 0x0a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x53, 0x74, 0x57, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x22, 0x60, 0x0a, 0x12, 0x53, 0x74, 0x57, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x49, 0x44, 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_GuildFeedCloudMeta_proto_rawDescOnce sync.Once file_pb_channel_GuildFeedCloudMeta_proto_rawDescData = file_pb_channel_GuildFeedCloudMeta_proto_rawDesc ) func file_pb_channel_GuildFeedCloudMeta_proto_rawDescGZIP() []byte { file_pb_channel_GuildFeedCloudMeta_proto_rawDescOnce.Do(func() { file_pb_channel_GuildFeedCloudMeta_proto_rawDescData = protoimpl.X.CompressGZIP(file_pb_channel_GuildFeedCloudMeta_proto_rawDescData) }) return file_pb_channel_GuildFeedCloudMeta_proto_rawDescData } var file_pb_channel_GuildFeedCloudMeta_proto_msgTypes = make([]protoimpl.MessageInfo, 74) var file_pb_channel_GuildFeedCloudMeta_proto_goTypes = []interface{}{ (*ContentMetaData)(nil), // 0: channel.ContentMetaData (*FeedMetaData)(nil), // 1: channel.FeedMetaData (*FeedRedTouchTransInfo)(nil), // 2: channel.FeedRedTouchTransInfo (*NoticeOperation)(nil), // 3: channel.NoticeOperation (*RichTextContentCount)(nil), // 4: channel.RichTextContentCount (*StAnimation)(nil), // 5: channel.StAnimation (*StBusiReportInfo)(nil), // 6: channel.StBusiReportInfo (*StChannelShareInfo)(nil), // 7: channel.StChannelShareInfo (*StChannelShareSign)(nil), // 8: channel.StChannelShareSign (*StCircleRankItem)(nil), // 9: channel.StCircleRankItem (*StClientInfo)(nil), // 10: channel.StClientInfo (*StComment)(nil), // 11: channel.StComment (*StDebugInfo)(nil), // 12: channel.StDebugInfo (*StDittoFeed)(nil), // 13: channel.StDittoFeed (*StExifInfo)(nil), // 14: channel.StExifInfo (*StExternalMedalWallInfo)(nil), // 15: channel.StExternalMedalWallInfo (*StFeed)(nil), // 16: channel.StFeed (*StFeedAbstract)(nil), // 17: channel.StFeedAbstract (*StFeedCount)(nil), // 18: channel.StFeedCount (*StFeedSummary)(nil), // 19: channel.StFeedSummary (*StFollowRecomInfo)(nil), // 20: channel.StFollowRecomInfo (*StFollowUser)(nil), // 21: channel.StFollowUser (*StGPSV2)(nil), // 22: channel.StGPSV2 (*StGuidePublishBubble)(nil), // 23: channel.StGuidePublishBubble (*StIconInfo)(nil), // 24: channel.StIconInfo (*StImage)(nil), // 25: channel.StImage (*StImageUrl)(nil), // 26: channel.StImageUrl (*StLightInteractInfo)(nil), // 27: channel.StLightInteractInfo (*StLike)(nil), // 28: channel.StLike (*StLiteBanner)(nil), // 29: channel.StLiteBanner (*StMaterialDataNew)(nil), // 30: channel.StMaterialDataNew (*StMedalInfo)(nil), // 31: channel.StMedalInfo (*StNotice)(nil), // 32: channel.StNotice (*StNoticePattonInfo)(nil), // 33: channel.StNoticePattonInfo (*StNoticeTxtInfo)(nil), // 34: channel.StNoticeTxtInfo (*StOpinfo)(nil), // 35: channel.StOpinfo (*StPlainTxtInfo)(nil), // 36: channel.StPlainTxtInfo (*StPoiInfoV2)(nil), // 37: channel.StPoiInfoV2 (*StPrePullCacheFeed)(nil), // 38: channel.StPrePullCacheFeed (*StProxyInfo)(nil), // 39: channel.StProxyInfo (*StRankingItem)(nil), // 40: channel.StRankingItem (*StRecomForward)(nil), // 41: channel.StRecomForward (*StRecomInfo)(nil), // 42: channel.StRecomInfo (*StRecomReportInfo)(nil), // 43: channel.StRecomReportInfo (*StRelationInfo)(nil), // 44: channel.StRelationInfo (*StReply)(nil), // 45: channel.StReply (*StReportInfo)(nil), // 46: channel.StReportInfo (*StRichText)(nil), // 47: channel.StRichText (*StRichTextAtContent)(nil), // 48: channel.StRichTextAtContent (*GuildChannelBaseGuildInfo)(nil), // 49: channel.GuildChannelBaseGuildInfo (*GuildChannelBaseRoleGroupInfo)(nil), // 50: channel.GuildChannelBaseRoleGroupInfo (*StRichTextChannelContent)(nil), // 51: channel.StRichTextChannelContent (*StRichTextContent)(nil), // 52: channel.StRichTextContent (*StRichTextEmojiContent)(nil), // 53: channel.StRichTextEmojiContent (*StRichTextTextContent)(nil), // 54: channel.StRichTextTextContent (*StRichTextURLContent)(nil), // 55: channel.StRichTextURLContent (*StSameTopicGuideInfo)(nil), // 56: channel.StSameTopicGuideInfo (*StShare)(nil), // 57: channel.StShare (*StShareQzoneInfo)(nil), // 58: channel.StShareQzoneInfo (*StSingleMaterial)(nil), // 59: channel.StSingleMaterial (*StSingleRecomReportInfo)(nil), // 60: channel.StSingleRecomReportInfo (*StTagInfo)(nil), // 61: channel.StTagInfo (*StTagMedalInfo)(nil), // 62: channel.StTagMedalInfo (*StTagOperateInfo)(nil), // 63: channel.StTagOperateInfo (*StUnifiedTag)(nil), // 64: channel.StUnifiedTag (*StUser)(nil), // 65: channel.StUser (*GuildChannelBaseChannelUserInfo)(nil), // 66: channel.GuildChannelBaseChannelUserInfo (*StUserGroupInfo)(nil), // 67: channel.StUserGroupInfo (*StUserRecomInfo)(nil), // 68: channel.StUserRecomInfo (*StVideo)(nil), // 69: channel.StVideo (*StVideoUrl)(nil), // 70: channel.StVideoUrl (*StVisitor)(nil), // 71: channel.StVisitor (*StWearingMedal)(nil), // 72: channel.StWearingMedal (*StWearingMedalInfo)(nil), // 73: channel.StWearingMedalInfo (*StChannelSign)(nil), // 74: channel.StChannelSign (*CommonEntry)(nil), // 75: channel.CommonEntry (*EmojiReaction)(nil), // 76: EmojiReaction (*StChannelInfo)(nil), // 77: channel.StChannelInfo (*ClientIdentity)(nil), // 78: channel.ClientIdentity } var file_pb_channel_GuildFeedCloudMeta_proto_depIdxs = []int32{ 4, // 0: channel.ContentMetaData.count:type_name -> channel.RichTextContentCount 0, // 1: channel.FeedMetaData.content:type_name -> channel.ContentMetaData 43, // 2: channel.StBusiReportInfo.recomReport:type_name -> channel.StRecomReportInfo 74, // 3: channel.StChannelShareInfo.channelSign:type_name -> channel.StChannelSign 8, // 4: channel.StChannelShareInfo.sign:type_name -> channel.StChannelShareSign 75, // 5: channel.StClientInfo.clientMap:type_name -> channel.CommonEntry 65, // 6: channel.StComment.postUser:type_name -> channel.StUser 45, // 7: channel.StComment.vecReply:type_name -> channel.StReply 28, // 8: channel.StComment.likeInfo:type_name -> channel.StLike 75, // 9: channel.StComment.storeExtInfo:type_name -> channel.CommonEntry 47, // 10: channel.StComment.richContents:type_name -> channel.StRichText 75, // 11: channel.StDebugInfo.debugMap:type_name -> channel.CommonEntry 75, // 12: channel.StExifInfo.kvs:type_name -> channel.CommonEntry 31, // 13: channel.StExternalMedalWallInfo.medalInfos:type_name -> channel.StMedalInfo 47, // 14: channel.StFeed.title:type_name -> channel.StRichText 47, // 15: channel.StFeed.subtitle:type_name -> channel.StRichText 65, // 16: channel.StFeed.poster:type_name -> channel.StUser 69, // 17: channel.StFeed.videos:type_name -> channel.StVideo 47, // 18: channel.StFeed.contents:type_name -> channel.StRichText 76, // 19: channel.StFeed.emotionReaction:type_name -> EmojiReaction 11, // 20: channel.StFeed.vecComment:type_name -> channel.StComment 57, // 21: channel.StFeed.share:type_name -> channel.StShare 71, // 22: channel.StFeed.visitorInfo:type_name -> channel.StVisitor 25, // 23: channel.StFeed.images:type_name -> channel.StImage 37, // 24: channel.StFeed.poiInfo:type_name -> channel.StPoiInfoV2 61, // 25: channel.StFeed.tagInfos:type_name -> channel.StTagInfo 35, // 26: channel.StFeed.opinfo:type_name -> channel.StOpinfo 75, // 27: channel.StFeed.extInfo:type_name -> channel.CommonEntry 77, // 28: channel.StFeed.channelInfo:type_name -> channel.StChannelInfo 19, // 29: channel.StFeed.summary:type_name -> channel.StFeedSummary 42, // 30: channel.StFeed.recomInfo:type_name -> channel.StRecomInfo 1, // 31: channel.StFeed.meta:type_name -> channel.FeedMetaData 65, // 32: channel.StFeedAbstract.poster:type_name -> channel.StUser 25, // 33: channel.StFeedAbstract.pic:type_name -> channel.StImage 69, // 34: channel.StFeedAbstract.video:type_name -> channel.StVideo 25, // 35: channel.StFeedAbstract.images:type_name -> channel.StImage 18, // 36: channel.StFeedAbstract.countInfo:type_name -> channel.StFeedCount 21, // 37: channel.StFollowRecomInfo.followUsers:type_name -> channel.StFollowUser 25, // 38: channel.StGuidePublishBubble.backgroundImage:type_name -> channel.StImage 26, // 39: channel.StImage.vecImageUrl:type_name -> channel.StImageUrl 65, // 40: channel.StLightInteractInfo.user:type_name -> channel.StUser 44, // 41: channel.StLightInteractInfo.relation:type_name -> channel.StRelationInfo 65, // 42: channel.StLike.vecUser:type_name -> channel.StUser 65, // 43: channel.StLike.postUser:type_name -> channel.StUser 25, // 44: channel.StLiteBanner.icon:type_name -> channel.StImage 75, // 45: channel.StLiteBanner.extInfo:type_name -> channel.CommonEntry 59, // 46: channel.StMaterialDataNew.materialList:type_name -> channel.StSingleMaterial 16, // 47: channel.StNotice.psvFeed:type_name -> channel.StFeed 16, // 48: channel.StNotice.origineFeed:type_name -> channel.StFeed 33, // 49: channel.StNotice.pattonInfo:type_name -> channel.StNoticePattonInfo 36, // 50: channel.StNoticePattonInfo.plainTxt:type_name -> channel.StPlainTxtInfo 47, // 51: channel.StNoticeTxtInfo.content:type_name -> channel.StRichText 47, // 52: channel.StNoticeTxtInfo.contentOfReference:type_name -> channel.StRichText 34, // 53: channel.StPlainTxtInfo.txtInfo:type_name -> channel.StNoticeTxtInfo 3, // 54: channel.StPlainTxtInfo.operation:type_name -> channel.NoticeOperation 22, // 55: channel.StPoiInfoV2.gps:type_name -> channel.StGPSV2 65, // 56: channel.StPrePullCacheFeed.poster:type_name -> channel.StUser 65, // 57: channel.StRankingItem.user:type_name -> channel.StUser 44, // 58: channel.StRankingItem.relation:type_name -> channel.StRelationInfo 65, // 59: channel.StRecomForward.poster:type_name -> channel.StUser 60, // 60: channel.StRecomReportInfo.recomInfos:type_name -> channel.StSingleRecomReportInfo 65, // 61: channel.StReply.postUser:type_name -> channel.StUser 65, // 62: channel.StReply.targetUser:type_name -> channel.StUser 28, // 63: channel.StReply.likeInfo:type_name -> channel.StLike 75, // 64: channel.StReply.storeExtInfo:type_name -> channel.CommonEntry 47, // 65: channel.StReply.richContents:type_name -> channel.StRichText 52, // 66: channel.StRichText.contents:type_name -> channel.StRichTextContent 49, // 67: channel.StRichTextAtContent.guildInfo:type_name -> channel.GuildChannelBaseGuildInfo 50, // 68: channel.StRichTextAtContent.roleGroupId:type_name -> channel.GuildChannelBaseRoleGroupInfo 65, // 69: channel.StRichTextAtContent.user:type_name -> channel.StUser 77, // 70: channel.StRichTextChannelContent.channelInfo:type_name -> channel.StChannelInfo 54, // 71: channel.StRichTextContent.textContent:type_name -> channel.StRichTextTextContent 48, // 72: channel.StRichTextContent.atContent:type_name -> channel.StRichTextAtContent 55, // 73: channel.StRichTextContent.urlContent:type_name -> channel.StRichTextURLContent 53, // 74: channel.StRichTextContent.emojiContent:type_name -> channel.StRichTextEmojiContent 51, // 75: channel.StRichTextContent.channelContent:type_name -> channel.StRichTextChannelContent 65, // 76: channel.StShare.author:type_name -> channel.StUser 65, // 77: channel.StShare.poster:type_name -> channel.StUser 69, // 78: channel.StShare.videos:type_name -> channel.StVideo 58, // 79: channel.StShare.shareQzoneInfo:type_name -> channel.StShareQzoneInfo 25, // 80: channel.StShare.images:type_name -> channel.StImage 7, // 81: channel.StShare.channelShareInfo:type_name -> channel.StChannelShareInfo 75, // 82: channel.StShareQzoneInfo.entrys:type_name -> channel.CommonEntry 65, // 83: channel.StTagInfo.userList:type_name -> channel.StUser 17, // 84: channel.StTagInfo.feedList:type_name -> channel.StFeedAbstract 57, // 85: channel.StTagInfo.shareInfo:type_name -> channel.StShare 62, // 86: channel.StTagInfo.medal:type_name -> channel.StTagMedalInfo 63, // 87: channel.StTagInfo.optInfo:type_name -> channel.StTagOperateInfo 24, // 88: channel.StUser.icon:type_name -> channel.StIconInfo 62, // 89: channel.StUser.medal:type_name -> channel.StTagMedalInfo 66, // 90: channel.StUser.channelUserInfo:type_name -> channel.GuildChannelBaseChannelUserInfo 78, // 91: channel.GuildChannelBaseChannelUserInfo.clientIdentity:type_name -> channel.ClientIdentity 50, // 92: channel.GuildChannelBaseChannelUserInfo.roleGroups:type_name -> channel.GuildChannelBaseRoleGroupInfo 65, // 93: channel.StUserGroupInfo.userList:type_name -> channel.StUser 65, // 94: channel.StUserRecomInfo.user:type_name -> channel.StUser 17, // 95: channel.StUserRecomInfo.feedList:type_name -> channel.StFeedAbstract 70, // 96: channel.StVideo.vecVideoUrl:type_name -> channel.StVideoUrl 25, // 97: channel.StVideo.cover:type_name -> channel.StImage 73, // 98: channel.StWearingMedal.medalInfos:type_name -> channel.StWearingMedalInfo 99, // [99:99] is the sub-list for method output_type 99, // [99:99] is the sub-list for method input_type 99, // [99:99] is the sub-list for extension type_name 99, // [99:99] is the sub-list for extension extendee 0, // [0:99] is the sub-list for field type_name } func init() { file_pb_channel_GuildFeedCloudMeta_proto_init() } func file_pb_channel_GuildFeedCloudMeta_proto_init() { if File_pb_channel_GuildFeedCloudMeta_proto != nil { return } file_pb_channel_MsgResponsesSvr_proto_init() file_pb_channel_GuildChannelBase_proto_init() if !protoimpl.UnsafeEnabled { file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ContentMetaData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeedMetaData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FeedRedTouchTransInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NoticeOperation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RichTextContentCount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StAnimation); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StBusiReportInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StChannelShareInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StChannelShareSign); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StCircleRankItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StClientInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StComment); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StDebugInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StDittoFeed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StExifInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StExternalMedalWallInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StFeed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StFeedAbstract); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StFeedCount); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StFeedSummary); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StFollowRecomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StFollowUser); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StGPSV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StGuidePublishBubble); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StIconInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StImage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StImageUrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StLightInteractInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StLike); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StLiteBanner); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StMaterialDataNew); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StMedalInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StNotice); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StNoticePattonInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StNoticeTxtInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StOpinfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StPlainTxtInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StPoiInfoV2); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StPrePullCacheFeed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StProxyInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRankingItem); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRecomForward); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRecomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRecomReportInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRelationInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StReply); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StReportInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichText); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichTextAtContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuildChannelBaseGuildInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuildChannelBaseRoleGroupInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichTextChannelContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichTextContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichTextEmojiContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichTextTextContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StRichTextURLContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StSameTopicGuideInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StShare); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StShareQzoneInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StSingleMaterial); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StSingleRecomReportInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StTagInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StTagMedalInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StTagOperateInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StUnifiedTag); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StUser); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GuildChannelBaseChannelUserInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StUserGroupInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StUserRecomInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StVideo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StVideoUrl); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StVisitor); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StWearingMedal); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pb_channel_GuildFeedCloudMeta_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StWearingMedalInfo); 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_GuildFeedCloudMeta_proto_rawDesc, NumEnums: 0, NumMessages: 74, NumExtensions: 0, NumServices: 0, }, GoTypes: file_pb_channel_GuildFeedCloudMeta_proto_goTypes, DependencyIndexes: file_pb_channel_GuildFeedCloudMeta_proto_depIdxs, MessageInfos: file_pb_channel_GuildFeedCloudMeta_proto_msgTypes, }.Build() File_pb_channel_GuildFeedCloudMeta_proto = out.File file_pb_channel_GuildFeedCloudMeta_proto_rawDesc = nil file_pb_channel_GuildFeedCloudMeta_proto_goTypes = nil file_pb_channel_GuildFeedCloudMeta_proto_depIdxs = nil }