Refactor code

This commit is contained in:
wenxu12345 2021-12-29 16:17:55 +08:00
parent 4e4bab2bf0
commit 4623b5d5db
4 changed files with 174 additions and 113 deletions

View File

@ -72,8 +72,13 @@ func ImportFriend(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()})
return return
} }
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
if resp.ErrCode == 0 {
for _, v := range RpcResp.UserIDResultList {
resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{v.UserID, v.Result})
}
}
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList}
log.NewInfo(req.OperationID, "ImportFriend api return ", resp) log.NewInfo(req.OperationID, "ImportFriend api return ", resp)
c.JSON(http.StatusOK, resp) c.JSON(http.StatusOK, resp)
} }

View File

@ -166,49 +166,52 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri
log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid) log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid)
c.ErrCode = constant.ErrAccess.ErrCode c.ErrCode = constant.ErrAccess.ErrCode
c.ErrMsg = constant.ErrAccess.ErrMsg c.ErrMsg = constant.ErrAccess.ErrMsg
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil for _, v := range req.FriendUserIDList {
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
}
resp.CommonResp = &c
return &resp, nil
} }
if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil { if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil {
log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID) log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID)
c.ErrCode = constant.ErrDB.ErrCode c.ErrCode = constant.ErrDB.ErrCode
c.ErrMsg = "this user not exists,cant not add friend" c.ErrMsg = "this user not exists,cant not add friend"
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil for _, v := range req.FriendUserIDList {
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
}
resp.CommonResp = &c
return &resp, nil
} }
for _, v := range req.FriendUserIDList { for _, v := range req.FriendUserIDList {
if _, fErr := imdb.GetUserByUserID(v); fErr != nil { if _, fErr := imdb.GetUserByUserID(v); fErr != nil {
c.ErrMsg = "some uid establish failed" resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
c.ErrCode = 408
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
} else { } else {
if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil {
//Establish two single friendship //Establish two single friendship
toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v}
err1 := imdb.InsertToFriend(&toInsertFollow) err1 := imdb.InsertToFriend(&toInsertFollow)
if err1 != nil { if err1 != nil {
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error())
c.ErrMsg = "some uid establish failed" resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
c.ErrCode = 408
continue continue
} }
toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID}
err2 := imdb.InsertToFriend(&toInsertFollow) err2 := imdb.InsertToFriend(&toInsertFollow)
if err2 != nil { if err2 != nil {
resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v)
log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error())
c.ErrMsg = "some uid establish failed" resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1})
c.ErrCode = 408
continue continue
} }
for _, v := range req.FriendUserIDList { for _, v := range req.FriendUserIDList {
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v)
resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0})
} }
} }
} }
} }
resp.CommonResp = &c resp.CommonResp.ErrCode = 0
log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp) log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp.String())
return &resp, nil return &resp, nil
} }

View File

