Merge remote-tracking branch 'origin/tuoyun' into tuoyun

This commit is contained in:
Gordon 2021-12-28 20:44:58 +08:00
commit e80c5c89e0
12 changed files with 191 additions and 170 deletions

View File

@ -81,6 +81,6 @@ func UserToken(c *gin.Context) {
resp := api.UserTokenResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}, resp := api.UserTokenResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg},
UserToken: api.UserTokenInfo{UserID: req.FromUserID, Token: reply.Token, ExpiredTime: reply.ExpiredTime}} UserToken: api.UserTokenInfo{UserID: req.FromUserID, Token: reply.Token, ExpiredTime: reply.ExpiredTime}}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.OperationID, "UserRegister return ", resp) log.NewInfo(req.OperationID, "UserRegister return ", resp)
c.JSON(http.StatusOK, resp)
} }

View File

@ -17,12 +17,12 @@ import (
func AddBlacklist(c *gin.Context) { func AddBlacklist(c *gin.Context) {
params := api.AddBlacklistReq{} params := api.AddBlacklistReq{}
if err := c.BindJSON(&params); err != nil { if err := c.BindJSON(&params); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
log.NewError("0", "BindJSON failed ", err.Error()) log.NewError("0", "BindJSON failed ", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
return return
} }
req := &rpc.AddBlacklistReq{} req := &rpc.AddBlacklistReq{}
utils.CopyStructFields(req.CommID, params) utils.CopyStructFields(req.CommID, &params)
var ok bool var ok bool
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -41,20 +41,19 @@ func AddBlacklist(c *gin.Context) {
return return
} }
resp := api.AddBlacklistResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} resp := api.AddBlacklistResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.CommID.OperationID, "AddBlacklist api return ", resp) log.NewInfo(req.CommID.OperationID, "AddBlacklist api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func ImportFriend(c *gin.Context) { func ImportFriend(c *gin.Context) {
params := api.ImportFriendReq{} params := api.ImportFriendReq{}
if err := c.BindJSON(&params); err != nil { if err := c.BindJSON(&params); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
log.NewError("0", "BindJSON failed ", err.Error()) log.NewError("0", "BindJSON failed ", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
return return
} }
req := &rpc.ImportFriendReq{} req := &rpc.ImportFriendReq{}
utils.CopyStructFields(req, params) utils.CopyStructFields(req, &params)
var ok bool var ok bool
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -74,8 +73,8 @@ func ImportFriend(c *gin.Context) {
} }
resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList} resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.OperationID, "ImportFriend api return ", resp) log.NewInfo(req.OperationID, "ImportFriend api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func AddFriend(c *gin.Context) { func AddFriend(c *gin.Context) {
@ -106,8 +105,8 @@ func AddFriend(c *gin.Context) {
} }
resp := api.AddFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} resp := api.AddFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp) log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func AddFriendResponse(c *gin.Context) { func AddFriendResponse(c *gin.Context) {
@ -118,7 +117,7 @@ func AddFriendResponse(c *gin.Context) {
return return
} }
req := &rpc.AddFriendResponseReq{} req := &rpc.AddFriendResponseReq{}
utils.CopyStructFields(req.CommID, params) utils.CopyStructFields(req.CommID, &params)
var ok bool var ok bool
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -126,7 +125,7 @@ func AddFriendResponse(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
return return
} }
utils.CopyStructFields(&req, params) utils.CopyStructFields(&req, &params)
log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String())
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
@ -139,8 +138,8 @@ func AddFriendResponse(c *gin.Context) {
} }
resp := api.AddFriendResponseResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} resp := api.AddFriendResponseResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp) log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func DeleteFriend(c *gin.Context) { func DeleteFriend(c *gin.Context) {
@ -151,7 +150,7 @@ func DeleteFriend(c *gin.Context) {
return return
} }
req := &rpc.DeleteFriendReq{} req := &rpc.DeleteFriendReq{}
utils.CopyStructFields(req.CommID, params) utils.CopyStructFields(req.CommID, &params)
var ok bool var ok bool
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -171,8 +170,8 @@ func DeleteFriend(c *gin.Context) {
} }
resp := api.DeleteFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} resp := api.DeleteFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.CommID.OperationID, "DeleteFriend api return ", resp) log.NewInfo(req.CommID.OperationID, "DeleteFriend api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func GetBlacklist(c *gin.Context) { func GetBlacklist(c *gin.Context) {
@ -183,7 +182,7 @@ func GetBlacklist(c *gin.Context) {
return return
} }
req := &rpc.GetBlacklistReq{} req := &rpc.GetBlacklistReq{}
utils.CopyStructFields(req.CommID, params) utils.CopyStructFields(req.CommID, &params)
var ok bool var ok bool
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -203,9 +202,13 @@ func GetBlacklist(c *gin.Context) {
} }
resp := api.GetBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} resp := api.GetBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}}
utils.CopyStructFields(&resp.BlackUserInfoList, RpcResp.BlackUserInfoList) for _, v := range RpcResp.BlackUserInfoList {
black := api.BlackUserInfo{}
utils.CopyStructFields(&black, v)
resp.BlackUserInfoList = append(resp.BlackUserInfoList, &black)
}
log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp) log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func SetFriendComment(c *gin.Context) { func SetFriendComment(c *gin.Context) {
@ -236,8 +239,9 @@ func SetFriendComment(c *gin.Context) {
return return
} }
resp := api.SetFriendCommentResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} resp := api.SetFriendCommentResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
c.JSON(http.StatusOK, resp)
log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func RemoveBlacklist(c *gin.Context) { func RemoveBlacklist(c *gin.Context) {

View File

@ -6,6 +6,7 @@ import (
"Open_IM/pkg/common/log" "Open_IM/pkg/common/log"
"Open_IM/pkg/common/token_verify" "Open_IM/pkg/common/token_verify"
"Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/grpc-etcdv3/getcdv3"
open_im_sdk "Open_IM/pkg/proto/sdk_ws"
rpc "Open_IM/pkg/proto/user" rpc "Open_IM/pkg/proto/user"
"Open_IM/pkg/utils" "Open_IM/pkg/utils"
"context" "context"
@ -17,6 +18,7 @@ import (
func GetUserInfo(c *gin.Context) { func GetUserInfo(c *gin.Context) {
params := api.GetUserInfoReq{} params := api.GetUserInfoReq{}
if err := c.BindJSON(&params); err != nil { if err := c.BindJSON(&params); err != nil {
log.NewError("0", "BindJSON failed ", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()})
return return
} }
@ -40,21 +42,21 @@ func GetUserInfo(c *gin.Context) {
return return
} }
resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: RpcResp.UserInfoList}
resp.UserInfoList = RpcResp.UserInfoList
c.JSON(http.StatusOK, resp)
log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) log.NewInfo(req.OperationID, "GetUserInfo api return ", resp)
c.JSON(http.StatusOK, resp)
} }
func UpdateUserInfo(c *gin.Context) { func UpdateUserInfo(c *gin.Context) {
params := api.GetUserInfoReq{} params := api.UpdateUserInfoReq{}
if err := c.BindJSON(&params); err != nil { if err := c.BindJSON(&params); err != nil {
log.NewError("0", "BindJSON failed ", err.Error())
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
return return
} }
req := &rpc.UpdateUserInfoReq{} req := &rpc.UpdateUserInfoReq{UserInfo: &open_im_sdk.UserInfo{}}
utils.CopyStructFields(&req, params) utils.CopyStructFields(req.UserInfo, &params)
req.OperationID = params.OperationID
var ok bool var ok bool
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
if !ok { if !ok {
@ -72,6 +74,7 @@ func UpdateUserInfo(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"})
return return
} }
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrCode, "errMsg": RpcResp.CommonResp.ErrMsg}) resp := api.UpdateUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}}
log.NewInfo(req.OperationID, "UpdateUserInfo api return ", RpcResp.CommonResp) log.NewInfo(req.OperationID, "UpdateUserInfo api return ", resp)
c.JSON(http.StatusOK, resp)
} }

