From 25871aea49811784854587d1632c8ad4c11817c6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 12 Dec 2022 19:15:31 +0800 Subject: [PATCH 1/2] reaction message add expiration --- internal/api/msg/extend_msg.go | 7 ++- internal/rpc/msg/extend_msg.go | 93 +++++++++++++--------------------- pkg/base_info/msg.go | 13 +++-- pkg/common/db/RedisModel.go | 6 +++ pkg/proto/msg/msg.proto | 34 +++++++++++-- 5 files changed, 83 insertions(+), 70 deletions(-) diff --git a/internal/api/msg/extend_msg.go b/internal/api/msg/extend_msg.go index d4e1daeb4..62282fca1 100644 --- a/internal/api/msg/extend_msg.go +++ b/internal/api/msg/extend_msg.go @@ -69,7 +69,7 @@ func GetMessageListReactionExtensions(c *gin.Context) { var ( req api.GetMessageListReactionExtensionsReq resp api.GetMessageListReactionExtensionsResp - reqPb rpc.OperateMessageListReactionExtensionsReq + reqPb rpc.GetMessageListReactionExtensionsReq ) if err := c.BindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) @@ -106,8 +106,7 @@ func GetMessageListReactionExtensions(c *gin.Context) { } resp.ErrCode = respPb.ErrCode resp.ErrMsg = respPb.ErrMsg - resp.Data.FailedList = respPb.FailedList - resp.Data.SuccessList = respPb.SuccessList + resp.Data = respPb.SingleMessageResult log.NewInfo(req.OperationID, utils.GetSelfFuncName(), resp) c.JSON(http.StatusOK, resp) } @@ -161,7 +160,7 @@ func DeleteMessageReactionExtensions(c *gin.Context) { var ( req api.DeleteMessageReactionExtensionsReq resp api.DeleteMessageReactionExtensionsResp - reqPb rpc.OperateMessageListReactionExtensionsReq + reqPb rpc.DeleteMessageListReactionExtensionsReq ) if err := c.BindJSON(&req); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) diff --git a/internal/rpc/msg/extend_msg.go b/internal/rpc/msg/extend_msg.go index ee8d8d93b..af4d042bc 100644 --- a/internal/rpc/msg/extend_msg.go +++ b/internal/rpc/msg/extend_msg.go @@ -95,7 +95,6 @@ func (rpc *rpcChat) SetMessageReactionExtensions(ctx context.Context, req *msg.S ExtendMessageUpdatedNotification(req.OperationID, req.OpUserID, req.SourceID, req.SessionType, req, &rResp, true) } else { ExtendMessageUpdatedNotification(req.OperationID, req.OpUserID, req.SourceID, req.SessionType, req, &rResp, false) - } log.Debug(req.OperationID, utils.GetSelfFuncName(), "rpc return is:", rResp.String()) return &rResp, nil @@ -110,61 +109,41 @@ func setKeyResultInfo(r *msg.SetMessageReactionExtensionsResp, errCode int32, er _ = db.DB.UnLockMessageTypeKey(clientMsgID, typeKey) } -func (rpc *rpcChat) GetMessageListReactionExtensions(ctx context.Context, req *msg.OperateMessageListReactionExtensionsReq) (resp *msg.OperateMessageListReactionExtensionsResp, err error) { - //for _, messageValue := range req.MessageReactionKeyList { - // isExists, err := db.DB.JudgeMessageReactionEXISTS(messageValue.ClientMsgID,req.SessionType) - // if err != nil { - // - // } - // var failedList []*msg.ExtendMsgResp - // var successList []*msg.ExtendMsgResp - // var oneExtendMsg msg.ExtendMsg - // oneExtendMsg.ClientMsgID = req.ClientMsgID - // oneFailedReactionExtensionList:=make(map[string]*msg.KeyValueResp) - // oneSuccessReactionExtensionList:=make(map[string]*msg.KeyValueResp) - // if !isExists { - // if !req.IsReact { - // oneExtendMsg.MsgFirstModifyTime = utils.GetCurrentTimestampByMill() - // //redis处理 - // for k, v := range req.ReactionExtensionList { - // //抢占分布式锁 - // err:=lockMessageTypeKey(req.ClientMsgID,k) - // if err != nil { - // setKeyResultInfo(oneFailedReactionExtensionList,100,err.Error(),req.ClientMsgID,k,v) - // continue - // } - // redisValue,err:=db.DB.GetMessageTypeKeyValue(req.ClientMsgID,req.SessionType,k) - // if err != nil&&err!=go_redis.Nil { - // setKeyResultInfo(oneFailedReactionExtensionList,200,err.Error(),req.ClientMsgID,k,v) - // continue - // } - // temp:=new(server_api_params.KeyValue) - // utils.JsonStringToStruct(redisValue,temp) - // if v.LatestUpdateTime != temp.LatestUpdateTime { - // setKeyResultInfo(oneFailedReactionExtensionList,300,"message have update",req.ClientMsgID,k,temp) - // continue - // }else{ - // v.LatestUpdateTime = utils.GetCurrentTimestampByMill() - // newerr:=db.DB.SetMessageTypeKeyValue(req.ClientMsgID,req.SessionType,k,utils.StructToJsonString(v)) - // if newerr != nil { - // setKeyResultInfo(oneFailedReactionExtensionList,201,newerr.Error(),req.ClientMsgID,k,temp) - // continue - // } - // setKeyResultInfo(oneSuccessReactionExtensionList,0,"",req.ClientMsgID,k,v) - // } - // - // } - // - // }else{ - // //mongo处理 - // } - // - // }else{ - // - // } - // return - //} - return +func (rpc *rpcChat) GetMessageListReactionExtensions(ctx context.Context, req *msg.GetMessageListReactionExtensionsReq) (resp *msg.GetMessageListReactionExtensionsResp, err error) { + var rResp msg.GetMessageListReactionExtensionsResp + for _, messageValue := range req.MessageReactionKeyList { + var oneMessage msg.SingleMessageExtensionResult + oneMessage.ClientMsgID = messageValue.ClientMsgID + + isExists, err := db.DB.JudgeMessageReactionEXISTS(messageValue.ClientMsgID, req.SessionType) + if err != nil { + rResp.ErrCode = 100 + rResp.ErrMsg = err.Error() + return &rResp, nil + } + if isExists { + redisValue, err := db.DB.GetOneMessageAllReactionList(messageValue.ClientMsgID, req.SessionType) + if err != nil { + oneMessage.ErrCode = 100 + oneMessage.ErrMsg = err.Error() + rResp.SingleMessageResult = append(rResp.SingleMessageResult, &oneMessage) + continue + } + keyMap := make(map[string]*server_api_params.KeyValue) + + for k, v := range redisValue { + temp := new(server_api_params.KeyValue) + utils.JsonStringToStruct(v, temp) + keyMap[k] = temp + } + oneMessage.ReactionExtensionList = keyMap + + } else { + + } + rResp.SingleMessageResult = append(rResp.SingleMessageResult, &oneMessage) + } + return &rResp, nil } @@ -172,7 +151,7 @@ func (rpc *rpcChat) AddMessageReactionExtensions(ctx context.Context, req *msg.M return } -func (rpc *rpcChat) DeleteMessageReactionExtensions(ctx context.Context, req *msg.OperateMessageListReactionExtensionsReq) (resp *msg.OperateMessageListReactionExtensionsResp, err error) { +func (rpc *rpcChat) DeleteMessageReactionExtensions(ctx context.Context, req *msg.DeleteMessageListReactionExtensionsReq) (resp *msg.DeleteMessageListReactionExtensionsResp, err error) { return } func lockMessageTypeKey(clientMsgID, typeKey string) (err error) { diff --git a/pkg/base_info/msg.go b/pkg/base_info/msg.go index bf02d311f..d71b4b5be 100644 --- a/pkg/base_info/msg.go +++ b/pkg/base_info/msg.go @@ -76,10 +76,10 @@ type ModifyMessageReactionExtensionsResp struct { } type OperateMessageListReactionExtensionsReq struct { - OperationID string `json:"operationID" binding:"required"` - SourceID string `json:"sourceID" binding:"required"` - SessionType string `json:"sessionType" binding:"required"` - MessageReactionKeyList []*msg.OperateMessageListReactionExtensionsReq_MessageReactionKey `json:"messageReactionKeyList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + SourceID string `json:"sourceID" binding:"required"` + SessionType string `json:"sessionType" binding:"required"` + MessageReactionKeyList []*msg.GetMessageListReactionExtensionsReq_MessageReactionKey `json:"messageReactionKeyList" binding:"required"` } type OperateMessageListReactionExtensionsResp struct { @@ -96,7 +96,10 @@ type SetMessageReactionExtensionsCallbackResp ModifyMessageReactionExtensionsRes type GetMessageListReactionExtensionsReq OperateMessageListReactionExtensionsReq -type GetMessageListReactionExtensionsResp OperateMessageListReactionExtensionsResp +type GetMessageListReactionExtensionsResp struct { + CommResp + Data []*msg.SingleMessageExtensionResult `json:"data"` +} type AddMessageReactionExtensionsReq ModifyMessageReactionExtensionsReq diff --git a/pkg/common/db/RedisModel.go b/pkg/common/db/RedisModel.go index 6a2286b15..b9692cf1d 100644 --- a/pkg/common/db/RedisModel.go +++ b/pkg/common/db/RedisModel.go @@ -447,6 +447,12 @@ func (d *DataBases) JudgeMessageReactionEXISTS(clientMsgID string, sessionType i return false, err } } + +func (d *DataBases) GetOneMessageAllReactionList(clientMsgID string, sessionType int32) (map[string]string, error) { + key := getMessageReactionExPrefix(clientMsgID, sessionType) + return d.RDB.HGetAll(context.Background(), key).Result() + +} func (d *DataBases) SetMessageReactionExpire(clientMsgID string, sessionType int32, expiration time.Duration) (bool, error) { key := getMessageReactionExPrefix(clientMsgID, sessionType) return d.RDB.Expire(context.Background(), key, expiration).Result() diff --git a/pkg/proto/msg/msg.proto b/pkg/proto/msg/msg.proto index c02824c86..87fac4775 100644 --- a/pkg/proto/msg/msg.proto +++ b/pkg/proto/msg/msg.proto @@ -189,6 +189,32 @@ message SetMessageReactionExtensionsResp { repeated KeyValueResp result = 6; } + +message GetMessageListReactionExtensionsReq { + string operationID = 1; + string opUserID = 2; + string sourceID = 3; + int32 sessionType = 4; + message MessageReactionKey { + string clientMsgID = 1; + int64 msgFirstModifyTime = 2; + } + repeated MessageReactionKey messageReactionKeyList = 5; +} +message GetMessageListReactionExtensionsResp{ + int32 errCode = 1; + string errMsg = 2; + repeated SingleMessageExtensionResult singleMessageResult =3; + +} +message SingleMessageExtensionResult { + int32 errCode = 1; + string errMsg = 2; + map reactionExtensionList = 3; + string clientMsgID = 4; +} + + message ModifyMessageReactionExtensionsResp { int32 errCode = 1; string errMsg = 2; @@ -196,7 +222,7 @@ message ModifyMessageReactionExtensionsResp { repeated ExtendMsgResp failedList = 4; } -message OperateMessageListReactionExtensionsReq { +message DeleteMessageListReactionExtensionsReq { string operationID = 1; string opUserID = 2; string sourceID = 3; @@ -209,7 +235,7 @@ message OperateMessageListReactionExtensionsReq { repeated MessageReactionKey messageReactionKeyList = 5; } -message OperateMessageListReactionExtensionsResp { +message DeleteMessageListReactionExtensionsResp { int32 errCode = 1; string errMsg = 2; repeated ExtendMsgResp successList = 3; @@ -251,7 +277,7 @@ service msg { // modify msg rpc SetMessageReactionExtensions(SetMessageReactionExtensionsReq) returns(SetMessageReactionExtensionsResp); - rpc GetMessageListReactionExtensions(OperateMessageListReactionExtensionsReq) returns(OperateMessageListReactionExtensionsResp); + rpc GetMessageListReactionExtensions(GetMessageListReactionExtensionsReq) returns(GetMessageListReactionExtensionsResp); rpc AddMessageReactionExtensions(ModifyMessageReactionExtensionsReq) returns(ModifyMessageReactionExtensionsResp); - rpc DeleteMessageReactionExtensions(OperateMessageListReactionExtensionsReq) returns(OperateMessageListReactionExtensionsResp); + rpc DeleteMessageReactionExtensions(DeleteMessageListReactionExtensionsReq) returns(DeleteMessageListReactionExtensionsResp); } From 21dcb55c82c3c5e412ce3c2fbe0ab18cbb77584f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 12 Dec 2022 19:15:42 +0800 Subject: [PATCH 2/2] reaction message add expiration --- pkg/proto/msg/msg.pb.go | 683 +++++++++++++++++++++++++++------------- 1 file changed, 465 insertions(+), 218 deletions(-) diff --git a/pkg/proto/msg/msg.pb.go b/pkg/proto/msg/msg.pb.go index 89d14cb63..1aa56b4ac 100644 --- a/pkg/proto/msg/msg.pb.go +++ b/pkg/proto/msg/msg.pb.go @@ -38,7 +38,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{0} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -91,7 +91,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{1} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -138,7 +138,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{2} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -193,7 +193,7 @@ func (m *MsgDataToMongoByMQ) Reset() { *m = MsgDataToMongoByMQ{} } func (m *MsgDataToMongoByMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMongoByMQ) ProtoMessage() {} func (*MsgDataToMongoByMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{3} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{3} } func (m *MsgDataToMongoByMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMongoByMQ.Unmarshal(m, b) @@ -273,7 +273,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{4} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{4} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -321,7 +321,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{5} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{5} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -382,7 +382,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{6} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{6} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -438,7 +438,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{7} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{7} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -506,7 +506,7 @@ func (m *ClearMsgReq) Reset() { *m = ClearMsgReq{} } func (m *ClearMsgReq) String() string { return proto.CompactTextString(m) } func (*ClearMsgReq) ProtoMessage() {} func (*ClearMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{8} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{8} } func (m *ClearMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClearMsgReq.Unmarshal(m, b) @@ -559,7 +559,7 @@ func (m *ClearMsgResp) Reset() { *m = ClearMsgResp{} } func (m *ClearMsgResp) String() string { return proto.CompactTextString(m) } func (*ClearMsgResp) ProtoMessage() {} func (*ClearMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{9} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{9} } func (m *ClearMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ClearMsgResp.Unmarshal(m, b) @@ -608,7 +608,7 @@ func (m *SetMsgMinSeqReq) Reset() { *m = SetMsgMinSeqReq{} } func (m *SetMsgMinSeqReq) String() string { return proto.CompactTextString(m) } func (*SetMsgMinSeqReq) ProtoMessage() {} func (*SetMsgMinSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{10} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{10} } func (m *SetMsgMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMsgMinSeqReq.Unmarshal(m, b) @@ -675,7 +675,7 @@ func (m *SetMsgMinSeqResp) Reset() { *m = SetMsgMinSeqResp{} } func (m *SetMsgMinSeqResp) String() string { return proto.CompactTextString(m) } func (*SetMsgMinSeqResp) ProtoMessage() {} func (*SetMsgMinSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{11} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{11} } func (m *SetMsgMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMsgMinSeqResp.Unmarshal(m, b) @@ -721,7 +721,7 @@ func (m *SetSendMsgStatusReq) Reset() { *m = SetSendMsgStatusReq{} } func (m *SetSendMsgStatusReq) String() string { return proto.CompactTextString(m) } func (*SetSendMsgStatusReq) ProtoMessage() {} func (*SetSendMsgStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{12} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{12} } func (m *SetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetSendMsgStatusReq.Unmarshal(m, b) @@ -767,7 +767,7 @@ func (m *SetSendMsgStatusResp) Reset() { *m = SetSendMsgStatusResp{} } func (m *SetSendMsgStatusResp) String() string { return proto.CompactTextString(m) } func (*SetSendMsgStatusResp) ProtoMessage() {} func (*SetSendMsgStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{13} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{13} } func (m *SetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetSendMsgStatusResp.Unmarshal(m, b) @@ -812,7 +812,7 @@ func (m *GetSendMsgStatusReq) Reset() { *m = GetSendMsgStatusReq{} } func (m *GetSendMsgStatusReq) String() string { return proto.CompactTextString(m) } func (*GetSendMsgStatusReq) ProtoMessage() {} func (*GetSendMsgStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{14} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{14} } func (m *GetSendMsgStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSendMsgStatusReq.Unmarshal(m, b) @@ -852,7 +852,7 @@ func (m *GetSendMsgStatusResp) Reset() { *m = GetSendMsgStatusResp{} } func (m *GetSendMsgStatusResp) String() string { return proto.CompactTextString(m) } func (*GetSendMsgStatusResp) ProtoMessage() {} func (*GetSendMsgStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{15} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{15} } func (m *GetSendMsgStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSendMsgStatusResp.Unmarshal(m, b) @@ -907,7 +907,7 @@ func (m *DelSuperGroupMsgReq) Reset() { *m = DelSuperGroupMsgReq{} } func (m *DelSuperGroupMsgReq) String() string { return proto.CompactTextString(m) } func (*DelSuperGroupMsgReq) ProtoMessage() {} func (*DelSuperGroupMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{16} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{16} } func (m *DelSuperGroupMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelSuperGroupMsgReq.Unmarshal(m, b) @@ -967,7 +967,7 @@ func (m *DelSuperGroupMsgResp) Reset() { *m = DelSuperGroupMsgResp{} } func (m *DelSuperGroupMsgResp) String() string { return proto.CompactTextString(m) } func (*DelSuperGroupMsgResp) ProtoMessage() {} func (*DelSuperGroupMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{17} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{17} } func (m *DelSuperGroupMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DelSuperGroupMsgResp.Unmarshal(m, b) @@ -1014,7 +1014,7 @@ func (m *GetSuperGroupMsgReq) Reset() { *m = GetSuperGroupMsgReq{} } func (m *GetSuperGroupMsgReq) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupMsgReq) ProtoMessage() {} func (*GetSuperGroupMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{18} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{18} } func (m *GetSuperGroupMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupMsgReq.Unmarshal(m, b) @@ -1068,7 +1068,7 @@ func (m *GetSuperGroupMsgResp) Reset() { *m = GetSuperGroupMsgResp{} } func (m *GetSuperGroupMsgResp) String() string { return proto.CompactTextString(m) } func (*GetSuperGroupMsgResp) ProtoMessage() {} func (*GetSuperGroupMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{19} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{19} } func (m *GetSuperGroupMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSuperGroupMsgResp.Unmarshal(m, b) @@ -1121,7 +1121,7 @@ func (m *GetWriteDiffMsgReq) Reset() { *m = GetWriteDiffMsgReq{} } func (m *GetWriteDiffMsgReq) String() string { return proto.CompactTextString(m) } func (*GetWriteDiffMsgReq) ProtoMessage() {} func (*GetWriteDiffMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{20} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{20} } func (m *GetWriteDiffMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetWriteDiffMsgReq.Unmarshal(m, b) @@ -1168,7 +1168,7 @@ func (m *GetWriteDiffMsgResp) Reset() { *m = GetWriteDiffMsgResp{} } func (m *GetWriteDiffMsgResp) String() string { return proto.CompactTextString(m) } func (*GetWriteDiffMsgResp) ProtoMessage() {} func (*GetWriteDiffMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{21} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{21} } func (m *GetWriteDiffMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetWriteDiffMsgResp.Unmarshal(m, b) @@ -1230,7 +1230,7 @@ func (m *ModifyMessageReactionExtensionsReq) Reset() { *m = ModifyMessag func (m *ModifyMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (*ModifyMessageReactionExtensionsReq) ProtoMessage() {} func (*ModifyMessageReactionExtensionsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{22} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{22} } func (m *ModifyMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyMessageReactionExtensionsReq.Unmarshal(m, b) @@ -1348,7 +1348,7 @@ func (m *SetMessageReactionExtensionsReq) Reset() { *m = SetMessageReact func (m *SetMessageReactionExtensionsReq) String() string { return proto.CompactTextString(m) } func (*SetMessageReactionExtensionsReq) ProtoMessage() {} func (*SetMessageReactionExtensionsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{23} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{23} } func (m *SetMessageReactionExtensionsReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMessageReactionExtensionsReq.Unmarshal(m, b) @@ -1461,7 +1461,7 @@ func (m *SetMessageReactionExtensionsResp) Reset() { *m = SetMessageReac func (m *SetMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (*SetMessageReactionExtensionsResp) ProtoMessage() {} func (*SetMessageReactionExtensionsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{24} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{24} } func (m *SetMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetMessageReactionExtensionsResp.Unmarshal(m, b) @@ -1523,6 +1523,242 @@ func (m *SetMessageReactionExtensionsResp) GetResult() []*KeyValueResp { return nil } +type GetMessageListReactionExtensionsReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` + SourceID string `protobuf:"bytes,3,opt,name=sourceID" json:"sourceID,omitempty"` + SessionType int32 `protobuf:"varint,4,opt,name=sessionType" json:"sessionType,omitempty"` + MessageReactionKeyList []*GetMessageListReactionExtensionsReq_MessageReactionKey `protobuf:"bytes,5,rep,name=messageReactionKeyList" json:"messageReactionKeyList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetMessageListReactionExtensionsReq) Reset() { *m = GetMessageListReactionExtensionsReq{} } +func (m *GetMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) } +func (*GetMessageListReactionExtensionsReq) ProtoMessage() {} +func (*GetMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{25} +} +func (m *GetMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMessageListReactionExtensionsReq.Unmarshal(m, b) +} +func (m *GetMessageListReactionExtensionsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMessageListReactionExtensionsReq.Marshal(b, m, deterministic) +} +func (dst *GetMessageListReactionExtensionsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMessageListReactionExtensionsReq.Merge(dst, src) +} +func (m *GetMessageListReactionExtensionsReq) XXX_Size() int { + return xxx_messageInfo_GetMessageListReactionExtensionsReq.Size(m) +} +func (m *GetMessageListReactionExtensionsReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMessageListReactionExtensionsReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMessageListReactionExtensionsReq proto.InternalMessageInfo + +func (m *GetMessageListReactionExtensionsReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *GetMessageListReactionExtensionsReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *GetMessageListReactionExtensionsReq) GetSourceID() string { + if m != nil { + return m.SourceID + } + return "" +} + +func (m *GetMessageListReactionExtensionsReq) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +func (m *GetMessageListReactionExtensionsReq) GetMessageReactionKeyList() []*GetMessageListReactionExtensionsReq_MessageReactionKey { + if m != nil { + return m.MessageReactionKeyList + } + return nil +} + +type GetMessageListReactionExtensionsReq_MessageReactionKey struct { + ClientMsgID string `protobuf:"bytes,1,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + MsgFirstModifyTime int64 `protobuf:"varint,2,opt,name=msgFirstModifyTime" json:"msgFirstModifyTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) Reset() { + *m = GetMessageListReactionExtensionsReq_MessageReactionKey{} +} +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) String() string { + return proto.CompactTextString(m) +} +func (*GetMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {} +func (*GetMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{25, 0} +} +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b) +} +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Marshal(b, m, deterministic) +} +func (dst *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Merge(dst, src) +} +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_Size() int { + return xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.Size(m) +} +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) XXX_DiscardUnknown() { + xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMessageListReactionExtensionsReq_MessageReactionKey proto.InternalMessageInfo + +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + +func (m *GetMessageListReactionExtensionsReq_MessageReactionKey) GetMsgFirstModifyTime() int64 { + if m != nil { + return m.MsgFirstModifyTime + } + return 0 +} + +type GetMessageListReactionExtensionsResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + SingleMessageResult []*SingleMessageExtensionResult `protobuf:"bytes,3,rep,name=singleMessageResult" json:"singleMessageResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetMessageListReactionExtensionsResp) Reset() { *m = GetMessageListReactionExtensionsResp{} } +func (m *GetMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) } +func (*GetMessageListReactionExtensionsResp) ProtoMessage() {} +func (*GetMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{26} +} +func (m *GetMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMessageListReactionExtensionsResp.Unmarshal(m, b) +} +func (m *GetMessageListReactionExtensionsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMessageListReactionExtensionsResp.Marshal(b, m, deterministic) +} +func (dst *GetMessageListReactionExtensionsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMessageListReactionExtensionsResp.Merge(dst, src) +} +func (m *GetMessageListReactionExtensionsResp) XXX_Size() int { + return xxx_messageInfo_GetMessageListReactionExtensionsResp.Size(m) +} +func (m *GetMessageListReactionExtensionsResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMessageListReactionExtensionsResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMessageListReactionExtensionsResp proto.InternalMessageInfo + +func (m *GetMessageListReactionExtensionsResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetMessageListReactionExtensionsResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *GetMessageListReactionExtensionsResp) GetSingleMessageResult() []*SingleMessageExtensionResult { + if m != nil { + return m.SingleMessageResult + } + return nil +} + +type SingleMessageExtensionResult struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + ReactionExtensionList map[string]*sdk_ws.KeyValue `protobuf:"bytes,3,rep,name=reactionExtensionList" json:"reactionExtensionList,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SingleMessageExtensionResult) Reset() { *m = SingleMessageExtensionResult{} } +func (m *SingleMessageExtensionResult) String() string { return proto.CompactTextString(m) } +func (*SingleMessageExtensionResult) ProtoMessage() {} +func (*SingleMessageExtensionResult) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{27} +} +func (m *SingleMessageExtensionResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SingleMessageExtensionResult.Unmarshal(m, b) +} +func (m *SingleMessageExtensionResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SingleMessageExtensionResult.Marshal(b, m, deterministic) +} +func (dst *SingleMessageExtensionResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_SingleMessageExtensionResult.Merge(dst, src) +} +func (m *SingleMessageExtensionResult) XXX_Size() int { + return xxx_messageInfo_SingleMessageExtensionResult.Size(m) +} +func (m *SingleMessageExtensionResult) XXX_DiscardUnknown() { + xxx_messageInfo_SingleMessageExtensionResult.DiscardUnknown(m) +} + +var xxx_messageInfo_SingleMessageExtensionResult proto.InternalMessageInfo + +func (m *SingleMessageExtensionResult) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *SingleMessageExtensionResult) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *SingleMessageExtensionResult) GetReactionExtensionList() map[string]*sdk_ws.KeyValue { + if m != nil { + return m.ReactionExtensionList + } + return nil +} + +func (m *SingleMessageExtensionResult) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + type ModifyMessageReactionExtensionsResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` @@ -1537,7 +1773,7 @@ func (m *ModifyMessageReactionExtensionsResp) Reset() { *m = ModifyMessa func (m *ModifyMessageReactionExtensionsResp) String() string { return proto.CompactTextString(m) } func (*ModifyMessageReactionExtensionsResp) ProtoMessage() {} func (*ModifyMessageReactionExtensionsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{25} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{28} } func (m *ModifyMessageReactionExtensionsResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ModifyMessageReactionExtensionsResp.Unmarshal(m, b) @@ -1585,79 +1821,79 @@ func (m *ModifyMessageReactionExtensionsResp) GetFailedList() []*ExtendMsgResp { return nil } -type OperateMessageListReactionExtensionsReq struct { - OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` - SourceID string `protobuf:"bytes,3,opt,name=sourceID" json:"sourceID,omitempty"` - SessionType int32 `protobuf:"varint,4,opt,name=sessionType" json:"sessionType,omitempty"` - MessageReactionKeyList []*OperateMessageListReactionExtensionsReq_MessageReactionKey `protobuf:"bytes,5,rep,name=messageReactionKeyList" json:"messageReactionKeyList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type DeleteMessageListReactionExtensionsReq struct { + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=opUserID" json:"opUserID,omitempty"` + SourceID string `protobuf:"bytes,3,opt,name=sourceID" json:"sourceID,omitempty"` + SessionType int32 `protobuf:"varint,4,opt,name=sessionType" json:"sessionType,omitempty"` + MessageReactionKeyList []*DeleteMessageListReactionExtensionsReq_MessageReactionKey `protobuf:"bytes,5,rep,name=messageReactionKeyList" json:"messageReactionKeyList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *OperateMessageListReactionExtensionsReq) Reset() { - *m = OperateMessageListReactionExtensionsReq{} +func (m *DeleteMessageListReactionExtensionsReq) Reset() { + *m = DeleteMessageListReactionExtensionsReq{} } -func (m *OperateMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) } -func (*OperateMessageListReactionExtensionsReq) ProtoMessage() {} -func (*OperateMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{26} +func (m *DeleteMessageListReactionExtensionsReq) String() string { return proto.CompactTextString(m) } +func (*DeleteMessageListReactionExtensionsReq) ProtoMessage() {} +func (*DeleteMessageListReactionExtensionsReq) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{29} } -func (m *OperateMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateMessageListReactionExtensionsReq.Unmarshal(m, b) +func (m *DeleteMessageListReactionExtensionsReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Unmarshal(m, b) } -func (m *OperateMessageListReactionExtensionsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateMessageListReactionExtensionsReq.Marshal(b, m, deterministic) +func (m *DeleteMessageListReactionExtensionsReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Marshal(b, m, deterministic) } -func (dst *OperateMessageListReactionExtensionsReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateMessageListReactionExtensionsReq.Merge(dst, src) +func (dst *DeleteMessageListReactionExtensionsReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Merge(dst, src) } -func (m *OperateMessageListReactionExtensionsReq) XXX_Size() int { - return xxx_messageInfo_OperateMessageListReactionExtensionsReq.Size(m) +func (m *DeleteMessageListReactionExtensionsReq) XXX_Size() int { + return xxx_messageInfo_DeleteMessageListReactionExtensionsReq.Size(m) } -func (m *OperateMessageListReactionExtensionsReq) XXX_DiscardUnknown() { - xxx_messageInfo_OperateMessageListReactionExtensionsReq.DiscardUnknown(m) +func (m *DeleteMessageListReactionExtensionsReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteMessageListReactionExtensionsReq.DiscardUnknown(m) } -var xxx_messageInfo_OperateMessageListReactionExtensionsReq proto.InternalMessageInfo +var xxx_messageInfo_DeleteMessageListReactionExtensionsReq proto.InternalMessageInfo -func (m *OperateMessageListReactionExtensionsReq) GetOperationID() string { +func (m *DeleteMessageListReactionExtensionsReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -func (m *OperateMessageListReactionExtensionsReq) GetOpUserID() string { +func (m *DeleteMessageListReactionExtensionsReq) GetOpUserID() string { if m != nil { return m.OpUserID } return "" } -func (m *OperateMessageListReactionExtensionsReq) GetSourceID() string { +func (m *DeleteMessageListReactionExtensionsReq) GetSourceID() string { if m != nil { return m.SourceID } return "" } -func (m *OperateMessageListReactionExtensionsReq) GetSessionType() int32 { +func (m *DeleteMessageListReactionExtensionsReq) GetSessionType() int32 { if m != nil { return m.SessionType } return 0 } -func (m *OperateMessageListReactionExtensionsReq) GetMessageReactionKeyList() []*OperateMessageListReactionExtensionsReq_MessageReactionKey { +func (m *DeleteMessageListReactionExtensionsReq) GetMessageReactionKeyList() []*DeleteMessageListReactionExtensionsReq_MessageReactionKey { if m != nil { return m.MessageReactionKeyList } return nil } -type OperateMessageListReactionExtensionsReq_MessageReactionKey struct { +type DeleteMessageListReactionExtensionsReq_MessageReactionKey struct { ClientMsgID string `protobuf:"bytes,1,opt,name=clientMsgID" json:"clientMsgID,omitempty"` MsgFirstModifyTime int64 `protobuf:"varint,2,opt,name=msgFirstModifyTime" json:"msgFirstModifyTime,omitempty"` ReactionExtensionList []*sdk_ws.KeyValue `protobuf:"bytes,3,rep,name=reactionExtensionList" json:"reactionExtensionList,omitempty"` @@ -1666,56 +1902,56 @@ type OperateMessageListReactionExtensionsReq_MessageReactionKey struct { XXX_sizecache int32 `json:"-"` } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) Reset() { - *m = OperateMessageListReactionExtensionsReq_MessageReactionKey{} +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) Reset() { + *m = DeleteMessageListReactionExtensionsReq_MessageReactionKey{} } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) String() string { +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) String() string { return proto.CompactTextString(m) } -func (*OperateMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {} -func (*OperateMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{26, 0} +func (*DeleteMessageListReactionExtensionsReq_MessageReactionKey) ProtoMessage() {} +func (*DeleteMessageListReactionExtensionsReq_MessageReactionKey) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{29, 0} } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b) +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteMessageListReactionExtensionsReq_MessageReactionKey.Unmarshal(m, b) } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey.Marshal(b, m, deterministic) +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteMessageListReactionExtensionsReq_MessageReactionKey.Marshal(b, m, deterministic) } -func (dst *OperateMessageListReactionExtensionsReq_MessageReactionKey) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey.Merge(dst, src) +func (dst *DeleteMessageListReactionExtensionsReq_MessageReactionKey) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteMessageListReactionExtensionsReq_MessageReactionKey.Merge(dst, src) } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) XXX_Size() int { - return xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey.Size(m) +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) XXX_Size() int { + return xxx_messageInfo_DeleteMessageListReactionExtensionsReq_MessageReactionKey.Size(m) } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) XXX_DiscardUnknown() { - xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey.DiscardUnknown(m) +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteMessageListReactionExtensionsReq_MessageReactionKey.DiscardUnknown(m) } -var xxx_messageInfo_OperateMessageListReactionExtensionsReq_MessageReactionKey proto.InternalMessageInfo +var xxx_messageInfo_DeleteMessageListReactionExtensionsReq_MessageReactionKey proto.InternalMessageInfo -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) GetClientMsgID() string { +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) GetClientMsgID() string { if m != nil { return m.ClientMsgID } return "" } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) GetMsgFirstModifyTime() int64 { +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) GetMsgFirstModifyTime() int64 { if m != nil { return m.MsgFirstModifyTime } return 0 } -func (m *OperateMessageListReactionExtensionsReq_MessageReactionKey) GetReactionExtensionList() []*sdk_ws.KeyValue { +func (m *DeleteMessageListReactionExtensionsReq_MessageReactionKey) GetReactionExtensionList() []*sdk_ws.KeyValue { if m != nil { return m.ReactionExtensionList } return nil } -type OperateMessageListReactionExtensionsResp struct { +type DeleteMessageListReactionExtensionsResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` SuccessList []*ExtendMsgResp `protobuf:"bytes,3,rep,name=successList" json:"successList,omitempty"` @@ -1725,54 +1961,54 @@ type OperateMessageListReactionExtensionsResp struct { XXX_sizecache int32 `json:"-"` } -func (m *OperateMessageListReactionExtensionsResp) Reset() { - *m = OperateMessageListReactionExtensionsResp{} +func (m *DeleteMessageListReactionExtensionsResp) Reset() { + *m = DeleteMessageListReactionExtensionsResp{} } -func (m *OperateMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) } -func (*OperateMessageListReactionExtensionsResp) ProtoMessage() {} -func (*OperateMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{27} +func (m *DeleteMessageListReactionExtensionsResp) String() string { return proto.CompactTextString(m) } +func (*DeleteMessageListReactionExtensionsResp) ProtoMessage() {} +func (*DeleteMessageListReactionExtensionsResp) Descriptor() ([]byte, []int) { + return fileDescriptor_msg_32af573ca8e8e2bd, []int{30} } -func (m *OperateMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OperateMessageListReactionExtensionsResp.Unmarshal(m, b) +func (m *DeleteMessageListReactionExtensionsResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Unmarshal(m, b) } -func (m *OperateMessageListReactionExtensionsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OperateMessageListReactionExtensionsResp.Marshal(b, m, deterministic) +func (m *DeleteMessageListReactionExtensionsResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Marshal(b, m, deterministic) } -func (dst *OperateMessageListReactionExtensionsResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_OperateMessageListReactionExtensionsResp.Merge(dst, src) +func (dst *DeleteMessageListReactionExtensionsResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Merge(dst, src) } -func (m *OperateMessageListReactionExtensionsResp) XXX_Size() int { - return xxx_messageInfo_OperateMessageListReactionExtensionsResp.Size(m) +func (m *DeleteMessageListReactionExtensionsResp) XXX_Size() int { + return xxx_messageInfo_DeleteMessageListReactionExtensionsResp.Size(m) } -func (m *OperateMessageListReactionExtensionsResp) XXX_DiscardUnknown() { - xxx_messageInfo_OperateMessageListReactionExtensionsResp.DiscardUnknown(m) +func (m *DeleteMessageListReactionExtensionsResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteMessageListReactionExtensionsResp.DiscardUnknown(m) } -var xxx_messageInfo_OperateMessageListReactionExtensionsResp proto.InternalMessageInfo +var xxx_messageInfo_DeleteMessageListReactionExtensionsResp proto.InternalMessageInfo -func (m *OperateMessageListReactionExtensionsResp) GetErrCode() int32 { +func (m *DeleteMessageListReactionExtensionsResp) GetErrCode() int32 { if m != nil { return m.ErrCode } return 0 } -func (m *OperateMessageListReactionExtensionsResp) GetErrMsg() string { +func (m *DeleteMessageListReactionExtensionsResp) GetErrMsg() string { if m != nil { return m.ErrMsg } return "" } -func (m *OperateMessageListReactionExtensionsResp) GetSuccessList() []*ExtendMsgResp { +func (m *DeleteMessageListReactionExtensionsResp) GetSuccessList() []*ExtendMsgResp { if m != nil { return m.SuccessList } return nil } -func (m *OperateMessageListReactionExtensionsResp) GetFailedList() []*ExtendMsgResp { +func (m *DeleteMessageListReactionExtensionsResp) GetFailedList() []*ExtendMsgResp { if m != nil { return m.FailedList } @@ -1792,7 +2028,7 @@ func (m *ExtendMsgResp) Reset() { *m = ExtendMsgResp{} } func (m *ExtendMsgResp) String() string { return proto.CompactTextString(m) } func (*ExtendMsgResp) ProtoMessage() {} func (*ExtendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{28} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{31} } func (m *ExtendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExtendMsgResp.Unmarshal(m, b) @@ -1848,7 +2084,7 @@ func (m *ExtendMsg) Reset() { *m = ExtendMsg{} } func (m *ExtendMsg) String() string { return proto.CompactTextString(m) } func (*ExtendMsg) ProtoMessage() {} func (*ExtendMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{29} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{32} } func (m *ExtendMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExtendMsg.Unmarshal(m, b) @@ -1916,7 +2152,7 @@ func (m *KeyValueResp) Reset() { *m = KeyValueResp{} } func (m *KeyValueResp) String() string { return proto.CompactTextString(m) } func (*KeyValueResp) ProtoMessage() {} func (*KeyValueResp) Descriptor() ([]byte, []int) { - return fileDescriptor_msg_489179134d252ef4, []int{30} + return fileDescriptor_msg_32af573ca8e8e2bd, []int{33} } func (m *KeyValueResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KeyValueResp.Unmarshal(m, b) @@ -1985,10 +2221,15 @@ func init() { proto.RegisterType((*SetMessageReactionExtensionsReq)(nil), "msg.SetMessageReactionExtensionsReq") proto.RegisterMapType((map[string]*sdk_ws.KeyValue)(nil), "msg.SetMessageReactionExtensionsReq.ReactionExtensionListEntry") proto.RegisterType((*SetMessageReactionExtensionsResp)(nil), "msg.SetMessageReactionExtensionsResp") + proto.RegisterType((*GetMessageListReactionExtensionsReq)(nil), "msg.GetMessageListReactionExtensionsReq") + proto.RegisterType((*GetMessageListReactionExtensionsReq_MessageReactionKey)(nil), "msg.GetMessageListReactionExtensionsReq.MessageReactionKey") + proto.RegisterType((*GetMessageListReactionExtensionsResp)(nil), "msg.GetMessageListReactionExtensionsResp") + proto.RegisterType((*SingleMessageExtensionResult)(nil), "msg.SingleMessageExtensionResult") + proto.RegisterMapType((map[string]*sdk_ws.KeyValue)(nil), "msg.SingleMessageExtensionResult.ReactionExtensionListEntry") proto.RegisterType((*ModifyMessageReactionExtensionsResp)(nil), "msg.ModifyMessageReactionExtensionsResp") - proto.RegisterType((*OperateMessageListReactionExtensionsReq)(nil), "msg.OperateMessageListReactionExtensionsReq") - proto.RegisterType((*OperateMessageListReactionExtensionsReq_MessageReactionKey)(nil), "msg.OperateMessageListReactionExtensionsReq.MessageReactionKey") - proto.RegisterType((*OperateMessageListReactionExtensionsResp)(nil), "msg.OperateMessageListReactionExtensionsResp") + proto.RegisterType((*DeleteMessageListReactionExtensionsReq)(nil), "msg.DeleteMessageListReactionExtensionsReq") + proto.RegisterType((*DeleteMessageListReactionExtensionsReq_MessageReactionKey)(nil), "msg.DeleteMessageListReactionExtensionsReq.MessageReactionKey") + proto.RegisterType((*DeleteMessageListReactionExtensionsResp)(nil), "msg.DeleteMessageListReactionExtensionsResp") proto.RegisterType((*ExtendMsgResp)(nil), "msg.ExtendMsgResp") proto.RegisterType((*ExtendMsg)(nil), "msg.ExtendMsg") proto.RegisterMapType((map[string]*KeyValueResp)(nil), "msg.ExtendMsg.ReactionExtensionListEntry") @@ -2019,9 +2260,9 @@ type MsgClient interface { GetWriteDiffMsg(ctx context.Context, in *GetWriteDiffMsgReq, opts ...grpc.CallOption) (*GetWriteDiffMsgResp, error) // modify msg SetMessageReactionExtensions(ctx context.Context, in *SetMessageReactionExtensionsReq, opts ...grpc.CallOption) (*SetMessageReactionExtensionsResp, error) - GetMessageListReactionExtensions(ctx context.Context, in *OperateMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*OperateMessageListReactionExtensionsResp, error) + GetMessageListReactionExtensions(ctx context.Context, in *GetMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*GetMessageListReactionExtensionsResp, error) AddMessageReactionExtensions(ctx context.Context, in *ModifyMessageReactionExtensionsReq, opts ...grpc.CallOption) (*ModifyMessageReactionExtensionsResp, error) - DeleteMessageReactionExtensions(ctx context.Context, in *OperateMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*OperateMessageListReactionExtensionsResp, error) + DeleteMessageReactionExtensions(ctx context.Context, in *DeleteMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*DeleteMessageListReactionExtensionsResp, error) } type msgClient struct { @@ -2140,8 +2381,8 @@ func (c *msgClient) SetMessageReactionExtensions(ctx context.Context, in *SetMes return out, nil } -func (c *msgClient) GetMessageListReactionExtensions(ctx context.Context, in *OperateMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*OperateMessageListReactionExtensionsResp, error) { - out := new(OperateMessageListReactionExtensionsResp) +func (c *msgClient) GetMessageListReactionExtensions(ctx context.Context, in *GetMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*GetMessageListReactionExtensionsResp, error) { + out := new(GetMessageListReactionExtensionsResp) err := grpc.Invoke(ctx, "/msg.msg/GetMessageListReactionExtensions", in, out, c.cc, opts...) if err != nil { return nil, err @@ -2158,8 +2399,8 @@ func (c *msgClient) AddMessageReactionExtensions(ctx context.Context, in *Modify return out, nil } -func (c *msgClient) DeleteMessageReactionExtensions(ctx context.Context, in *OperateMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*OperateMessageListReactionExtensionsResp, error) { - out := new(OperateMessageListReactionExtensionsResp) +func (c *msgClient) DeleteMessageReactionExtensions(ctx context.Context, in *DeleteMessageListReactionExtensionsReq, opts ...grpc.CallOption) (*DeleteMessageListReactionExtensionsResp, error) { + out := new(DeleteMessageListReactionExtensionsResp) err := grpc.Invoke(ctx, "/msg.msg/DeleteMessageReactionExtensions", in, out, c.cc, opts...) if err != nil { return nil, err @@ -2183,9 +2424,9 @@ type MsgServer interface { GetWriteDiffMsg(context.Context, *GetWriteDiffMsgReq) (*GetWriteDiffMsgResp, error) // modify msg SetMessageReactionExtensions(context.Context, *SetMessageReactionExtensionsReq) (*SetMessageReactionExtensionsResp, error) - GetMessageListReactionExtensions(context.Context, *OperateMessageListReactionExtensionsReq) (*OperateMessageListReactionExtensionsResp, error) + GetMessageListReactionExtensions(context.Context, *GetMessageListReactionExtensionsReq) (*GetMessageListReactionExtensionsResp, error) AddMessageReactionExtensions(context.Context, *ModifyMessageReactionExtensionsReq) (*ModifyMessageReactionExtensionsResp, error) - DeleteMessageReactionExtensions(context.Context, *OperateMessageListReactionExtensionsReq) (*OperateMessageListReactionExtensionsResp, error) + DeleteMessageReactionExtensions(context.Context, *DeleteMessageListReactionExtensionsReq) (*DeleteMessageListReactionExtensionsResp, error) } func RegisterMsgServer(s *grpc.Server, srv MsgServer) { @@ -2409,7 +2650,7 @@ func _Msg_SetMessageReactionExtensions_Handler(srv interface{}, ctx context.Cont } func _Msg_GetMessageListReactionExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(OperateMessageListReactionExtensionsReq) + in := new(GetMessageListReactionExtensionsReq) if err := dec(in); err != nil { return nil, err } @@ -2421,7 +2662,7 @@ func _Msg_GetMessageListReactionExtensions_Handler(srv interface{}, ctx context. FullMethod: "/msg.msg/GetMessageListReactionExtensions", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).GetMessageListReactionExtensions(ctx, req.(*OperateMessageListReactionExtensionsReq)) + return srv.(MsgServer).GetMessageListReactionExtensions(ctx, req.(*GetMessageListReactionExtensionsReq)) } return interceptor(ctx, in, info, handler) } @@ -2445,7 +2686,7 @@ func _Msg_AddMessageReactionExtensions_Handler(srv interface{}, ctx context.Cont } func _Msg_DeleteMessageReactionExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(OperateMessageListReactionExtensionsReq) + in := new(DeleteMessageListReactionExtensionsReq) if err := dec(in); err != nil { return nil, err } @@ -2457,7 +2698,7 @@ func _Msg_DeleteMessageReactionExtensions_Handler(srv interface{}, ctx context.C FullMethod: "/msg.msg/DeleteMessageReactionExtensions", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MsgServer).DeleteMessageReactionExtensions(ctx, req.(*OperateMessageListReactionExtensionsReq)) + return srv.(MsgServer).DeleteMessageReactionExtensions(ctx, req.(*DeleteMessageListReactionExtensionsReq)) } return interceptor(ctx, in, info, handler) } @@ -2531,105 +2772,111 @@ var _Msg_serviceDesc = grpc.ServiceDesc{ Metadata: "msg/msg.proto", } -func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_489179134d252ef4) } +func init() { proto.RegisterFile("msg/msg.proto", fileDescriptor_msg_32af573ca8e8e2bd) } -var fileDescriptor_msg_489179134d252ef4 = []byte{ - // 1548 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4f, 0x73, 0xdb, 0x44, - 0x14, 0x1f, 0x59, 0xb1, 0x93, 0x3c, 0x27, 0x4d, 0xba, 0x4d, 0x83, 0xaa, 0x66, 0xa6, 0x46, 0xb4, - 0xd4, 0x85, 0xd6, 0x19, 0x02, 0x33, 0x65, 0xe8, 0x81, 0x36, 0x75, 0x70, 0x33, 0x45, 0xa4, 0x91, - 0x03, 0xcc, 0xc0, 0x21, 0x55, 0xed, 0x8d, 0xaa, 0x89, 0x2d, 0x29, 0x5a, 0xa9, 0x89, 0x61, 0x28, - 0x27, 0x4e, 0x0c, 0x07, 0xb8, 0x71, 0xe2, 0xc6, 0x77, 0xe0, 0xc8, 0x85, 0x2b, 0x77, 0xbe, 0x02, - 0x5f, 0x82, 0xd9, 0x5d, 0xd9, 0x5e, 0xfd, 0x8b, 0x15, 0x97, 0xe9, 0x94, 0x19, 0x6e, 0x7e, 0x6f, - 0xdf, 0xbe, 0x7d, 0xbf, 0xf7, 0x7e, 0xda, 0xb7, 0xbb, 0x86, 0xc5, 0x3e, 0xb1, 0xd6, 0xfb, 0xc4, - 0x6a, 0x78, 0xbe, 0x1b, 0xb8, 0x48, 0xee, 0x13, 0x4b, 0xad, 0xef, 0x78, 0xd8, 0xb9, 0xb5, 0xad, - 0xdf, 0x6a, 0x63, 0xff, 0x19, 0xf6, 0xd7, 0xbd, 0x43, 0x6b, 0x9d, 0x0d, 0xaf, 0x93, 0xee, 0xe1, - 0xfe, 0x31, 0x59, 0x3f, 0x26, 0xdc, 0x5c, 0x6d, 0x4c, 0xb4, 0xf4, 0x4d, 0xcf, 0xc3, 0x7e, 0x64, - 0xaf, 0x7d, 0x0d, 0x55, 0x9d, 0x58, 0x4d, 0x33, 0x30, 0xf7, 0x5c, 0x7d, 0x17, 0xad, 0x40, 0x39, - 0x70, 0x0f, 0xb1, 0xa3, 0x48, 0x35, 0xa9, 0x3e, 0x6f, 0x70, 0x01, 0xd5, 0xa0, 0xea, 0x7a, 0xd8, - 0x37, 0x03, 0xdb, 0x75, 0xb6, 0x9b, 0x4a, 0x89, 0x8d, 0x89, 0x2a, 0xf4, 0x1e, 0xcc, 0xf6, 0xb9, - 0x1b, 0x45, 0xae, 0x49, 0xf5, 0xea, 0x86, 0xda, 0x20, 0x2c, 0x80, 0x7d, 0xd3, 0xb3, 0xf7, 0x3d, - 0xd3, 0x37, 0xfb, 0xa4, 0x11, 0x2d, 0x64, 0x0c, 0x4d, 0x35, 0x2c, 0x2c, 0xde, 0xdc, 0x14, 0x9d, - 0x48, 0x85, 0x9d, 0x4c, 0x0e, 0x4e, 0xfb, 0x41, 0x82, 0xa5, 0x47, 0x21, 0x79, 0x2a, 0x02, 0xad, - 0x41, 0x75, 0x47, 0x98, 0xc5, 0xe1, 0x8a, 0x2a, 0x31, 0x9a, 0x52, 0xf1, 0x68, 0x34, 0x58, 0xf0, - 0x42, 0xf2, 0x74, 0xcf, 0xfd, 0x94, 0x60, 0x7f, 0xbb, 0xc9, 0xb2, 0x31, 0x6f, 0xc4, 0x74, 0xda, - 0xaf, 0x12, 0xa0, 0x71, 0x2c, 0xae, 0x63, 0xb9, 0x9b, 0x03, 0x7d, 0x17, 0x29, 0x30, 0xdb, 0x33, - 0x49, 0xd0, 0xc6, 0x47, 0x2c, 0x9c, 0x19, 0x63, 0x28, 0xa2, 0xab, 0xb0, 0x68, 0x5a, 0x96, 0x8f, - 0xad, 0x38, 0xc8, 0xb8, 0x12, 0x6d, 0x40, 0xb5, 0x8f, 0x09, 0x31, 0x2d, 0xfc, 0xb1, 0x4d, 0x02, - 0x45, 0xae, 0xc9, 0xf5, 0xea, 0xc6, 0x72, 0x83, 0x52, 0x49, 0x40, 0x6e, 0x88, 0x46, 0x68, 0x0d, - 0xe6, 0x03, 0xdf, 0xb6, 0x2c, 0x16, 0xeb, 0x0c, 0xf3, 0x3a, 0x56, 0x68, 0x9f, 0x00, 0x6a, 0xe1, - 0x40, 0x37, 0x4f, 0xee, 0x39, 0x5d, 0xdd, 0x76, 0xda, 0xf8, 0xc8, 0xc0, 0x47, 0x68, 0x15, 0x2a, - 0x11, 0x38, 0x9e, 0xb5, 0x48, 0x4a, 0xa6, 0xb4, 0x94, 0x4a, 0xa9, 0x76, 0x0c, 0x17, 0x52, 0xfe, - 0x88, 0x47, 0x81, 0x6f, 0xf9, 0xfe, 0x7d, 0xb7, 0x8b, 0x99, 0xc7, 0xb2, 0x31, 0x14, 0xe9, 0x52, - 0x5b, 0xbe, 0xaf, 0x13, 0x2b, 0xf2, 0x16, 0x49, 0x54, 0xaf, 0x9b, 0x27, 0x34, 0x53, 0x34, 0xbf, - 0x8b, 0x46, 0x24, 0x31, 0x3d, 0xf3, 0xcb, 0xb0, 0x50, 0x3d, 0x93, 0xb4, 0xaf, 0x00, 0xda, 0xd8, - 0xe9, 0xea, 0xc4, 0xa2, 0x00, 0x5e, 0x2e, 0xc9, 0x7f, 0x91, 0xa0, 0x3a, 0x5a, 0x9c, 0xa3, 0xc5, - 0x71, 0xb4, 0x78, 0x8c, 0x16, 0xc7, 0xd0, 0x72, 0x89, 0x46, 0xc6, 0xd7, 0xd1, 0x89, 0x35, 0x2a, - 0x93, 0xa8, 0xa2, 0x16, 0x9d, 0x9e, 0x8d, 0x9d, 0x80, 0x5b, 0x94, 0xb9, 0x85, 0xa0, 0x42, 0x2a, - 0xcc, 0x11, 0xec, 0x74, 0xf7, 0xec, 0x3e, 0x56, 0x2a, 0x35, 0xa9, 0x2e, 0x1b, 0x23, 0x59, 0xeb, - 0x40, 0xf5, 0x7e, 0x0f, 0x9b, 0x7e, 0x94, 0x9e, 0x55, 0xa8, 0x84, 0xb1, 0xfa, 0x72, 0x89, 0xba, - 0x70, 0xbd, 0xa8, 0xf2, 0x3c, 0xc0, 0x91, 0x9c, 0x4c, 0x9e, 0x9c, 0xfe, 0x08, 0xef, 0xc2, 0xc2, - 0x78, 0x91, 0x69, 0xd2, 0xa0, 0xfd, 0x2c, 0xc1, 0x52, 0x1b, 0x53, 0x3c, 0x31, 0x2e, 0x66, 0xc6, - 0xaa, 0xc0, 0xac, 0xe5, 0xbb, 0xa1, 0x37, 0x0a, 0x75, 0x28, 0xd2, 0x19, 0x7d, 0x4e, 0x91, 0x88, - 0x3a, 0x5c, 0x4a, 0x22, 0x98, 0x49, 0x97, 0x5f, 0xc4, 0x5f, 0x8e, 0xe3, 0xd7, 0x9a, 0xb0, 0x1c, - 0x0f, 0x6d, 0x2a, 0x84, 0x3b, 0x70, 0xa1, 0x8d, 0x83, 0x88, 0x2c, 0xed, 0xc0, 0x0c, 0x42, 0x62, - 0xa4, 0x43, 0x93, 0xd2, 0xa1, 0xad, 0x42, 0x85, 0x30, 0x73, 0xe6, 0xb0, 0x6c, 0x44, 0x92, 0xf6, - 0x00, 0x56, 0xd2, 0x0e, 0xa7, 0x0a, 0xed, 0x36, 0xfb, 0x74, 0xcf, 0x1e, 0x9a, 0xf6, 0x18, 0x56, - 0x5a, 0xff, 0x4a, 0x08, 0x02, 0x48, 0x39, 0x06, 0xf2, 0x3b, 0x09, 0x2e, 0x34, 0x71, 0xaf, 0x1d, - 0x7a, 0xd8, 0x6f, 0xd1, 0x2a, 0x47, 0x3c, 0x16, 0xeb, 0x25, 0x25, 0xf8, 0x3a, 0xe6, 0x4d, 0x29, - 0x8f, 0x37, 0x72, 0x9c, 0x37, 0x13, 0xf9, 0x41, 0x93, 0x9d, 0x0e, 0x63, 0xaa, 0x64, 0x77, 0x78, - 0xb2, 0x93, 0x80, 0x26, 0xf3, 0x60, 0x19, 0x64, 0xca, 0xec, 0x12, 0x63, 0x36, 0xfd, 0x99, 0x0f, - 0x48, 0x7b, 0xce, 0x0b, 0xf3, 0xe2, 0xe1, 0x4e, 0xb9, 0x2f, 0x3e, 0x60, 0xcd, 0xe5, 0x73, 0xdf, - 0x0e, 0x70, 0xd3, 0x3e, 0x38, 0x98, 0x1e, 0xa3, 0xf6, 0x0d, 0x4b, 0x57, 0xdc, 0xd3, 0x4b, 0x04, - 0xf2, 0x63, 0x19, 0x34, 0xdd, 0xed, 0xda, 0x07, 0x03, 0x9d, 0x77, 0x56, 0x03, 0x9b, 0x1d, 0x1a, - 0xec, 0xd6, 0x49, 0x80, 0x1d, 0x62, 0xbb, 0x4e, 0xc1, 0xaf, 0x98, 0xee, 0xd1, 0x6e, 0xe8, 0x77, - 0xf0, 0x78, 0x83, 0x1d, 0xca, 0x31, 0x32, 0xcb, 0xe9, 0xcd, 0x97, 0x60, 0x42, 0x17, 0xda, 0x1b, - 0x78, 0x98, 0x51, 0xb3, 0x6c, 0x88, 0x2a, 0x74, 0x02, 0x17, 0xfd, 0x64, 0x50, 0xec, 0x90, 0x50, - 0x66, 0x87, 0x84, 0x4d, 0x7e, 0x48, 0x98, 0x88, 0xa1, 0x61, 0x64, 0x39, 0xd9, 0x72, 0x02, 0x7f, - 0x60, 0x64, 0x2f, 0x90, 0xec, 0x4c, 0x95, 0x74, 0x67, 0xba, 0x09, 0x25, 0x7c, 0xa2, 0xcc, 0xb2, - 0x7c, 0xaf, 0x35, 0x2c, 0xd7, 0xb5, 0x7a, 0x98, 0x1f, 0x4e, 0x9f, 0x84, 0x07, 0x8d, 0x76, 0xe0, - 0xdb, 0x8e, 0xf5, 0x99, 0xd9, 0x0b, 0xb1, 0x51, 0xc2, 0x27, 0xe8, 0x2e, 0x2c, 0x98, 0x41, 0x60, - 0x76, 0x9e, 0xe2, 0xee, 0xb6, 0x73, 0xe0, 0x2a, 0x73, 0x05, 0xe6, 0xc5, 0x66, 0x50, 0x5a, 0xd8, - 0x84, 0x01, 0x51, 0xe6, 0x6b, 0x52, 0x7d, 0xce, 0x18, 0x8a, 0x68, 0x03, 0x56, 0x6c, 0x42, 0xc3, - 0xf7, 0x1d, 0xb3, 0x37, 0x06, 0xae, 0x00, 0x33, 0xcb, 0x1c, 0x43, 0x0d, 0x40, 0x7d, 0x62, 0x7d, - 0x64, 0xfb, 0x24, 0xe0, 0xf9, 0x63, 0x1d, 0xb6, 0xca, 0x3a, 0x6c, 0xc6, 0x88, 0x8a, 0x41, 0xcd, - 0x4f, 0x22, 0xe5, 0xf6, 0x21, 0x1e, 0x44, 0xdc, 0xa0, 0x3f, 0xd1, 0x3b, 0x50, 0x7e, 0x46, 0x41, - 0x44, 0x67, 0xd0, 0xcb, 0x19, 0x84, 0x7c, 0x88, 0x07, 0x1c, 0x27, 0xb7, 0xfc, 0xa0, 0xf4, 0xbe, - 0xa4, 0x7d, 0x5f, 0x86, 0x2b, 0xb4, 0x21, 0xbd, 0xaa, 0x84, 0x0c, 0x4f, 0x27, 0xe4, 0x87, 0x8c, - 0x90, 0x13, 0x00, 0xfc, 0xcf, 0xc6, 0xff, 0x0a, 0x1b, 0xff, 0x96, 0xa0, 0x76, 0x7a, 0x31, 0xa7, - 0x3d, 0x17, 0x8b, 0xd5, 0x94, 0xd3, 0xd5, 0xcc, 0xce, 0xc7, 0x4c, 0x5e, 0x3e, 0xc4, 0x6a, 0x94, - 0xe3, 0xd5, 0xb8, 0x01, 0x15, 0x1f, 0x93, 0xb0, 0x17, 0x28, 0x15, 0xc6, 0xd0, 0xf3, 0x8c, 0xa1, - 0x23, 0xb0, 0x98, 0x78, 0x46, 0x64, 0xa0, 0xfd, 0x2e, 0xc1, 0x1b, 0x13, 0xf7, 0xd2, 0x29, 0xfb, - 0x53, 0x95, 0x84, 0x9d, 0x0e, 0x26, 0x44, 0xb8, 0xe1, 0x21, 0x16, 0x09, 0xf3, 0x3d, 0xbc, 0x63, - 0x18, 0xa2, 0x19, 0xda, 0x00, 0x38, 0x30, 0xed, 0x1e, 0xee, 0xb2, 0x49, 0x33, 0xb9, 0x93, 0x04, - 0x2b, 0xed, 0x2f, 0x19, 0xae, 0xf3, 0x9b, 0x1b, 0xd6, 0xc7, 0xd7, 0xc5, 0x17, 0xd8, 0x47, 0x72, - 0x6f, 0x0e, 0xe2, 0x1e, 0x23, 0x27, 0xf6, 0x98, 0xc9, 0xfb, 0xc8, 0x31, 0xac, 0xf6, 0xe3, 0x49, - 0x7e, 0x88, 0x07, 0xa9, 0x8d, 0xa4, 0x20, 0x92, 0x86, 0x9e, 0x72, 0x65, 0xe4, 0xb8, 0x57, 0x7f, - 0xa3, 0x77, 0xf8, 0xd4, 0x50, 0x92, 0x92, 0x52, 0x51, 0x4a, 0x96, 0x72, 0x29, 0xb9, 0x9b, 0xb7, - 0x53, 0xf2, 0xea, 0x9f, 0xfa, 0x09, 0x66, 0xcf, 0xd4, 0xfe, 0x90, 0xa0, 0x5e, 0x2c, 0x25, 0xaf, - 0x38, 0x4b, 0x5d, 0x58, 0x8c, 0x0d, 0xa2, 0x9b, 0x30, 0x8f, 0x87, 0x8a, 0xe8, 0x0d, 0xe9, 0x5c, - 0xc2, 0xc7, 0xd8, 0x40, 0x84, 0x56, 0xca, 0x83, 0x26, 0xc7, 0x0e, 0xe6, 0x7f, 0x96, 0x60, 0x7e, - 0xe4, 0x0a, 0xed, 0xe7, 0x95, 0x46, 0x62, 0xd1, 0xdf, 0x88, 0xaf, 0xfc, 0xe2, 0xed, 0xaa, 0x54, - 0x94, 0x4d, 0x72, 0x2e, 0x9b, 0xb4, 0x44, 0xc3, 0xe2, 0xd7, 0x98, 0x78, 0x4b, 0x3a, 0xc7, 0x5a, - 0x20, 0xbf, 0xe1, 0x96, 0xf0, 0x89, 0xfa, 0xe5, 0x19, 0x9b, 0xc4, 0xf5, 0x78, 0x93, 0xc8, 0xd8, - 0x29, 0x85, 0xd6, 0x30, 0x80, 0x05, 0x71, 0x08, 0xdd, 0x86, 0xb9, 0xc3, 0x48, 0x8e, 0x0a, 0x78, - 0x2a, 0xc3, 0x47, 0xc6, 0x67, 0x2f, 0xe6, 0xc6, 0x4f, 0x00, 0x72, 0x9f, 0x58, 0xe8, 0x31, 0x2c, - 0x25, 0x5e, 0xa5, 0xd0, 0xb5, 0x8c, 0x35, 0xd3, 0x2f, 0x61, 0xea, 0x9b, 0x45, 0xcc, 0x88, 0x87, - 0x5c, 0x58, 0x79, 0x14, 0xf6, 0x7a, 0xd1, 0xc7, 0xb6, 0x39, 0x68, 0xe3, 0x23, 0x56, 0xdf, 0xb7, - 0x32, 0xe6, 0x67, 0x19, 0xd2, 0xb5, 0xde, 0x2e, 0x6c, 0xcb, 0xbe, 0x83, 0xd9, 0xe8, 0xc6, 0x8d, - 0x96, 0xa2, 0xa3, 0xd4, 0xf0, 0xf5, 0x4b, 0x5d, 0x8e, 0x2b, 0x88, 0x87, 0x76, 0x01, 0x9a, 0xb8, - 0xa7, 0x13, 0x8b, 0x93, 0x2e, 0x63, 0xa1, 0xf1, 0x30, 0xf5, 0xf0, 0xfa, 0x04, 0x0b, 0xe2, 0xa1, - 0x16, 0x2c, 0x27, 0xef, 0xc2, 0x48, 0x61, 0x0b, 0x67, 0xdc, 0xd4, 0xd5, 0x4b, 0x39, 0x23, 0xc4, - 0x43, 0xeb, 0x30, 0x37, 0x7c, 0x36, 0x42, 0x3c, 0x72, 0xe1, 0xa9, 0x4a, 0x3d, 0x9f, 0xd0, 0x10, - 0x0f, 0xdd, 0x81, 0x05, 0xf1, 0x25, 0x06, 0xad, 0x8c, 0x8e, 0x92, 0xc2, 0xbb, 0x91, 0x7a, 0x31, - 0x43, 0xcb, 0xc3, 0x4e, 0xbe, 0x97, 0x44, 0x61, 0x67, 0xbc, 0xcb, 0x44, 0x61, 0x67, 0x3e, 0xb0, - 0xb4, 0x60, 0xb9, 0x95, 0xed, 0xa8, 0x95, 0xeb, 0xa8, 0x75, 0x8a, 0xa3, 0x8c, 0x44, 0x66, 0xbc, - 0x10, 0x08, 0x8e, 0x52, 0x89, 0x6c, 0x32, 0x96, 0x8b, 0x97, 0x64, 0xf4, 0xda, 0xd0, 0x3a, 0x71, - 0x09, 0x57, 0x95, 0xec, 0x01, 0xe2, 0xa1, 0x43, 0x58, 0x3b, 0xed, 0x20, 0x87, 0xae, 0x16, 0x39, - 0xb8, 0xab, 0xd7, 0x0a, 0x58, 0x11, 0x0f, 0x7d, 0x0b, 0xb5, 0xd6, 0xc8, 0x26, 0xbb, 0x45, 0xa1, - 0x9b, 0x67, 0x69, 0xf0, 0xea, 0xad, 0x33, 0x58, 0x13, 0x0f, 0x1d, 0xc1, 0xda, 0xbd, 0x6e, 0x37, - 0x1f, 0xed, 0xf5, 0x82, 0xf7, 0x66, 0xb5, 0x5e, 0xcc, 0x90, 0x78, 0xe8, 0x39, 0x5c, 0x69, 0xe2, - 0x1e, 0x1e, 0x45, 0xf7, 0x92, 0x21, 0x6f, 0x5e, 0xfe, 0xe2, 0xd2, 0x8e, 0x87, 0x9d, 0xfd, 0x6d, - 0x5d, 0xf8, 0xeb, 0xa8, 0x4f, 0xac, 0x3b, 0x7d, 0x62, 0x3d, 0xa9, 0x30, 0xf1, 0xdd, 0x7f, 0x02, - 0x00, 0x00, 0xff, 0xff, 0xa6, 0x82, 0xfe, 0x0e, 0xa3, 0x1a, 0x00, 0x00, +var fileDescriptor_msg_32af573ca8e8e2bd = []byte{ + // 1648 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4d, 0x6f, 0xdb, 0x46, + 0x13, 0x06, 0x45, 0x4b, 0xb6, 0x47, 0x76, 0xec, 0xac, 0x1d, 0xbf, 0x0a, 0x63, 0x20, 0x0a, 0xf3, + 0xa5, 0xbc, 0x49, 0x64, 0xbc, 0x7e, 0x0b, 0xa4, 0x68, 0x8a, 0x36, 0x71, 0xe4, 0x2a, 0x46, 0xca, + 0x3a, 0xa6, 0xdc, 0x16, 0x68, 0x0f, 0x0e, 0x23, 0xad, 0x19, 0xc2, 0x12, 0x49, 0x73, 0xa9, 0xd8, + 0xea, 0xd7, 0xad, 0x40, 0x81, 0xa2, 0x87, 0x1e, 0x7b, 0xea, 0xad, 0xb7, 0xfe, 0x80, 0x1e, 0x7b, + 0xe8, 0xb1, 0xe8, 0xb5, 0xff, 0xa1, 0xff, 0xa1, 0x28, 0x76, 0x97, 0x92, 0x96, 0x5f, 0x12, 0x2d, + 0x17, 0x46, 0x0a, 0xf4, 0xa6, 0xd9, 0x9d, 0x9d, 0x9d, 0x67, 0xe6, 0xd9, 0xe1, 0xee, 0x08, 0xe6, + 0x3b, 0xc4, 0x5c, 0xeb, 0x10, 0xb3, 0xea, 0x7a, 0x8e, 0xef, 0x20, 0xb9, 0x43, 0x4c, 0xa5, 0xb2, + 0xed, 0x62, 0xfb, 0xee, 0x96, 0x76, 0xb7, 0x81, 0xbd, 0x97, 0xd8, 0x5b, 0x73, 0x0f, 0xcc, 0x35, + 0x36, 0xbd, 0x46, 0x5a, 0x07, 0x7b, 0x47, 0x64, 0xed, 0x88, 0x70, 0x75, 0xa5, 0x3a, 0x56, 0xd3, + 0x33, 0x5c, 0x17, 0x7b, 0x81, 0xbe, 0xfa, 0x29, 0x14, 0x35, 0x62, 0xd6, 0x0c, 0xdf, 0xd8, 0x75, + 0xb4, 0x1d, 0xb4, 0x0c, 0x79, 0xdf, 0x39, 0xc0, 0x76, 0x49, 0x2a, 0x4b, 0x95, 0x59, 0x9d, 0x0b, + 0xa8, 0x0c, 0x45, 0xc7, 0xc5, 0x9e, 0xe1, 0x5b, 0x8e, 0xbd, 0x55, 0x2b, 0xe5, 0xd8, 0x9c, 0x38, + 0x84, 0x5e, 0x83, 0xe9, 0x0e, 0x37, 0x53, 0x92, 0xcb, 0x52, 0xa5, 0xb8, 0xae, 0x54, 0x09, 0x73, + 0x60, 0xcf, 0x70, 0xad, 0x3d, 0xd7, 0xf0, 0x8c, 0x0e, 0xa9, 0x06, 0x1b, 0xe9, 0x7d, 0x55, 0x15, + 0x0b, 0x9b, 0xd7, 0x36, 0x44, 0x23, 0x52, 0x66, 0x23, 0xe3, 0x9d, 0x53, 0xbf, 0x91, 0x60, 0xe1, + 0x69, 0x97, 0xbc, 0x10, 0x81, 0x96, 0xa1, 0xb8, 0x2d, 0xac, 0xe2, 0x70, 0xc5, 0x21, 0xd1, 0x9b, + 0x5c, 0x76, 0x6f, 0x54, 0x98, 0x73, 0xbb, 0xe4, 0xc5, 0xae, 0xf3, 0x3e, 0xc1, 0xde, 0x56, 0x8d, + 0x45, 0x63, 0x56, 0x0f, 0x8d, 0xa9, 0x3f, 0x48, 0x80, 0x86, 0xbe, 0x38, 0xb6, 0xe9, 0x6c, 0xf4, + 0xb4, 0x1d, 0x54, 0x82, 0xe9, 0xb6, 0x41, 0xfc, 0x06, 0x3e, 0x64, 0xee, 0x4c, 0xe9, 0x7d, 0x11, + 0x5d, 0x83, 0x79, 0xc3, 0x34, 0x3d, 0x6c, 0x86, 0x41, 0x86, 0x07, 0xd1, 0x3a, 0x14, 0x3b, 0x98, + 0x10, 0xc3, 0xc4, 0xef, 0x5a, 0xc4, 0x2f, 0xc9, 0x65, 0xb9, 0x52, 0x5c, 0x5f, 0xac, 0x52, 0x2a, + 0x09, 0xc8, 0x75, 0x51, 0x09, 0xad, 0xc2, 0xac, 0xef, 0x59, 0xa6, 0xc9, 0x7c, 0x9d, 0x62, 0x56, + 0x87, 0x03, 0xea, 0x7b, 0x80, 0xea, 0xd8, 0xd7, 0x8c, 0xe3, 0x87, 0x76, 0x4b, 0xb3, 0xec, 0x06, + 0x3e, 0xd4, 0xf1, 0x21, 0x5a, 0x81, 0x42, 0x00, 0x8e, 0x47, 0x2d, 0x90, 0xa2, 0x21, 0xcd, 0xc5, + 0x42, 0xaa, 0x1e, 0xc1, 0x52, 0xcc, 0x1e, 0x71, 0x29, 0xf0, 0x4d, 0xcf, 0x7b, 0xe4, 0xb4, 0x30, + 0xb3, 0x98, 0xd7, 0xfb, 0x22, 0xdd, 0x6a, 0xd3, 0xf3, 0x34, 0x62, 0x06, 0xd6, 0x02, 0x89, 0x8e, + 0x6b, 0xc6, 0x31, 0x8d, 0x14, 0x8d, 0xef, 0xbc, 0x1e, 0x48, 0x6c, 0x9c, 0xd9, 0x65, 0x58, 0xe8, + 0x38, 0x93, 0xd4, 0x4f, 0x00, 0x1a, 0xd8, 0x6e, 0x69, 0xc4, 0xa4, 0x00, 0xce, 0x96, 0xe4, 0xdf, + 0x4b, 0x50, 0x1c, 0x6c, 0xce, 0xd1, 0xe2, 0x30, 0x5a, 0x3c, 0x44, 0x8b, 0x43, 0x68, 0xb9, 0x44, + 0x3d, 0xe3, 0xfb, 0x68, 0xc4, 0x1c, 0xa4, 0x49, 0x1c, 0xa2, 0x1a, 0xcd, 0xb6, 0x85, 0x6d, 0x9f, + 0x6b, 0xe4, 0xb9, 0x86, 0x30, 0x84, 0x14, 0x98, 0x21, 0xd8, 0x6e, 0xed, 0x5a, 0x1d, 0x5c, 0x2a, + 0x94, 0xa5, 0x8a, 0xac, 0x0f, 0x64, 0xb5, 0x09, 0xc5, 0x47, 0x6d, 0x6c, 0x78, 0x41, 0x78, 0x56, + 0xa0, 0xd0, 0x0d, 0xe5, 0x97, 0x4b, 0xd4, 0x84, 0xe3, 0x06, 0x99, 0xe7, 0x0e, 0x0e, 0xe4, 0x68, + 0xf0, 0xe4, 0xf8, 0x21, 0x7c, 0x00, 0x73, 0xc3, 0x4d, 0x26, 0x09, 0x83, 0xfa, 0x9d, 0x04, 0x0b, + 0x0d, 0x4c, 0xf1, 0x84, 0xb8, 0x98, 0xe8, 0x6b, 0x09, 0xa6, 0x4d, 0xcf, 0xe9, 0xba, 0x03, 0x57, + 0xfb, 0x22, 0x5d, 0xd1, 0xe1, 0x14, 0x09, 0xa8, 0xc3, 0xa5, 0x28, 0x82, 0xa9, 0x78, 0xfa, 0x45, + 0xfc, 0xf9, 0x30, 0x7e, 0xb5, 0x06, 0x8b, 0x61, 0xd7, 0x26, 0x42, 0xb8, 0x0d, 0x4b, 0x0d, 0xec, + 0x07, 0x64, 0x69, 0xf8, 0x86, 0xdf, 0x25, 0x7a, 0xdc, 0x35, 0x29, 0xee, 0xda, 0x0a, 0x14, 0x08, + 0x53, 0x67, 0x06, 0xf3, 0x7a, 0x20, 0xa9, 0x8f, 0x61, 0x39, 0x6e, 0x70, 0x22, 0xd7, 0xee, 0xb1, + 0xa3, 0x7b, 0x72, 0xd7, 0xd4, 0x67, 0xb0, 0x5c, 0xff, 0x5b, 0x5c, 0x10, 0x40, 0xca, 0x21, 0x90, + 0x5f, 0x4a, 0xb0, 0x54, 0xc3, 0xed, 0x46, 0xd7, 0xc5, 0x5e, 0x9d, 0x66, 0x39, 0xe0, 0xb1, 0x98, + 0x2f, 0x29, 0xc2, 0xd7, 0x21, 0x6f, 0x72, 0x69, 0xbc, 0x91, 0xc3, 0xbc, 0x19, 0xcb, 0x0f, 0x1a, + 0xec, 0xb8, 0x1b, 0x13, 0x05, 0xbb, 0xc9, 0x83, 0x1d, 0x05, 0x34, 0x9e, 0x07, 0x8b, 0x20, 0x53, + 0x66, 0xe7, 0x18, 0xb3, 0xe9, 0xcf, 0x74, 0x40, 0xea, 0x17, 0x3c, 0x31, 0xa7, 0x77, 0x77, 0xc2, + 0xba, 0xf8, 0x98, 0x7d, 0x5c, 0x3e, 0xf4, 0x2c, 0x1f, 0xd7, 0xac, 0xfd, 0xfd, 0xc9, 0x31, 0xaa, + 0x9f, 0xb3, 0x70, 0x85, 0x2d, 0x9d, 0x21, 0x90, 0x6f, 0xf3, 0xa0, 0x6a, 0x4e, 0xcb, 0xda, 0xef, + 0x69, 0xfc, 0xcb, 0xaa, 0x63, 0xa3, 0x49, 0x9d, 0xdd, 0x3c, 0xf6, 0xb1, 0x4d, 0x2c, 0xc7, 0xce, + 0x78, 0x8a, 0x69, 0x8d, 0x76, 0xba, 0x5e, 0x13, 0x0f, 0x0b, 0x6c, 0x5f, 0x0e, 0x91, 0x59, 0x8e, + 0x17, 0x5f, 0x82, 0x09, 0xdd, 0x68, 0xb7, 0xe7, 0x62, 0x46, 0xcd, 0xbc, 0x2e, 0x0e, 0xa1, 0x63, + 0xb8, 0xe0, 0x45, 0x9d, 0x62, 0x97, 0x84, 0x3c, 0xbb, 0x24, 0x6c, 0xf0, 0x4b, 0xc2, 0x58, 0x0c, + 0x55, 0x3d, 0xc9, 0xc8, 0xa6, 0xed, 0x7b, 0x3d, 0x3d, 0x79, 0x83, 0xe8, 0x97, 0xa9, 0x10, 0xff, + 0x32, 0xdd, 0x81, 0x1c, 0x3e, 0x2e, 0x4d, 0xb3, 0x78, 0xaf, 0x56, 0x4d, 0xc7, 0x31, 0xdb, 0x98, + 0x5f, 0x4e, 0x9f, 0x77, 0xf7, 0xab, 0x0d, 0xdf, 0xb3, 0x6c, 0xf3, 0x03, 0xa3, 0xdd, 0xc5, 0x7a, + 0x0e, 0x1f, 0xa3, 0x07, 0x30, 0x67, 0xf8, 0xbe, 0xd1, 0x7c, 0x81, 0x5b, 0x5b, 0xf6, 0xbe, 0x53, + 0x9a, 0xc9, 0xb0, 0x2e, 0xb4, 0x82, 0xd2, 0xc2, 0x22, 0x0c, 0x48, 0x69, 0xb6, 0x2c, 0x55, 0x66, + 0xf4, 0xbe, 0x88, 0xd6, 0x61, 0xd9, 0x22, 0xd4, 0x7d, 0xcf, 0x36, 0xda, 0x43, 0xe0, 0x25, 0x60, + 0x6a, 0x89, 0x73, 0xa8, 0x0a, 0xa8, 0x43, 0xcc, 0x77, 0x2c, 0x8f, 0xf8, 0x3c, 0x7e, 0xec, 0x0b, + 0x5b, 0x64, 0x5f, 0xd8, 0x84, 0x19, 0x05, 0x83, 0x92, 0x1e, 0x44, 0xca, 0xed, 0x03, 0xdc, 0x0b, + 0xb8, 0x41, 0x7f, 0xa2, 0xff, 0x41, 0xfe, 0x25, 0x05, 0x11, 0xdc, 0x41, 0x2f, 0x25, 0x10, 0xf2, + 0x09, 0xee, 0x71, 0x9c, 0x5c, 0xf3, 0x8d, 0xdc, 0xeb, 0x92, 0xfa, 0x75, 0x1e, 0x2e, 0xd3, 0x0f, + 0xd2, 0xab, 0x4a, 0xc8, 0xee, 0x68, 0x42, 0xbe, 0xcd, 0x08, 0x39, 0x06, 0xc0, 0xbf, 0x6c, 0xfc, + 0xa7, 0xb0, 0xf1, 0x0f, 0x09, 0xca, 0xa3, 0x93, 0x39, 0xe9, 0xbd, 0x58, 0xcc, 0xa6, 0x1c, 0xcf, + 0x66, 0x72, 0x3c, 0xa6, 0xd2, 0xe2, 0x21, 0x66, 0x23, 0x1f, 0xce, 0xc6, 0x2d, 0x28, 0x78, 0x98, + 0x74, 0xdb, 0x7e, 0xa9, 0xc0, 0x18, 0x7a, 0x9e, 0x31, 0x74, 0x00, 0x16, 0x13, 0x57, 0x0f, 0x14, + 0xd4, 0x3f, 0x73, 0x70, 0xb5, 0x3e, 0x40, 0x4b, 0xc3, 0x79, 0x8a, 0xf3, 0x97, 0x7a, 0xe3, 0x16, + 0xcf, 0xa6, 0x1c, 0x39, 0x9b, 0xe3, 0xcf, 0x1f, 0x81, 0x95, 0x4e, 0x38, 0x1b, 0x4f, 0x70, 0x4f, + 0x38, 0x80, 0xf7, 0x19, 0xbc, 0x0c, 0x28, 0xaa, 0x5a, 0xcc, 0x8c, 0x9e, 0x62, 0x5a, 0xd9, 0x07, + 0x14, 0xd7, 0x8e, 0x66, 0x51, 0xca, 0x9a, 0xc5, 0x5c, 0x5a, 0x16, 0xd5, 0x1f, 0x25, 0xb8, 0x36, + 0xde, 0xf5, 0x89, 0x28, 0xd7, 0x80, 0x25, 0x62, 0xd9, 0x66, 0x1b, 0x0f, 0x80, 0x30, 0x4e, 0xf0, + 0xb7, 0xf6, 0x15, 0x5e, 0xb5, 0xc4, 0xf9, 0xc1, 0x86, 0x5c, 0x51, 0x4f, 0x5a, 0xad, 0xfe, 0x9a, + 0x83, 0xd5, 0x51, 0xab, 0x26, 0xf0, 0xd3, 0x4b, 0xab, 0xaf, 0xdc, 0xd3, 0x37, 0xc7, 0x7a, 0x7a, + 0xfa, 0xe2, 0x3a, 0x15, 0x4b, 0xe4, 0x59, 0x95, 0x9b, 0x9f, 0x25, 0xb8, 0x3a, 0xf6, 0x32, 0x33, + 0xe1, 0x05, 0xb1, 0x48, 0xba, 0xcd, 0x26, 0x26, 0x44, 0x08, 0x26, 0x62, 0xc1, 0x64, 0xb6, 0xfb, + 0x8f, 0x7c, 0x5d, 0x54, 0x43, 0xeb, 0x00, 0xfb, 0x86, 0xd5, 0xc6, 0x2d, 0xb6, 0x68, 0x2a, 0x75, + 0x91, 0xa0, 0xa5, 0xfe, 0x2e, 0xc3, 0x8d, 0x1a, 0x6e, 0x63, 0x1f, 0xbf, 0xd2, 0x75, 0xe4, 0xe5, + 0x98, 0x3a, 0xf2, 0x16, 0x83, 0x99, 0x0d, 0xc8, 0x49, 0x4a, 0xc9, 0x4f, 0xd2, 0xd9, 0xd4, 0x12, + 0xb4, 0x33, 0xfa, 0x20, 0x8d, 0xa4, 0x64, 0xf2, 0x4a, 0xf5, 0x17, 0x09, 0x6e, 0x66, 0x8a, 0xc8, + 0x2b, 0x4e, 0x51, 0x07, 0xe6, 0x43, 0x93, 0xe8, 0x0e, 0xcc, 0xe2, 0xfe, 0x40, 0xd0, 0xc1, 0x3d, + 0x17, 0xb1, 0x31, 0x54, 0x10, 0xa1, 0xe5, 0xd2, 0xa0, 0xc9, 0xa1, 0x67, 0xf1, 0x6f, 0x39, 0x98, + 0x1d, 0x98, 0x42, 0x7b, 0x69, 0x99, 0x91, 0x98, 0xf7, 0xb7, 0xc2, 0x3b, 0x9f, 0xbe, 0x9e, 0xe5, + 0xb2, 0x92, 0x49, 0x4e, 0x25, 0x93, 0x1a, 0xb9, 0x2e, 0xf2, 0x12, 0x19, 0xbe, 0x10, 0x9e, 0x63, + 0x17, 0x50, 0xde, 0x5f, 0xca, 0xe1, 0x63, 0xe5, 0xe3, 0x13, 0xd6, 0xcc, 0x9b, 0xe1, 0x9a, 0x99, + 0x70, 0x4f, 0x11, 0x2a, 0x65, 0x0f, 0xe6, 0xc4, 0x29, 0x74, 0x0f, 0x66, 0x0e, 0x02, 0x39, 0x48, + 0xe0, 0x48, 0x82, 0x0f, 0x94, 0x4f, 0x9e, 0xcc, 0xf5, 0xaf, 0x00, 0xe4, 0x0e, 0x31, 0xd1, 0x33, + 0x58, 0x88, 0xf4, 0x84, 0xd1, 0xf5, 0x84, 0x3d, 0xe3, 0x7d, 0x68, 0xe5, 0x46, 0x16, 0x35, 0xe2, + 0x22, 0x07, 0x96, 0x9f, 0x76, 0xdb, 0xed, 0xe0, 0xb0, 0x6d, 0xf4, 0x1a, 0xf8, 0x90, 0xe5, 0xf7, + 0xbf, 0x09, 0xeb, 0x93, 0x14, 0xe9, 0x5e, 0xb7, 0x33, 0xeb, 0xb2, 0x73, 0x30, 0x1d, 0xf4, 0xbb, + 0xd0, 0x42, 0xf0, 0x90, 0xe9, 0xf7, 0x9e, 0x95, 0xc5, 0xf0, 0x00, 0x71, 0xd1, 0x0e, 0x40, 0x0d, + 0xb7, 0x35, 0x62, 0x72, 0xd2, 0x25, 0x6c, 0x34, 0x9c, 0xa6, 0x16, 0xae, 0x8c, 0xd1, 0x20, 0x2e, + 0xaa, 0xc3, 0x62, 0xb4, 0x13, 0x85, 0x4a, 0xfd, 0x4a, 0x1c, 0x6d, 0x2b, 0x29, 0x17, 0x53, 0x66, + 0x88, 0x8b, 0xd6, 0x60, 0xa6, 0xdf, 0xb4, 0x45, 0xdc, 0x73, 0xa1, 0x51, 0xac, 0x9c, 0x8f, 0x8c, + 0x10, 0x17, 0xdd, 0x87, 0x39, 0xb1, 0x0f, 0x8a, 0x96, 0x07, 0x0f, 0x39, 0xa1, 0x6b, 0xab, 0x5c, + 0x48, 0x18, 0xe5, 0x6e, 0x47, 0xbb, 0x95, 0x81, 0xdb, 0x09, 0x5d, 0xd1, 0xc0, 0xed, 0xc4, 0xf6, + 0x66, 0x1d, 0x16, 0xeb, 0xc9, 0x86, 0xea, 0xa9, 0x86, 0xea, 0x23, 0x0c, 0x25, 0x04, 0x32, 0xa1, + 0x3f, 0x27, 0x18, 0x8a, 0x05, 0xb2, 0xc6, 0x58, 0x2e, 0xb6, 0xa8, 0xd0, 0x7f, 0xfa, 0xda, 0x91, + 0x16, 0x98, 0x52, 0x4a, 0x9e, 0x20, 0x2e, 0x3a, 0x80, 0xd5, 0x51, 0xcf, 0x28, 0x74, 0x2d, 0xcb, + 0xb3, 0x59, 0xb9, 0x9e, 0x41, 0x8b, 0xb8, 0xe8, 0x08, 0xca, 0xe3, 0x2e, 0xd1, 0xa8, 0x92, 0xf5, + 0x99, 0xa0, 0xdc, 0xca, 0xa8, 0x49, 0x5c, 0x74, 0x08, 0xab, 0x0f, 0x5b, 0xad, 0x74, 0x94, 0x37, + 0x33, 0x76, 0xab, 0x94, 0x4a, 0x36, 0x45, 0xe2, 0xa2, 0xcf, 0xe0, 0x72, 0xe8, 0x8b, 0x9c, 0xb0, + 0xeb, 0xed, 0x13, 0xdc, 0x64, 0x94, 0x3b, 0xd9, 0x95, 0x89, 0xbb, 0x71, 0xe9, 0xa3, 0x8b, 0xdb, + 0x2e, 0xb6, 0xf7, 0xb6, 0x34, 0xe1, 0xef, 0xda, 0x0e, 0x31, 0xef, 0x77, 0x88, 0xf9, 0xbc, 0xc0, + 0xc4, 0xff, 0xff, 0x15, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x39, 0xdb, 0xfe, 0x17, 0x1e, 0x00, 0x00, }