@ -20,9 +20,13 @@ type ImportFriendReq struct {
OperationID string `json:"operationID" binding:"required"` OperationID string `json:"operationID" binding:"required"`
FromUserID string `json:"fromUserID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"`
} }
type UserIDResult struct {
UserID string `json:"userID" binding:"required"`
Result int32 `json:"result" binding:"required"`
}
type ImportFriendResp struct { type ImportFriendResp struct {
CommResp CommResp
Data []string `json:"data"` UserIDResultList []UserIDResult `json:"data"`
} }
type AddFriendReq struct { type AddFriendReq struct {

View File

@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (m *CommonResp) String() string { return proto.CompactTextString(m) }
func (*CommonResp) ProtoMessage() {} func (*CommonResp) ProtoMessage() {}
func (*CommonResp) Descriptor() ([]byte, []int) { func (*CommonResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{0} return fileDescriptor_friend_74665a4d507faa8c, []int{0}
} }
func (m *CommonResp) XXX_Unmarshal(b []byte) error { func (m *CommonResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommonResp.Unmarshal(m, b) return xxx_messageInfo_CommonResp.Unmarshal(m, b)
@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} }
func (m *CommID) String() string { return proto.CompactTextString(m) } func (m *CommID) String() string { return proto.CompactTextString(m) }
func (*CommID) ProtoMessage() {} func (*CommID) ProtoMessage() {}
func (*CommID) Descriptor() ([]byte, []int) { func (*CommID) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{1} return fileDescriptor_friend_74665a4d507faa8c, []int{1}
} }
func (m *CommID) XXX_Unmarshal(b []byte) error { func (m *CommID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommID.Unmarshal(m, b) return xxx_messageInfo_CommID.Unmarshal(m, b)
@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} }
func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) ProtoMessage() {}
func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{2} return fileDescriptor_friend_74665a4d507faa8c, []int{2}
} }
func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b)
@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} }
func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) ProtoMessage() {}
func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { func (*GetFriendInfoResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{3} return fileDescriptor_friend_74665a4d507faa8c, []int{3}
} }
func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b)
@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} }
func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) ProtoMessage() {}
func (*AddFriendReq) Descriptor() ([]byte, []int) { func (*AddFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{4} return fileDescriptor_friend_74665a4d507faa8c, []int{4}
} }
func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { func (m *AddFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) return xxx_messageInfo_AddFriendReq.Unmarshal(m, b)
@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} }
func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) ProtoMessage() {}
func (*AddFriendResp) Descriptor() ([]byte, []int) { func (*AddFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{5} return fileDescriptor_friend_74665a4d507faa8c, []int{5}
} }
func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { func (m *AddFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) return xxx_messageInfo_AddFriendResp.Unmarshal(m, b)
@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} }
func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) }
func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) ProtoMessage() {}
func (*ImportFriendReq) Descriptor() ([]byte, []int) { func (*ImportFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{6} return fileDescriptor_friend_74665a4d507faa8c, []int{6}
} }
func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b)
@ -370,9 +370,55 @@ func (m *ImportFriendReq) GetOpUserID() string {
return "" return ""
} }
type UserIDResult struct {
UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"`
Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *UserIDResult) Reset() { *m = UserIDResult{} }
func (m *UserIDResult) String() string { return proto.CompactTextString(m) }
func (*UserIDResult) ProtoMessage() {}
func (*UserIDResult) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_74665a4d507faa8c, []int{7}
}
func (m *UserIDResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserIDResult.Unmarshal(m, b)
}
func (m *UserIDResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_UserIDResult.Marshal(b, m, deterministic)
}
func (dst *UserIDResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_UserIDResult.Merge(dst, src)
}
func (m *UserIDResult) XXX_Size() int {
return xxx_messageInfo_UserIDResult.Size(m)
}
func (m *UserIDResult) XXX_DiscardUnknown() {
xxx_messageInfo_UserIDResult.DiscardUnknown(m)
}
var xxx_messageInfo_UserIDResult proto.InternalMessageInfo
func (m *UserIDResult) GetUserID() string {
if m != nil {
return m.UserID
}
return ""
}
func (m *UserIDResult) GetResult() int32 {
if m != nil {
return m.Result
}
return 0
}
type ImportFriendResp struct { type ImportFriendResp struct {
CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"`
FailedFriendUserIDList []string `protobuf:"bytes,2,rep,name=FailedFriendUserIDList" json:"FailedFriendUserIDList,omitempty"` UserIDResultList []*UserIDResult `protobuf:"bytes,2,rep,name=UserIDResultList" json:"UserIDResultList,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -382,7 +428,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} }
func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) }
func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) ProtoMessage() {}
func (*ImportFriendResp) Descriptor() ([]byte, []int) { func (*ImportFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{7} return fileDescriptor_friend_74665a4d507faa8c, []int{8}
} }
func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b)
@ -409,9 +455,9 @@ func (m *ImportFriendResp) GetCommonResp() *CommonResp {
return nil return nil
} }
func (m *ImportFriendResp) GetFailedFriendUserIDList() []string { func (m *ImportFriendResp) GetUserIDResultList() []*UserIDResult {
if m != nil { if m != nil {
return m.FailedFriendUserIDList return m.UserIDResultList
} }
return nil return nil
} }
@ -427,7 +473,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} }
func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) ProtoMessage() {}
func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{8} return fileDescriptor_friend_74665a4d507faa8c, []int{9}
} }
func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b)
@ -467,7 +513,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{}
func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) ProtoMessage() {}
func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{9} return fileDescriptor_friend_74665a4d507faa8c, []int{10}
} }
func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b)
@ -519,7 +565,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} }
func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) }
func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) ProtoMessage() {}
func (*GetFriendListReq) Descriptor() ([]byte, []int) { func (*GetFriendListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{10} return fileDescriptor_friend_74665a4d507faa8c, []int{11}
} }
func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b)
@ -559,7 +605,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} }
func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) }
func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) ProtoMessage() {}
func (*GetFriendListResp) Descriptor() ([]byte, []int) { func (*GetFriendListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{11} return fileDescriptor_friend_74665a4d507faa8c, []int{12}
} }
func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b)
@ -611,7 +657,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} }
func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) ProtoMessage() {}
func (*AddBlacklistReq) Descriptor() ([]byte, []int) { func (*AddBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{12} return fileDescriptor_friend_74665a4d507faa8c, []int{13}
} }
func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b)
@ -649,7 +695,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} }
func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) ProtoMessage() {}
func (*AddBlacklistResp) Descriptor() ([]byte, []int) { func (*AddBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{13} return fileDescriptor_friend_74665a4d507faa8c, []int{14}
} }
func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b)
@ -687,7 +733,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} }
func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) ProtoMessage() {}
func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{14} return fileDescriptor_friend_74665a4d507faa8c, []int{15}
} }
func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b)
@ -725,7 +771,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} }
func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) ProtoMessage() {}
func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{15} return fileDescriptor_friend_74665a4d507faa8c, []int{16}
} }
func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b)
@ -763,7 +809,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} }
func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) ProtoMessage() {}
func (*GetBlacklistReq) Descriptor() ([]byte, []int) { func (*GetBlacklistReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{16} return fileDescriptor_friend_74665a4d507faa8c, []int{17}
} }
func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b)
@ -803,7 +849,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} }
func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) }
func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) ProtoMessage() {}
func (*GetBlacklistResp) Descriptor() ([]byte, []int) { func (*GetBlacklistResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{17} return fileDescriptor_friend_74665a4d507faa8c, []int{18}
} }
func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b)
@ -855,7 +901,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} }
func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) }
func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) ProtoMessage() {}
func (*IsFriendReq) Descriptor() ([]byte, []int) { func (*IsFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{18} return fileDescriptor_friend_74665a4d507faa8c, []int{19}
} }
func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { func (m *IsFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) return xxx_messageInfo_IsFriendReq.Unmarshal(m, b)
@ -895,7 +941,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} }
func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) }
func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) ProtoMessage() {}
func (*IsFriendResp) Descriptor() ([]byte, []int) { func (*IsFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{19} return fileDescriptor_friend_74665a4d507faa8c, []int{20}
} }
func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { func (m *IsFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) return xxx_messageInfo_IsFriendResp.Unmarshal(m, b)
@ -947,7 +993,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} }
func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) ProtoMessage() {}
func (*IsInBlackListReq) Descriptor() ([]byte, []int) { func (*IsInBlackListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{20} return fileDescriptor_friend_74665a4d507faa8c, []int{21}
} }
func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b)
@ -987,7 +1033,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} }
func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) }
func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) ProtoMessage() {}
func (*IsInBlackListResp) Descriptor() ([]byte, []int) { func (*IsInBlackListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{21} return fileDescriptor_friend_74665a4d507faa8c, []int{22}
} }
func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b)
@ -1039,7 +1085,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} }
func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) ProtoMessage() {}
func (*DeleteFriendReq) Descriptor() ([]byte, []int) { func (*DeleteFriendReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{22} return fileDescriptor_friend_74665a4d507faa8c, []int{23}
} }
func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b)
@ -1077,7 +1123,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} }
func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) }
func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) ProtoMessage() {}
func (*DeleteFriendResp) Descriptor() ([]byte, []int) { func (*DeleteFriendResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{23} return fileDescriptor_friend_74665a4d507faa8c, []int{24}
} }
func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b)
@ -1118,7 +1164,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} }
func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) }
func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) ProtoMessage() {}
func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { func (*AddFriendResponseReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{24} return fileDescriptor_friend_74665a4d507faa8c, []int{25}
} }
func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b)
@ -1170,7 +1216,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} }
func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) }
func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) ProtoMessage() {}
func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { func (*AddFriendResponseResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{25} return fileDescriptor_friend_74665a4d507faa8c, []int{26}
} }
func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b)
@ -1209,7 +1255,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} }
func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) ProtoMessage() {}
func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{26} return fileDescriptor_friend_74665a4d507faa8c, []int{27}
} }
func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b)
@ -1254,7 +1300,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} }
func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) }
func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) ProtoMessage() {}
func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{27} return fileDescriptor_friend_74665a4d507faa8c, []int{28}
} }
func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b)
@ -1292,7 +1338,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} }
func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) }
func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) ProtoMessage() {}
func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{28} return fileDescriptor_friend_74665a4d507faa8c, []int{29}
} }
func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b)
@ -1332,7 +1378,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} }
func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) }
func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) ProtoMessage() {}
func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_friend_69e6f38cd215d5ef, []int{29} return fileDescriptor_friend_74665a4d507faa8c, []int{30}
} }
func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b)
@ -1381,6 +1427,7 @@ func init() {
proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq")
proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp") proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp")
proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq")
proto.RegisterType((*UserIDResult)(nil), "friend.UserIDResult")
proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp")
proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq") proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq")
proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp") proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp")
@ -1876,66 +1923,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{
Metadata: "friend/friend.proto", Metadata: "friend/friend.proto",
} }
func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_69e6f38cd215d5ef) } func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_74665a4d507faa8c) }
var fileDescriptor_friend_69e6f38cd215d5ef = []byte{ var fileDescriptor_friend_74665a4d507faa8c = []byte{
// 916 bytes of a gzipped FileDescriptorProto // 945 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x4f, 0xeb, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x8f, 0xdb, 0x44,
0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x0f, 0xa5, 0x3e, 0x54, 0x51, 0x14, 0x96, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x6d, 0x83, 0x77, 0x5b, 0x05, 0x1f,
0x0f, 0x89, 0x94, 0x8a, 0xaa, 0x94, 0xb6, 0x28, 0x10, 0x42, 0xdd, 0x96, 0x82, 0x0c, 0xbd, 0x54, 0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x5a, 0xd2, 0xcd, 0x66, 0x31, 0xb0, 0x6c, 0x35,
0x95, 0x90, 0xc1, 0x9b, 0xd4, 0x8a, 0x63, 0x2f, 0x5e, 0x53, 0xd4, 0x4b, 0x0f, 0x3d, 0xf4, 0x5a, 0x5b, 0x2e, 0x08, 0x69, 0xe5, 0xd6, 0x93, 0x60, 0xc5, 0xb1, 0xa7, 0x1e, 0x2f, 0x15, 0x57, 0x0e,
0xa9, 0xea, 0xed, 0x1d, 0xde, 0xbf, 0xfa, 0x64, 0xaf, 0x1d, 0xaf, 0x3f, 0x82, 0x9e, 0xcd, 0x93, 0x88, 0x1b, 0x12, 0xe2, 0xc6, 0x81, 0x7f, 0x15, 0x79, 0xc6, 0x8e, 0x67, 0x6c, 0x6f, 0x85, 0x5d,
0xde, 0x09, 0x66, 0x66, 0x7f, 0xe3, 0xf9, 0xda, 0xf9, 0x6d, 0xa0, 0x39, 0xb1, 0x75, 0x6c, 0x6a, 0xa4, 0x9e, 0x92, 0x37, 0xef, 0x87, 0xdf, 0xfb, 0xde, 0x9b, 0xf7, 0xd9, 0xd0, 0x5f, 0x05, 0x0e,
0x7d, 0xf6, 0xa7, 0x47, 0x6c, 0xcb, 0xb1, 0x50, 0x91, 0x49, 0xe2, 0xa7, 0x57, 0x04, 0x9b, 0x77, 0xf1, 0xec, 0xa9, 0xf8, 0x99, 0xd0, 0xc0, 0x0f, 0x7d, 0x54, 0x17, 0x92, 0xfe, 0xe1, 0x05, 0x25,
0xf2, 0x65, 0x9f, 0xcc, 0xa6, 0x7d, 0xcf, 0xd4, 0xa7, 0xda, 0xec, 0xee, 0x99, 0xf6, 0x9f, 0x29, 0xde, 0x95, 0x79, 0x3e, 0xa5, 0x9b, 0xf5, 0x94, 0xab, 0xa6, 0xcc, 0xde, 0x5c, 0xbd, 0x61, 0xd3,
0x3b, 0x2a, 0x7d, 0x07, 0x70, 0x66, 0xcd, 0xe7, 0x96, 0xa9, 0x60, 0x4a, 0x50, 0x1b, 0xd6, 0xb1, 0x37, 0x4c, 0x98, 0x1a, 0x4f, 0x00, 0x4e, 0xfc, 0xed, 0xd6, 0xf7, 0x30, 0x61, 0x14, 0x0d, 0xe1,
0x6d, 0x9f, 0x59, 0x1a, 0x6e, 0x0b, 0x1d, 0xa1, 0xbb, 0xa6, 0x04, 0x22, 0xda, 0x86, 0x22, 0xb6, 0x36, 0x09, 0x82, 0x13, 0xdf, 0x26, 0x43, 0x6d, 0xa4, 0x8d, 0xf7, 0x71, 0x22, 0xa2, 0x7b, 0x50,
0xed, 0x4b, 0x3a, 0x6d, 0xaf, 0x74, 0x84, 0x6e, 0x59, 0xf1, 0x25, 0xe9, 0x6f, 0x01, 0x8a, 0xae, 0x27, 0x41, 0x70, 0xce, 0xd6, 0xc3, 0x5b, 0x23, 0x6d, 0xdc, 0xc4, 0xb1, 0x64, 0xfc, 0xaa, 0x41,
0x03, 0x79, 0x84, 0x44, 0x28, 0x5d, 0x91, 0x5f, 0x28, 0xb6, 0xe5, 0x91, 0x87, 0x2e, 0x2b, 0x0b, 0x3d, 0x0a, 0x60, 0x2e, 0x90, 0x0e, 0x8d, 0x0b, 0xfa, 0x3d, 0x23, 0x81, 0xb9, 0xe0, 0xde, 0x4d,
0x19, 0x75, 0xa0, 0x72, 0x45, 0xb0, 0xad, 0x3a, 0xba, 0x65, 0xca, 0x23, 0xdf, 0x07, 0xaf, 0x72, 0xbc, 0x93, 0xd1, 0x08, 0x5a, 0x17, 0x94, 0x04, 0x56, 0xe8, 0xf8, 0x9e, 0xb9, 0x88, 0x63, 0xc8,
0xd1, 0xb7, 0x96, 0x8f, 0x5e, 0x65, 0xe8, 0x40, 0x46, 0x07, 0x00, 0x63, 0xdb, 0x9a, 0xfb, 0xd6, 0x47, 0x91, 0xf7, 0x0b, 0x3f, 0xf6, 0xde, 0x13, 0xde, 0x89, 0x8c, 0x1e, 0x02, 0x2c, 0x03, 0x7f,
0x35, 0xcf, 0xca, 0x69, 0xa4, 0x63, 0x68, 0x5c, 0x60, 0x67, 0xec, 0x25, 0x4d, 0x65, 0x73, 0x62, 0x1b, 0x6b, 0xf7, 0xb9, 0x56, 0x3a, 0x31, 0x1e, 0x43, 0xef, 0x8c, 0x84, 0x4b, 0x5e, 0x34, 0x33,
0x29, 0xf8, 0x11, 0x7d, 0x16, 0x04, 0xe6, 0x05, 0x53, 0x19, 0x6c, 0xf6, 0xfc, 0x1a, 0x31, 0xad, 0xbd, 0x95, 0x8f, 0xc9, 0x6b, 0xf4, 0x51, 0x92, 0x18, 0x4f, 0xa6, 0x35, 0xbb, 0x3b, 0x89, 0x31,
0xe2, 0x5b, 0xa5, 0x7f, 0x04, 0x0e, 0xcd, 0xc0, 0xac, 0x12, 0xe7, 0xd1, 0x4a, 0x9c, 0x87, 0x95, 0x12, 0xa7, 0x38, 0xd6, 0x1a, 0xbf, 0x69, 0x92, 0xb7, 0x70, 0x16, 0x48, 0x9c, 0xaa, 0x48, 0x9c,
0x38, 0x8f, 0x54, 0x82, 0x49, 0xe8, 0x04, 0x36, 0x43, 0x1f, 0x3f, 0xe9, 0xd4, 0x69, 0x17, 0x3a, 0xa6, 0x48, 0x9c, 0x2a, 0x48, 0x08, 0x09, 0x3d, 0x85, 0xbb, 0x69, 0x8c, 0x6f, 0x1d, 0x16, 0x0e,
0x85, 0x6e, 0x65, 0xb0, 0xd3, 0xb3, 0xdc, 0x2e, 0xe8, 0xf3, 0x3b, 0xaa, 0xcd, 0x7a, 0xdc, 0x67, 0x6b, 0xa3, 0xda, 0xb8, 0x35, 0xbb, 0x3f, 0xf1, 0xa3, 0x2e, 0x38, 0xdb, 0x2b, 0x66, 0x6f, 0x26,
0x62, 0xc7, 0xa5, 0x9f, 0xa1, 0x3a, 0xd4, 0x34, 0xa6, 0xcc, 0x90, 0x80, 0x1b, 0x90, 0x82, 0x1f, 0xd2, 0x63, 0x32, 0xe6, 0xc6, 0x77, 0xd0, 0x9e, 0xdb, 0xb6, 0x38, 0x2c, 0x51, 0x40, 0x94, 0x10,
0xb9, 0x80, 0x98, 0x24, 0x9d, 0xc1, 0x06, 0xe7, 0x8f, 0x12, 0x34, 0xe0, 0x7b, 0xed, 0x3b, 0x45, 0x26, 0xaf, 0xa5, 0x84, 0x84, 0x64, 0x9c, 0xc0, 0x1d, 0x29, 0x1e, 0xa3, 0x68, 0x26, 0xf7, 0x3a,
0xbc, 0x53, 0x66, 0x51, 0xb8, 0x53, 0xd2, 0x1b, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x06, 0x0e, 0x8a, 0xe4, 0xa0, 0x42, 0x83, 0x25, 0x2b, 0xe3, 0x6f, 0x0d, 0x3a, 0xe6, 0x96, 0xfa, 0x41,
0xf6, 0x39, 0xd4, 0x99, 0xc0, 0xca, 0xef, 0xe5, 0x2a, 0x74, 0x0a, 0xdd, 0xb2, 0x92, 0xd0, 0xbf, 0x98, 0x26, 0xf6, 0x31, 0x74, 0x85, 0x20, 0xe0, 0xe7, 0xb5, 0x6a, 0xa3, 0xda, 0xb8, 0x89, 0x73,
0x47, 0xe3, 0xa3, 0xcd, 0x2d, 0xc4, 0x9b, 0x1b, 0x19, 0xab, 0xd5, 0xe8, 0x58, 0x49, 0x7f, 0x41, 0xe7, 0xff, 0xa1, 0xf1, 0x6a, 0x73, 0x6b, 0xd9, 0xe6, 0x2a, 0x63, 0xb5, 0xa7, 0x8e, 0x95, 0xf1,
0x3d, 0x1a, 0x5c, 0xbe, 0x2c, 0xd1, 0x97, 0xb0, 0x3d, 0x56, 0x75, 0x03, 0x6b, 0x89, 0xbc, 0x56, 0x04, 0xda, 0xe2, 0x1f, 0x26, 0xec, 0xda, 0x0d, 0x23, 0x28, 0x94, 0x01, 0x8c, 0x25, 0x01, 0x51,
0xbc, 0xbc, 0x96, 0x58, 0xa5, 0x13, 0xd8, 0x5a, 0x8c, 0xce, 0x90, 0x10, 0xe3, 0x4f, 0x57, 0x9b, 0x64, 0xc1, 0x13, 0xd8, 0xc7, 0xb1, 0x64, 0xfc, 0xae, 0x41, 0x57, 0xad, 0xae, 0x1a, 0x4c, 0xe8,
0x65, 0xf8, 0xfe, 0x17, 0x60, 0x3b, 0xcd, 0x43, 0xae, 0x09, 0xfc, 0x1e, 0x1a, 0x8b, 0x26, 0x3d, 0x4b, 0xe8, 0xca, 0x89, 0x70, 0x48, 0x6e, 0xf1, 0xf6, 0x0f, 0x12, 0x4f, 0x59, 0x8f, 0x73, 0xd6,
0x61, 0xea, 0x70, 0x43, 0x28, 0xa6, 0x0c, 0xa1, 0x7f, 0x4a, 0x49, 0x82, 0xa4, 0xaf, 0xa1, 0xbe, 0xc6, 0x53, 0x38, 0xd8, 0x4d, 0xe1, 0x9c, 0x52, 0xf7, 0x97, 0xe8, 0xb4, 0xcc, 0x1c, 0xff, 0xa5,
0x88, 0x2a, 0x6b, 0x4a, 0x91, 0xfb, 0xf4, 0x8a, 0x6c, 0x5e, 0x7d, 0x9f, 0x8e, 0xa0, 0x36, 0xd4, 0xc1, 0xbd, 0xa2, 0x08, 0x95, 0x86, 0xf9, 0x2b, 0xe8, 0xed, 0xfa, 0x7d, 0x4d, 0x58, 0x28, 0xcd,
0xb4, 0x53, 0x43, 0x7d, 0x98, 0x19, 0x19, 0x73, 0x18, 0x43, 0x3d, 0x0a, 0xcd, 0x79, 0x7b, 0xbe, 0xb3, 0x5e, 0x30, 0xcf, 0xb1, 0x15, 0xce, 0x3b, 0x19, 0x9f, 0x41, 0x77, 0x97, 0x55, 0xd9, 0x92,
0x01, 0xa4, 0xe0, 0xb9, 0xf5, 0x07, 0xce, 0x15, 0x85, 0x0c, 0xcd, 0x04, 0x3a, 0x67, 0x20, 0x47, 0x94, 0xab, 0xf9, 0x0e, 0xd5, 0xbc, 0xf3, 0xd5, 0x3c, 0x86, 0xce, 0xdc, 0xb6, 0x9f, 0xb9, 0xd6,
0x50, 0xbb, 0xc0, 0x4e, 0xae, 0x28, 0xfe, 0x15, 0xbc, 0x61, 0x88, 0xc6, 0x90, 0xbd, 0x9d, 0x32, 0xab, 0x8d, 0x5b, 0xb2, 0x86, 0x25, 0x74, 0x55, 0xd7, 0x8a, 0x17, 0xf1, 0x73, 0x40, 0x98, 0x6c,
0x34, 0x3c, 0x17, 0xde, 0xed, 0x89, 0x76, 0x74, 0x37, 0xd2, 0xd1, 0xeb, 0xa7, 0x7b, 0x43, 0x7f, 0xfd, 0x9f, 0x49, 0xa5, 0x2c, 0x4c, 0xe8, 0xe7, 0xbc, 0x2b, 0x26, 0x72, 0x0c, 0x9d, 0x33, 0x12,
0x08, 0x8e, 0x29, 0x49, 0x94, 0x74, 0x08, 0x15, 0x99, 0x66, 0xde, 0x93, 0xd2, 0x6f, 0x50, 0x0d, 0x56, 0xca, 0xe2, 0x0f, 0x8d, 0x0f, 0x83, 0x9a, 0x43, 0xf9, 0x76, 0x9a, 0xd0, 0xe3, 0x21, 0xf8,
0x61, 0xb9, 0x72, 0x10, 0xa1, 0xe4, 0x22, 0x2d, 0x93, 0x62, 0x6f, 0x51, 0x95, 0x94, 0x85, 0xec, 0x1d, 0x52, 0x3b, 0x7a, 0xa8, 0x74, 0xf4, 0xf9, 0xf5, 0x4b, 0xd7, 0x79, 0x95, 0x98, 0xe1, 0xbc,
0x5e, 0x19, 0x99, 0xca, 0xa6, 0x17, 0x6d, 0xd6, 0x2b, 0xa3, 0x42, 0x23, 0x86, 0xfd, 0xe0, 0xe1, 0x97, 0xf1, 0x08, 0x5a, 0x26, 0x2b, 0xbd, 0x72, 0x8d, 0x1f, 0xa1, 0x9d, 0xba, 0x55, 0xaa, 0x41,
0x1d, 0x41, 0x6d, 0x84, 0x0d, 0xec, 0xe0, 0xec, 0x75, 0x1b, 0x43, 0x3d, 0x0a, 0xcd, 0x39, 0x83, 0x87, 0x46, 0xe4, 0xe9, 0x7b, 0x8c, 0xf0, 0x9d, 0xd7, 0xc0, 0x3b, 0x39, 0xba, 0x32, 0x26, 0x33,
0x04, 0x5a, 0x11, 0x3e, 0x72, 0xe3, 0xca, 0xc2, 0x73, 0x08, 0x56, 0x27, 0x86, 0xca, 0x92, 0x5e, 0x3d, 0x9e, 0x6d, 0xd9, 0x2b, 0x63, 0x41, 0x2f, 0xe3, 0xfb, 0xbf, 0xa7, 0x77, 0x0c, 0x9d, 0x05,
0x53, 0xbc, 0xff, 0xd1, 0x1e, 0x94, 0x7f, 0x57, 0x4d, 0xcd, 0xc0, 0x6e, 0x35, 0x18, 0x77, 0x84, 0x71, 0x49, 0x48, 0xca, 0xe3, 0xb6, 0x84, 0xae, 0xea, 0x5a, 0x71, 0x06, 0x29, 0x0c, 0x14, 0x6a,
0x0a, 0xe9, 0x47, 0xd8, 0x4a, 0xf9, 0x62, 0xce, 0xf0, 0x6f, 0x01, 0xdd, 0xe0, 0x05, 0xd1, 0xcc, 0x8b, 0xf2, 0x2a, 0x43, 0x99, 0x08, 0xf6, 0x56, 0xae, 0xb5, 0x8e, 0xd9, 0x80, 0xff, 0x47, 0x47,
0x55, 0x7b, 0x96, 0x99, 0xa4, 0x5d, 0x50, 0x48, 0xd2, 0xae, 0xe4, 0xde, 0xf1, 0x84, 0xd7, 0x9c, 0xd0, 0xfc, 0xc9, 0xf2, 0x6c, 0x97, 0x44, 0x68, 0x08, 0x1a, 0x4a, 0x0f, 0x8c, 0x6f, 0xe0, 0xa0,
0x01, 0x7e, 0x0b, 0xcd, 0x0b, 0xec, 0xdc, 0x60, 0x63, 0x92, 0x8b, 0x8a, 0xfe, 0x13, 0xa0, 0x95, 0xe0, 0x89, 0x15, 0xd3, 0x7f, 0x01, 0xe8, 0x92, 0xec, 0x28, 0x67, 0x6b, 0x05, 0x9b, 0xd2, 0x7c,
0xc4, 0x7f, 0x5c, 0x22, 0x1a, 0xbc, 0x5d, 0x07, 0xff, 0x31, 0x8b, 0xbe, 0x82, 0xb2, 0x1a, 0x34, 0x1f, 0x39, 0xa5, 0x7c, 0x1f, 0x49, 0xd1, 0x1d, 0xcf, 0x45, 0xad, 0x98, 0xe0, 0x17, 0xd0, 0x3f,
0x13, 0xb5, 0x82, 0x24, 0xf8, 0x17, 0x93, 0xb8, 0x95, 0xa2, 0xa5, 0x04, 0xdd, 0x00, 0x9a, 0x26, 0x23, 0xe1, 0x25, 0x71, 0x57, 0x95, 0xa8, 0xe8, 0x4f, 0x0d, 0x06, 0x79, 0xff, 0xf7, 0x4b, 0x44,
0x38, 0x16, 0xed, 0x07, 0x87, 0x53, 0x19, 0x5c, 0x3c, 0x78, 0xc9, 0x4c, 0x09, 0xba, 0x84, 0xfa, 0xb3, 0x7f, 0x6e, 0x43, 0xfc, 0x5e, 0x8c, 0x3e, 0x85, 0xa6, 0x95, 0x34, 0x13, 0xed, 0x08, 0x5a,
0x34, 0x56, 0x2d, 0xb4, 0xcb, 0x61, 0xe2, 0x7d, 0x10, 0xf7, 0x96, 0x1b, 0x29, 0x41, 0x23, 0xd8, 0x7e, 0xf9, 0xd2, 0x0f, 0x0a, 0x4e, 0x19, 0x45, 0x97, 0x80, 0xd6, 0x39, 0x8e, 0x45, 0x0f, 0x12,
0x98, 0xf2, 0xa4, 0x89, 0xda, 0x89, 0xef, 0x07, 0x8e, 0x3e, 0x59, 0x62, 0xa1, 0x04, 0x0d, 0xa1, 0xe3, 0x42, 0x06, 0xd7, 0x1f, 0xbe, 0x4d, 0xcd, 0x28, 0x3a, 0x87, 0xee, 0x3a, 0x83, 0x16, 0x3a,
0xaa, 0x72, 0xbc, 0x85, 0x76, 0xb8, 0x82, 0xf0, 0xcb, 0x5f, 0x6c, 0xa7, 0x1b, 0x28, 0x41, 0x3f, 0x94, 0x7c, 0xb2, 0x7d, 0xd0, 0x8f, 0x6e, 0x56, 0x32, 0x8a, 0x16, 0x70, 0x67, 0x2d, 0x93, 0x26,
0x40, 0xcd, 0x8e, 0x92, 0x0e, 0x12, 0x83, 0xc3, 0x49, 0x2e, 0x13, 0x77, 0x97, 0xda, 0x28, 0x41, 0x1a, 0xe6, 0x9e, 0x9f, 0x04, 0xfa, 0xe0, 0x06, 0x0d, 0xa3, 0x68, 0x0e, 0x6d, 0x4b, 0xe2, 0x2d,
0x87, 0x50, 0xd2, 0xfd, 0x8d, 0x8b, 0x9a, 0xc1, 0x41, 0x6e, 0x75, 0x8b, 0xad, 0xa4, 0x92, 0xd5, 0x74, 0x5f, 0x02, 0x44, 0x5e, 0xfe, 0xfa, 0xb0, 0x58, 0xc1, 0x28, 0xfa, 0x1a, 0x3a, 0x81, 0x4a,
0x42, 0xe7, 0xd7, 0x61, 0x58, 0x8b, 0xf8, 0x86, 0x0d, 0x6b, 0x91, 0xdc, 0x9f, 0x43, 0xa8, 0x4e, 0x3a, 0x48, 0x4f, 0x8c, 0xf3, 0x5c, 0xa6, 0x1f, 0xde, 0xa8, 0x63, 0x14, 0x3d, 0x82, 0x86, 0x13,
0x39, 0xda, 0x0a, 0x6b, 0x11, 0x23, 0x42, 0xb1, 0x9d, 0x6e, 0x60, 0x2e, 0x34, 0x6e, 0xf3, 0x85, 0x6f, 0x5c, 0xd4, 0x4f, 0x0c, 0xa5, 0xd5, 0xad, 0x0f, 0xf2, 0x87, 0x02, 0x0b, 0x47, 0x5e, 0x87,
0x2e, 0x62, 0xab, 0x34, 0x74, 0x91, 0x58, 0x94, 0xd7, 0xd0, 0x50, 0xe3, 0x2b, 0x08, 0xed, 0xa5, 0x29, 0x16, 0xd9, 0x0d, 0x9b, 0x62, 0x91, 0xdf, 0x9f, 0x73, 0x68, 0xaf, 0x25, 0xda, 0x4a, 0xb1,
0xce, 0xa9, 0xbf, 0x0f, 0xc5, 0xfd, 0x17, 0xac, 0xac, 0x41, 0x34, 0xba, 0x31, 0xc2, 0x06, 0x25, 0xc8, 0x10, 0xa1, 0x3e, 0x2c, 0x56, 0x88, 0x10, 0xb6, 0xb4, 0xf9, 0xd2, 0x10, 0x99, 0x55, 0x9a,
0x17, 0x54, 0xd8, 0xa0, 0xb4, 0x35, 0x33, 0x84, 0xaa, 0xce, 0xbd, 0x9f, 0xc3, 0x04, 0x63, 0x4f, 0x86, 0xc8, 0x2d, 0xca, 0xe7, 0xd0, 0xb3, 0xb2, 0x2b, 0x08, 0x1d, 0x15, 0xce, 0x69, 0xbc, 0x0f,
0xfe, 0x30, 0xc1, 0xf8, 0x73, 0xfb, 0xb4, 0xf1, 0x6b, 0xad, 0xe7, 0xff, 0xfa, 0x3c, 0x66, 0x7f, 0xf5, 0x07, 0x6f, 0xd1, 0x8a, 0x06, 0x31, 0x75, 0x63, 0xa4, 0x0d, 0xca, 0x2f, 0xa8, 0xb4, 0x41,
0xee, 0x8b, 0xde, 0x4f, 0xcb, 0x2f, 0xde, 0x05, 0x00, 0x00, 0xff, 0xff, 0x85, 0x71, 0x6d, 0x1b, 0x45, 0x6b, 0x66, 0x0e, 0x6d, 0x47, 0x7a, 0x93, 0x4e, 0x0b, 0xcc, 0x7c, 0x3d, 0xa4, 0x05, 0x66,
0x9c, 0x0e, 0x00, 0x00, 0x5f, 0xbc, 0x9f, 0xf5, 0x7e, 0xe8, 0x4c, 0xe2, 0x0f, 0xd9, 0xc7, 0xe2, 0xe7, 0x65, 0x9d, 0x7f,
0xa5, 0x7e, 0xf2, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x16, 0xf8, 0xb5, 0xe7, 0x0e, 0x00,
0x00,
} }