View File

@ -48,7 +48,7 @@ func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbA
} }
log.NewInfo(req.OperationID, "rpc UserToken return ") log.NewInfo(req.OperationID, "rpc UserToken return ")
return &pbAuth.UserTokenResp{Token: tokens, ExpiredTime: expTime}, nil return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil
} }
type rpcAuth struct { type rpcAuth struct {

View File

@ -434,7 +434,6 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get
var userInfo sdkws.FriendRequest var userInfo sdkws.FriendRequest
utils.CopyStructFields(&userInfo, applyUserInfo) utils.CopyStructFields(&userInfo, applyUserInfo)
appleUserList = append(appleUserList, &userInfo) appleUserList = append(appleUserList, &userInfo)
} }
log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}) log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList})
return &pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}, nil return &pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}, nil

View File

@ -54,7 +54,7 @@ type GetBlackListReq struct {
} }
type GetBlackListResp struct { type GetBlackListResp struct {
CommResp CommResp
BlackUserInfoList []*blackUserInfo `json:"data"` BlackUserInfoList []*BlackUserInfo `json:"data"`
} }
//type PublicUserInfo struct { //type PublicUserInfo struct {
@ -64,7 +64,7 @@ type GetBlackListResp struct {
// Gender int32 `json:"gender"` // Gender int32 `json:"gender"`
//} //}
type blackUserInfo struct { type BlackUserInfo struct {
open_im_sdk.PublicUserInfo open_im_sdk.PublicUserInfo
} }

View File

@ -7,11 +7,11 @@ import (
type UserInfo struct { type UserInfo struct {
UserID string `json:"userID" binding:"required,min=1,max=64"` UserID string `json:"userID" binding:"required,min=1,max=64"`
Nickname string `json:"nickname" binding:"required,min=1,max=64"` Nickname string `json:"nickname" binding:"omitempty,min=1,max=64"`
FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"` FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"`
Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"`
PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"`
Birth string `json:"birth" binding:"omitempty,max=16"` Birth int64 `json:"birth" binding:"omitempty"`
Email string `json:"email" binding:"omitempty,max=64"` Email string `json:"email" binding:"omitempty,max=64"`
Ex string `json:"ex" binding:"omitempty,max=1024"` Ex string `json:"ex" binding:"omitempty,max=1024"`
} }

View File

@ -12,3 +12,12 @@ type GetUserInfoResp struct {
CommResp CommResp
UserInfoList []*open_im_sdk.UserInfo `json:"data"` UserInfoList []*open_im_sdk.UserInfo `json:"data"`
} }
type UpdateUserInfoReq struct {
UserInfo
OperationID string `json:"operationID" binding:"required"`
}
type UpdateUserInfoResp struct {
CommResp
}

View File

@ -140,7 +140,7 @@ type User struct {
FaceUrl string `gorm:"column:face_url"` FaceUrl string `gorm:"column:face_url"`
Gender int32 `gorm:"column:gender"` Gender int32 `gorm:"column:gender"`
PhoneNumber string `gorm:"column:phone_number"` PhoneNumber string `gorm:"column:phone_number"`
Birth string `gorm:"column:birth"` Birth time.Time `gorm:"column:birth"`
Email string `gorm:"column:email"` Email string `gorm:"column:email"`
Ex string `gorm:"column:ex"` Ex string `gorm:"column:ex"`
CreateTime time.Time `gorm:"column:create_time"` CreateTime time.Time `gorm:"column:create_time"`

View File

@ -33,6 +33,9 @@ func UserRegister(user User) error {
return err return err
} }
user.CreateTime = time.Now() user.CreateTime = time.Now()
if user.Birth != 0 {
user.Birth = utils.UnixSecondToTime(user.Birth)
}
err = dbConn.Table("user").Create(&user).Error err = dbConn.Table("user").Create(&user).Error
if err != nil { if err != nil {
@ -80,6 +83,9 @@ func UpdateUserInfo(user User) error {
if err != nil { if err != nil {
return err return err
} }
if user.Birth != 0 {
user.Birth = utils.UnixSecondToTime(user.Birth)
}
err = dbConn.Table("user").Where("user_id=?", user.UserID).Update(&user).Error err = dbConn.Table("user").Where("user_id=?", user.UserID).Update(&user).Error
return err return err
} }

View File

@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} }
func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (m *GroupInfo) String() string { return proto.CompactTextString(m) }
func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) ProtoMessage() {}
func (*GroupInfo) Descriptor() ([]byte, []int) { func (*GroupInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{0} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{0}
} }
func (m *GroupInfo) XXX_Unmarshal(b []byte) error { func (m *GroupInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupInfo.Unmarshal(m, b) return xxx_messageInfo_GroupInfo.Unmarshal(m, b)
@ -164,7 +164,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} }
func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) }
func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) ProtoMessage() {}
func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{1} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{1}
} }
func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b)
@ -269,7 +269,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} }
func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) } func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) }
func (*PublicUserInfo) ProtoMessage() {} func (*PublicUserInfo) ProtoMessage() {}
func (*PublicUserInfo) Descriptor() ([]byte, []int) { func (*PublicUserInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{2} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{2}
} }
func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b)
@ -330,7 +330,7 @@ type UserInfo struct {
FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"`
Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"`
PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"`
Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` Birth int64 `protobuf:"varint,6,opt,name=Birth" json:"Birth,omitempty"`
Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"`
Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"`
CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"` CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"`
@ -344,7 +344,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} }
func (m *UserInfo) String() string { return proto.CompactTextString(m) } func (m *UserInfo) String() string { return proto.CompactTextString(m) }
func (*UserInfo) ProtoMessage() {} func (*UserInfo) ProtoMessage() {}
func (*UserInfo) Descriptor() ([]byte, []int) { func (*UserInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{3} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{3}
} }
func (m *UserInfo) XXX_Unmarshal(b []byte) error { func (m *UserInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserInfo.Unmarshal(m, b) return xxx_messageInfo_UserInfo.Unmarshal(m, b)
@ -399,11 +399,11 @@ func (m *UserInfo) GetPhoneNumber() string {
return "" return ""
} }
func (m *UserInfo) GetBirth() string { func (m *UserInfo) GetBirth() int64 {
if m != nil { if m != nil {
return m.Birth return m.Birth
} }
return "" return 0
} }
func (m *UserInfo) GetEmail() string { func (m *UserInfo) GetEmail() string {
@ -451,7 +451,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} }
func (m *FriendInfo) String() string { return proto.CompactTextString(m) } func (m *FriendInfo) String() string { return proto.CompactTextString(m) }
func (*FriendInfo) ProtoMessage() {} func (*FriendInfo) ProtoMessage() {}
func (*FriendInfo) Descriptor() ([]byte, []int) { func (*FriendInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{4} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{4}
} }
func (m *FriendInfo) XXX_Unmarshal(b []byte) error { func (m *FriendInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendInfo.Unmarshal(m, b) return xxx_messageInfo_FriendInfo.Unmarshal(m, b)
@ -536,7 +536,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} }
func (m *BlackInfo) String() string { return proto.CompactTextString(m) } func (m *BlackInfo) String() string { return proto.CompactTextString(m) }
func (*BlackInfo) ProtoMessage() {} func (*BlackInfo) ProtoMessage() {}
func (*BlackInfo) Descriptor() ([]byte, []int) { func (*BlackInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{5} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{5}
} }
func (m *BlackInfo) XXX_Unmarshal(b []byte) error { func (m *BlackInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackInfo.Unmarshal(m, b) return xxx_messageInfo_BlackInfo.Unmarshal(m, b)
@ -617,7 +617,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} }
func (m *GroupRequest) String() string { return proto.CompactTextString(m) } func (m *GroupRequest) String() string { return proto.CompactTextString(m) }
func (*GroupRequest) ProtoMessage() {} func (*GroupRequest) ProtoMessage() {}
func (*GroupRequest) Descriptor() ([]byte, []int) { func (*GroupRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{6} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{6}
} }
func (m *GroupRequest) XXX_Unmarshal(b []byte) error { func (m *GroupRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupRequest.Unmarshal(m, b) return xxx_messageInfo_GroupRequest.Unmarshal(m, b)
@ -719,7 +719,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} }
func (m *FriendRequest) String() string { return proto.CompactTextString(m) } func (m *FriendRequest) String() string { return proto.CompactTextString(m) }
func (*FriendRequest) ProtoMessage() {} func (*FriendRequest) ProtoMessage() {}
func (*FriendRequest) Descriptor() ([]byte, []int) { func (*FriendRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{7} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{7}
} }
func (m *FriendRequest) XXX_Unmarshal(b []byte) error { func (m *FriendRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendRequest.Unmarshal(m, b) return xxx_messageInfo_FriendRequest.Unmarshal(m, b)
@ -818,7 +818,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe
func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) ProtoMessage() {}
func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{8} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{8}
} }
func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b)
@ -893,7 +893,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq
func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) } func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListReq) ProtoMessage() {} func (*PullMessageBySeqListReq) ProtoMessage() {}
func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{9} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{9}
} }
func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b)
@ -948,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} }
func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) ProtoMessage() {}
func (*PullMessageReq) Descriptor() ([]byte, []int) { func (*PullMessageReq) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{10} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{10}
} }
func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { func (m *PullMessageReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) return xxx_messageInfo_PullMessageReq.Unmarshal(m, b)
@ -1012,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} }
func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) ProtoMessage() {}
func (*PullMessageResp) Descriptor() ([]byte, []int) { func (*PullMessageResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{11} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{11}
} }
func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { func (m *PullMessageResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) return xxx_messageInfo_PullMessageResp.Unmarshal(m, b)
@ -1084,7 +1084,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {} func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{12} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{12}
} }
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@ -1116,7 +1116,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{13} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{13}
} }
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@ -1164,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} }
func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (m *GatherFormat) String() string { return proto.CompactTextString(m) }
func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) ProtoMessage() {}
func (*GatherFormat) Descriptor() ([]byte, []int) { func (*GatherFormat) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{14} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{14}
} }
func (m *GatherFormat) XXX_Unmarshal(b []byte) error { func (m *GatherFormat) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GatherFormat.Unmarshal(m, b) return xxx_messageInfo_GatherFormat.Unmarshal(m, b)
@ -1211,7 +1211,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} }
func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgResp) ProtoMessage() {} func (*UserSendMsgResp) ProtoMessage() {}
func (*UserSendMsgResp) Descriptor() ([]byte, []int) { func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{15} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{15}
} }
func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b)
@ -1280,7 +1280,7 @@ func (m *MsgData) Reset() { *m = MsgData{} }
func (m *MsgData) String() string { return proto.CompactTextString(m) } func (m *MsgData) String() string { return proto.CompactTextString(m) }
func (*MsgData) ProtoMessage() {} func (*MsgData) ProtoMessage() {}
func (*MsgData) Descriptor() ([]byte, []int) { func (*MsgData) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{16} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{16}
} }
func (m *MsgData) XXX_Unmarshal(b []byte) error { func (m *MsgData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgData.Unmarshal(m, b) return xxx_messageInfo_MsgData.Unmarshal(m, b)
@ -1441,7 +1441,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} }
func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) } func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) }
func (*OfflinePushInfo) ProtoMessage() {} func (*OfflinePushInfo) ProtoMessage() {}
func (*OfflinePushInfo) Descriptor() ([]byte, []int) { func (*OfflinePushInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{17} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{17}
} }
func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b)
@ -1508,7 +1508,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} }
func (m *TipsComm) String() string { return proto.CompactTextString(m) } func (m *TipsComm) String() string { return proto.CompactTextString(m) }
func (*TipsComm) ProtoMessage() {} func (*TipsComm) ProtoMessage() {}
func (*TipsComm) Descriptor() ([]byte, []int) { func (*TipsComm) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{18} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{18}
} }
func (m *TipsComm) XXX_Unmarshal(b []byte) error { func (m *TipsComm) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TipsComm.Unmarshal(m, b) return xxx_messageInfo_TipsComm.Unmarshal(m, b)
@ -1557,7 +1557,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} }
func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) } func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) }
func (*MemberEnterTips) ProtoMessage() {} func (*MemberEnterTips) ProtoMessage() {}
func (*MemberEnterTips) Descriptor() ([]byte, []int) { func (*MemberEnterTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{19} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{19}
} }
func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b)
@ -1612,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} }
func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) }
func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) ProtoMessage() {}
func (*MemberLeaveTips) Descriptor() ([]byte, []int) { func (*MemberLeaveTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{20} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{20}
} }
func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b)
@ -1667,7 +1667,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} }
func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) } func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) }
func (*MemberInvitedTips) ProtoMessage() {} func (*MemberInvitedTips) ProtoMessage() {}
func (*MemberInvitedTips) Descriptor() ([]byte, []int) { func (*MemberInvitedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{21} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{21}
} }
func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b)
@ -1729,7 +1729,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} }
func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) } func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) }
func (*MemberKickedTips) ProtoMessage() {} func (*MemberKickedTips) ProtoMessage() {}
func (*MemberKickedTips) Descriptor() ([]byte, []int) { func (*MemberKickedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{22} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{22}
} }
func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b)
@ -1792,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} }
func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) ProtoMessage() {}
func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{23} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{23}
} }
func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b)
@ -1861,7 +1861,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} }
func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) } func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) }
func (*GroupCreatedTips) ProtoMessage() {} func (*GroupCreatedTips) ProtoMessage() {}
func (*GroupCreatedTips) Descriptor() ([]byte, []int) { func (*GroupCreatedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{24} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{24}
} }
func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b)
@ -1922,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} }
func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) ProtoMessage() {}
func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{25} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{25}
} }
func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b)
@ -1976,7 +1976,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi
func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) }
func (*JoinGroupApplicationTips) ProtoMessage() {} func (*JoinGroupApplicationTips) ProtoMessage() {}
func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{26} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{26}
} }
func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b)
@ -2031,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi
func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) }
func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) ProtoMessage() {}
func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{27} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{27}
} }
func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b)
@ -2092,7 +2092,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} }
func (m *FriendApplication) String() string { return proto.CompactTextString(m) } func (m *FriendApplication) String() string { return proto.CompactTextString(m) }
func (*FriendApplication) ProtoMessage() {} func (*FriendApplication) ProtoMessage() {}
func (*FriendApplication) Descriptor() ([]byte, []int) { func (*FriendApplication) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{28} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{28}
} }
func (m *FriendApplication) XXX_Unmarshal(b []byte) error { func (m *FriendApplication) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplication.Unmarshal(m, b) return xxx_messageInfo_FriendApplication.Unmarshal(m, b)
@ -2145,7 +2145,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} }
func (m *FromToUserID) String() string { return proto.CompactTextString(m) } func (m *FromToUserID) String() string { return proto.CompactTextString(m) }
func (*FromToUserID) ProtoMessage() {} func (*FromToUserID) ProtoMessage() {}
func (*FromToUserID) Descriptor() ([]byte, []int) { func (*FromToUserID) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{29} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{29}
} }
func (m *FromToUserID) XXX_Unmarshal(b []byte) error { func (m *FromToUserID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FromToUserID.Unmarshal(m, b) return xxx_messageInfo_FromToUserID.Unmarshal(m, b)
@ -2191,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd
func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) ProtoMessage() {}
func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{30} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{30}
} }
func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b)
@ -2230,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio
func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) ProtoMessage() {}
func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{31} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{31}
} }
func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b)
@ -2271,7 +2271,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} }
func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) } func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) }
func (*FriendAddedTips) ProtoMessage() {} func (*FriendAddedTips) ProtoMessage() {}
func (*FriendAddedTips) Descriptor() ([]byte, []int) { func (*FriendAddedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{32} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{32}
} }
func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b)
@ -2324,7 +2324,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} }
func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) } func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) }
func (*FriendDeletedTips) ProtoMessage() {} func (*FriendDeletedTips) ProtoMessage() {}
func (*FriendDeletedTips) Descriptor() ([]byte, []int) { func (*FriendDeletedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{33} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{33}
} }
func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b)
@ -2362,7 +2362,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} }
func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) } func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) }
func (*BlackAddedTips) ProtoMessage() {} func (*BlackAddedTips) ProtoMessage() {}
func (*BlackAddedTips) Descriptor() ([]byte, []int) { func (*BlackAddedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{34} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{34}
} }
func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b)
@ -2400,7 +2400,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} }
func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) }
func (*BlackDeletedTips) ProtoMessage() {} func (*BlackDeletedTips) ProtoMessage() {}
func (*BlackDeletedTips) Descriptor() ([]byte, []int) { func (*BlackDeletedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{35} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{35}
} }
func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b)
@ -2438,7 +2438,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} }
func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) } func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*FriendInfoChangedTips) ProtoMessage() {} func (*FriendInfoChangedTips) ProtoMessage() {}
func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{36} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{36}
} }
func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b)
@ -2477,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} }
func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) }
func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) ProtoMessage() {}
func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) {
return fileDescriptor_ws_b7876bd3c094d103, []int{37} return fileDescriptor_ws_c6aceb61f76d5c8d, []int{37}
} }
func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b)
@ -2546,10 +2546,10 @@ func init() {
proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips")
} }
func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_b7876bd3c094d103) } func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c6aceb61f76d5c8d) }
var fileDescriptor_ws_b7876bd3c094d103 = []byte{ var fileDescriptor_ws_c6aceb61f76d5c8d = []byte{
// 1922 bytes of a gzipped FileDescriptorProto // 1923 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49,
0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4, 0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4,
0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38, 0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38,
@ -2580,95 +2580,95 @@ var fileDescriptor_ws_b7876bd3c094d103 = []byte{
0x68, 0x65, 0x68, 0x0c, 0x2d, 0x34, 0xd2, 0x41, 0x5a, 0xd6, 0x6c, 0x41, 0xab, 0x0e, 0x56, 0x74, 0x68, 0x65, 0x68, 0x0c, 0x2d, 0x34, 0xd2, 0x41, 0x5a, 0xd6, 0x6c, 0x41, 0xab, 0x0e, 0x56, 0x74,
0x07, 0xf7, 0xa1, 0xf6, 0x90, 0xd0, 0x80, 0x24, 0x3c, 0x60, 0x96, 0x27, 0xa9, 0x0d, 0x8e, 0x5b, 0x07, 0xf7, 0xa1, 0xf6, 0x90, 0xd0, 0x80, 0x24, 0x3c, 0x60, 0x96, 0x27, 0xa9, 0x0d, 0x8e, 0x5b,
0x9b, 0x1c, 0x77, 0x7f, 0x6b, 0x42, 0xe3, 0x23, 0x9b, 0xd6, 0x85, 0xd6, 0xe9, 0x79, 0x4c, 0xc9, 0x9b, 0x1c, 0x77, 0x7f, 0x6b, 0x42, 0xe3, 0x23, 0x9b, 0xd6, 0x85, 0xd6, 0xe9, 0x79, 0x4c, 0xc9,
0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0x2e, 0xb3, 0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0xce, 0xb3,
0x29, 0x08, 0x44, 0x8f, 0xe7, 0x7e, 0x28, 0x52, 0xd8, 0xf4, 0x04, 0x21, 0x23, 0xde, 0x28, 0xf6, 0x59, 0xf1, 0x04, 0x81, 0xe8, 0xf1, 0xdc, 0x0f, 0x45, 0x0a, 0x9b, 0x9e, 0x20, 0x64, 0xc4, 0x1b,
0x81, 0xbe, 0xb3, 0x9a, 0x6b, 0x3b, 0x6b, 0x3d, 0x30, 0xb0, 0x31, 0x30, 0xff, 0x32, 0x00, 0x4e, 0xc5, 0x3e, 0xd0, 0x77, 0x56, 0x73, 0x6d, 0x67, 0xad, 0x07, 0x06, 0x36, 0x06, 0xe6, 0x5f, 0x06,
0x92, 0x90, 0xd0, 0x80, 0x87, 0x66, 0x65, 0x4b, 0x1b, 0xeb, 0x5b, 0x7a, 0x1f, 0x6a, 0x1e, 0x99, 0xc0, 0x49, 0x12, 0x12, 0x1a, 0xf0, 0xd0, 0xac, 0x6c, 0x69, 0x63, 0x7d, 0x4b, 0xef, 0x43, 0xcd,
0xfb, 0xc9, 0x2c, 0x2f, 0x79, 0x41, 0xad, 0x18, 0x54, 0x59, 0x33, 0xe8, 0xfb, 0xb9, 0x1e, 0x94, 0x23, 0x73, 0x3f, 0x99, 0xe5, 0x25, 0x2f, 0xa8, 0x15, 0x83, 0x2a, 0x6b, 0x06, 0x7d, 0x3f, 0xd7,
0xc3, 0x43, 0xd5, 0xba, 0x7f, 0xfb, 0x9e, 0xd2, 0xf6, 0xee, 0xe5, 0xf9, 0xf1, 0x14, 0x46, 0xdc, 0x83, 0x72, 0x78, 0xa8, 0x5a, 0xf7, 0x6f, 0xdf, 0x53, 0xda, 0xde, 0xbd, 0x3c, 0x3f, 0x9e, 0xc2,
0x49, 0xbd, 0x20, 0x90, 0x05, 0x2b, 0x72, 0x5b, 0x02, 0x1b, 0xea, 0xb5, 0x76, 0x49, 0xbd, 0xd6, 0x88, 0x3b, 0xa9, 0x17, 0x04, 0xb2, 0x60, 0x45, 0x6e, 0x4b, 0x60, 0x43, 0xbd, 0xd6, 0x2e, 0xa9,
0x8b, 0x7a, 0xfd, 0xbb, 0x01, 0xcd, 0xc3, 0xc8, 0x1f, 0xcf, 0xb6, 0x74, 0x5a, 0x77, 0xce, 0x5c, 0xd7, 0x7a, 0x51, 0xaf, 0x7f, 0x37, 0xa0, 0x79, 0x18, 0xf9, 0xe3, 0xd9, 0x96, 0x4e, 0xeb, 0xce,
0x73, 0xae, 0x07, 0x3b, 0x5c, 0x5c, 0xee, 0x02, 0xf7, 0xbf, 0x75, 0xff, 0x9b, 0x9a, 0x7f, 0xfa, 0x99, 0x6b, 0xce, 0xf5, 0x60, 0x87, 0x8b, 0xcb, 0x5d, 0xe0, 0xfe, 0xb7, 0xee, 0x7f, 0x53, 0xf3,
0x06, 0xf1, 0xf4, 0x15, 0xba, 0xa3, 0xd5, 0x77, 0x3b, 0x6a, 0x5d, 0xe2, 0x68, 0xad, 0x70, 0xf4, 0x4f, 0xdf, 0x20, 0x9e, 0xbe, 0x42, 0x77, 0xb4, 0xfa, 0x6e, 0x47, 0xad, 0x4b, 0x1c, 0xad, 0x15,
0xd7, 0x26, 0xb4, 0x79, 0xb3, 0xf2, 0xc8, 0x32, 0x23, 0x2c, 0x7d, 0x6b, 0xed, 0x2b, 0x3d, 0xce, 0x8e, 0xfe, 0xda, 0x84, 0x36, 0x6f, 0x56, 0x1e, 0x59, 0x66, 0x84, 0xa5, 0x6f, 0xad, 0x7d, 0xa5,
0xd4, 0x7b, 0x9c, 0x0b, 0xed, 0x47, 0x3e, 0x0d, 0x22, 0xe2, 0x11, 0x96, 0x45, 0x69, 0x7e, 0x8e, 0xc7, 0x99, 0x7a, 0x8f, 0x73, 0xa1, 0xfd, 0xc8, 0xa7, 0x41, 0x44, 0x3c, 0xc2, 0xb2, 0x28, 0xcd,
0xa8, 0x98, 0x28, 0x8a, 0xe5, 0x80, 0x4d, 0xe5, 0x09, 0x22, 0x29, 0x74, 0x4a, 0xf0, 0xe1, 0x27, 0xcf, 0x11, 0x15, 0x13, 0x45, 0xb1, 0x1c, 0xb0, 0xa9, 0x3c, 0x41, 0x24, 0x85, 0x4e, 0x09, 0x3e,
0x61, 0x71, 0x09, 0xa0, 0x4e, 0x8f, 0x2c, 0x79, 0x48, 0x6b, 0x3c, 0xa4, 0x39, 0x59, 0xea, 0x94, 0xfc, 0x24, 0x2c, 0x2e, 0x01, 0xd4, 0xe9, 0x91, 0x25, 0x0f, 0xa9, 0xd8, 0x01, 0x39, 0x59, 0xea,
0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5, 0xe4, 0x94, 0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5,
0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b, 0x87, 0xe4, 0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b,
0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15, 0xbd, 0x87, 0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15,
0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d, 0x7d, 0xbd, 0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d,
0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc, 0x29, 0x7d, 0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc,
0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24, 0x47, 0x29, 0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24,
0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06, 0x82, 0x47, 0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06,
0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf, 0x4a, 0x82, 0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf,
0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0, 0xba, 0x4a, 0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0,
0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d, 0x9d, 0xba, 0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d,
0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77, 0x0e, 0x9d, 0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77,
0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9, 0xc2, 0x0e, 0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9,
0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b, 0x92, 0xc2, 0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b,
0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92, 0x69, 0x92, 0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92,
0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5, 0x6a, 0x69, 0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5,
0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb, 0x21, 0x6a, 0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb,
0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9, 0x86, 0x21, 0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9,
0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5, 0xb8, 0x86, 0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5,
0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d, 0xbe, 0xb8, 0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d,
0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b, 0x47, 0xbe, 0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b,
0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c, 0xa1, 0x47, 0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c,
0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49, 0x34, 0xa1, 0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49,
0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65, 0x25, 0x34, 0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65,
0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72, 0xc8, 0x25, 0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72,
0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc, 0x92, 0xc8, 0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc,
0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71, 0x32, 0x92, 0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71,
0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae, 0xa0, 0x32, 0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae,
0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58, 0x18, 0xa0, 0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58,
0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39, 0x5c, 0x18, 0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39,
0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7, 0x4a, 0x5c, 0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7,
0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1, 0xd3, 0x4a, 0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1,
0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc, 0xa9, 0xd3, 0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc,
0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44, 0xec, 0xa9, 0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44,
0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e, 0xef, 0xec, 0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e,
0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89, 0x42, 0xef, 0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89,
0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a, 0x8f, 0x42, 0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a,
0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f, 0x7f, 0x8f, 0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f,
0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a, 0xee, 0x7f, 0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a,
0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb, 0x86, 0xee, 0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb,
0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1, 0x1d, 0x86, 0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1,
0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e, 0x47, 0x1d, 0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e,
0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c, 0x5c, 0x47, 0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c,
0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4, 0xb0, 0x5c, 0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4,
0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06, 0x74, 0xb0, 0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06,
0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2, 0x5a, 0x74, 0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2,
0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5, 0xa7, 0x5a, 0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5,
0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4, 0x78, 0xa7, 0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4,
0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41, 0xde, 0x78, 0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41,
0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f, 0x0d, 0xde, 0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f,
0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d, 0x17, 0x0d, 0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d,
0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88, 0x58, 0x17, 0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88,
0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38, 0x9e, 0x58, 0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38,
0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec, 0x7f, 0x9e, 0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec,
0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37, 0x27, 0x7f, 0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37,
0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e, 0xa4, 0x27, 0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e,
0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83, 0x72, 0xa4, 0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83,
0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4, 0xfb, 0x72, 0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4,
0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d, 0xe0, 0xfb, 0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d,
0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31, 0x4e, 0xe0, 0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31,
0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35, 0xe1, 0x4e, 0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35,
0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d, 0x8f, 0xe1, 0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d,
0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2, 0x06, 0x8f, 0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2,
0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78, 0x4c, 0x06, 0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78,
0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d, 0xd5, 0x4c, 0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d,
0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47, 0xcc, 0xd5, 0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47,
0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08, 0x7e, 0xcc, 0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08,
0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5, 0x7d, 0x7e, 0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5,
0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe, 0x4a, 0x7d, 0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe,
0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35, 0xe1, 0x4a, 0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35,
0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26, 0x20, 0xe1, 0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26,
0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61, 0x5f, 0x20, 0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61,
0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12, 0x91, 0x5f, 0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12,
0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3, 0x02, 0x91, 0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3,
0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83, 0x9b, 0x02, 0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83,
0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59, 0xe3, 0x9b, 0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59,
0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x97, 0x0c, 0x33, 0xae, 0xd3, 0x1a, 0xe3, 0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x0b, 0x22, 0x82, 0xd3,
0x00, 0x00, 0x1a, 0x00, 0x00,
} }

View File

@ -48,7 +48,7 @@ message UserInfo{
string FaceUrl = 3; string FaceUrl = 3;
int32 Gender = 4; int32 Gender = 4;
string PhoneNumber = 5; string PhoneNumber = 5;
string Birth = 6; int64 Birth = 6;
string Email = 7; string Email = 7;
string Ex = 8; string Ex = 8;
int64 CreateTime = 9; int64 CreateTime = 9;