diff --git a/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
new file mode 100644
index 000000000..e5d8ed6fa
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
@@ -0,0 +1,37 @@
+---
+name: "\U0001F41E Bug"
+about: File a bug/issue
+title: "[BUG]
"
+labels: ''
+assignees: ''
+
+---
+
+
+
+### Environment:
+
+
+### Physical Memory Capacity:
+
+
+### Docker Image:
+
+
+### Code Version:
+
+
+### Component installation:
+
+
+
+### Log File:
+
+
+
+### screenshot:
+
diff --git a/.github/ISSUE_TEMPLATE/deployment-issues.md b/.github/ISSUE_TEMPLATE/deployment-issues.md
new file mode 100644
index 000000000..57d7cbcb7
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/deployment-issues.md
@@ -0,0 +1,36 @@
+---
+name: Deployment issues
+about: Deployment issues
+title: ''
+labels: ''
+assignees: ''
+
+---
+
+If you are deploying OpenIM for the first time
+
+
+
+```
+git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive
+```
+
+screenshot here
+
+```
+cd Open-IM-Server/script ; chmod +x *.sh ; ./env_check.sh
+```
+
+screenshot here
+
+```
+cd .. ; docker-compose up -d
+```
+
+screenshot here
+
+```
+cd script ; ./docker_check_service.sh
+```
+
+screenshot here
diff --git a/.github/ISSUE_TEMPLATE/update-.md b/.github/ISSUE_TEMPLATE/update-.md
new file mode 100644
index 000000000..ba8da7270
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/update-.md
@@ -0,0 +1,38 @@
+---
+name: 'update '
+about: update docker image
+title: update docker image
+labels: ''
+assignees: ''
+
+---
+
+```
+cd Open-IM-Server ; docker-compose down
+```
+
+screenshot here
+
+```
+git pull
+```
+
+screenshot here
+
+```
+docker-compose pull
+```
+
+screenshot here
+
+```
+chmod +x script/*.sh ; docker-compose up -d
+```
+
+screenshot here
+
+```
+cd script ; ./docker_check_service.sh
+```
+
+screenshot here
diff --git a/.gitignore b/.gitignore
index e4b74c4e9..3390267f4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ out-test
.github
.idea
+
deploy/open_im_demo
deploy/open_im_api
deploy/open_im_msg_gateway
diff --git a/README.md b/README.md
index ad3aa2129..4964bacb5 100644
--- a/README.md
+++ b/README.md
@@ -92,6 +92,7 @@ All images are available at https://hub.docker.com/r/lyt1123/open_im_server
4. Start docker-compose with one click(Docker automatically pulls all images)
```
+ cd Open-IM-Server
docker-compose up -d
```
@@ -99,6 +100,7 @@ All images are available at https://hub.docker.com/r/lyt1123/open_im_server
```
./docker_check_service.sh
+ ./check_all.sh
```

diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core
index a06dfeeda..a19440c3d 160000
--- a/cmd/Open-IM-SDK-Core
+++ b/cmd/Open-IM-SDK-Core
@@ -1 +1 @@
-Subproject commit a06dfeeda56815ac9a9bb401dd30ab12b374d658
+Subproject commit a19440c3d6e6504655934cc432d8420bb1909816
diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go
index 58378e119..2f93c97e8 100644
--- a/cmd/open_im_api/main.go
+++ b/cmd/open_im_api/main.go
@@ -67,7 +67,11 @@ func main() {
groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1
groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1
groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1
- groupRouterGroup.POST("/dismiss_group", group.DismissGroup)
+ groupRouterGroup.POST("/dismiss_group", group.DismissGroup) //
+ groupRouterGroup.POST("/mute_group_member", group.MuteGroupMember)
+ groupRouterGroup.POST("/cancel_mute_group_member", group.CancelMuteGroupMember) //MuteGroup
+ groupRouterGroup.POST("/mute_group", group.MuteGroup)
+ groupRouterGroup.POST("/cancel_mute_group", group.CancelMuteGroup)
}
//certificate
authRouterGroup := r.Group("/auth")
@@ -79,6 +83,7 @@ func main() {
thirdGroup := r.Group("/third")
{
thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential)
+ thirdGroup.POST("/ali_oss_credential", apiThird.AliOSSCredential)
thirdGroup.POST("/minio_storage_credential", apiThird.MinioStorageCredential)
thirdGroup.POST("/minio_upload", apiThird.MinioUploadFile)
}
@@ -119,13 +124,9 @@ func main() {
officeGroup.POST("/send_msg_to_tag", office.SendMsg2Tag)
officeGroup.POST("/get_send_tag_log", office.GetTagSendLogs)
}
-
apiThird.MinioInit()
log.NewPrivateLog("api")
ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port")
flag.Parse()
- err := r.Run(":" + strconv.Itoa(*ginPort))
- if err != nil {
- log.NewError("", utils.GetSelfFuncName(), "start gin failed", err.Error())
- }
+ r.Run(":" + strconv.Itoa(*ginPort))
}
diff --git a/config/config.yaml b/config/config.yaml
index 4f1c79279..7d864283c 100644
--- a/config/config.yaml
+++ b/config/config.yaml
@@ -19,7 +19,8 @@ mysql:
dbMaxLifeTime: 120
mongo:
- dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可
+ dbUri: ""#当dbUri值不为空则直接使用该值
+ dbAddress: [ 127.0.0.1:37017 ] #mongo地址 目前仅支持单机,默认即可
dbDirect: false
dbTimeout: 10
dbDatabase: openIM #mongo db 默认即可
@@ -91,9 +92,20 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申
minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化InitSDK,中 object_storage参数为minio
bucket: openim
location: us-east-1
- endpoint: http://43.128.5.63:9000
+ endpoint: http://127.0.0.1:9000
accessKeyID: user12345
secretAccessKey: key12345
+ ali: # ali oss
+ regionID: "oss-cn-beijing"
+ accessKeyID: ""
+ accessKeySecret: ""
+ stsEndpoint: "sts.cn-beijing.aliyun.com"
+ ossEndpoint: "oss-cn-beijing.aliyuncs.com"
+ bucket: "bucket1"
+ finalHost: "http://bucket1.oss-cn-beijing.aliyuncs.com"
+ stsDurationSeconds: 3600
+ OssRoleArn: "acs:ram::xxx:role/xxx"
+
rpcport: #rpc服务端口 默认即可
@@ -136,7 +148,7 @@ log:
rotationTime: 24
remainRotationCount: 3 #日志数量
#日志级别 6表示全都打印,测试阶段建议设置为6
- remainLogLevel: 6
+ remainLogLevel: 4
elasticSearchSwitch: false
elasticSearchAddr: [ 127.0.0.1:9201 ]
elasticSearchUser: ""
diff --git a/deploy/config.example.yaml b/deploy/config.example.yaml
index f0ae8314e..08d8858e4 100644
--- a/deploy/config.example.yaml
+++ b/deploy/config.example.yaml
@@ -19,6 +19,7 @@ mysql:
dbMaxLifeTime: 120
mongo:
+ dbUri: ""#当dbUri值不为空则直接使用该值
dbAddress: [ openim_mongo:27017 ]
dbDirect: false
dbTimeout: 10
diff --git a/docker-compose.yaml b/docker-compose.yaml
index f63b3c125..c67203773 100644
--- a/docker-compose.yaml
+++ b/docker-compose.yaml
@@ -32,6 +32,7 @@ services:
# - MONGO_INITDB_ROOT_USERNAME=openIM
# - MONGO_INITDB_ROOT_PASSWORD=openIM
+
#TZ: Asia/Shanghai
restart: always
@@ -93,7 +94,7 @@ services:
command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:2379 --advertise-client-urls http://0.0.0.0:2379 --listen-peer-urls http://0.0.0.0:2380 --initial-advertise-peer-urls http://0.0.0.0:2380 --initial-cluster etcd0=http://0.0.0.0:2380 --initial-cluster-token tkn --initial-cluster-state new
open_im_server:
- image: openim/open_im_server:v2.0.2
+ image: openim/open_im_server:v2.0.5
container_name: open_im_server
volumes:
- ./logs:/Open-IM-Server/logs
diff --git a/go.mod b/go.mod
index 4b9da4af5..f005f9ce0 100644
--- a/go.mod
+++ b/go.mod
@@ -7,6 +7,7 @@ require (
github.com/Shopify/toxiproxy v2.1.4+incompatible // indirect
github.com/alibabacloud-go/darabonba-openapi v0.1.11
github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8
+ github.com/alibabacloud-go/sts-20150401 v1.1.0
github.com/alibabacloud-go/tea v1.1.17
github.com/antonfisher/nested-logrus-formatter v1.3.0
github.com/bwmarrin/snowflake v0.3.0
@@ -21,7 +22,7 @@ require (
github.com/gin-gonic/gin v1.7.0
github.com/go-playground/validator/v10 v10.4.1
github.com/go-sql-driver/mysql v1.6.0 // indirect
- github.com/gogo/protobuf v1.3.2 // indirect
+ github.com/gogo/protobuf v1.3.2
github.com/golang-jwt/jwt/v4 v4.1.0
github.com/golang/protobuf v1.5.2
github.com/golang/snappy v0.0.4 // indirect
@@ -59,6 +60,7 @@ require (
google.golang.org/protobuf v1.27.1
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df
+ gopkg.in/ini.v1 v1.66.2 // indirect
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
sigs.k8s.io/yaml v1.2.0 // indirect
diff --git a/go.sum b/go.sum
index 1defffaf3..cec54f0ff 100644
--- a/go.sum
+++ b/go.sum
@@ -53,6 +53,7 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho=
+github.com/alibabacloud-go/darabonba-openapi v0.1.7/go.mod h1:6FV1Bt1AItYIlC2rVopPTumrRNtkfPBmrPVAZ8v2bLk=
github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8=
github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU=
github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA=
@@ -62,8 +63,11 @@ github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWw
github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8=
github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q=
github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE=
+github.com/alibabacloud-go/openapi-util v0.0.8/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0=
github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws=
+github.com/alibabacloud-go/sts-20150401 v1.1.0 h1:1yVyKz02ES6aKo3xVjmoPLBH1OAmmSqPkhKRdjEkmYs=
+github.com/alibabacloud-go/sts-20150401 v1.1.0/go.mod h1:QW4O/c7Hp4krHYt+6xwnoG8EyZW3V9GYkl6EgIBmxJc=
github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg=
github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4=
@@ -1095,6 +1099,8 @@ gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c=
gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
+gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI=
+gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw=
gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
diff --git a/internal/api/group/group.go b/internal/api/group/group.go
index 588858982..35365cc10 100644
--- a/internal/api/group/group.go
+++ b/internal/api/group/group.go
@@ -259,7 +259,7 @@ func CreateGroup(c *gin.Context) {
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
return
}
- req.OwnerUserID = req.OpUserID
+ req.OwnerUserID = params.OwnerUserID
req.OperationID = params.OperationID
log.NewInfo(req.OperationID, "CreateGroup args ", req.String())
@@ -568,3 +568,131 @@ func DismissGroup(c *gin.Context) {
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp)
c.JSON(http.StatusOK, resp)
}
+
+func MuteGroupMember(c *gin.Context) {
+ params := api.MuteGroupMemberReq{}
+ if err := c.BindJSON(¶ms); err != nil {
+ log.NewError("0", "BindJSON failed ", err.Error())
+ c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
+ return
+ }
+ req := &rpc.MuteGroupMemberReq{}
+ utils.CopyStructFields(req, ¶ms)
+ var ok bool
+ ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
+ if !ok {
+ log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
+ return
+ }
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String())
+
+ etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
+ client := rpc.NewGroupClient(etcdConn)
+ reply, err := client.MuteGroupMember(context.Background(), req)
+ if err != nil {
+ log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String())
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
+ return
+ }
+
+ resp := api.MuteGroupMemberResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}}
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp)
+ c.JSON(http.StatusOK, resp)
+}
+
+func CancelMuteGroupMember(c *gin.Context) {
+ params := api.CancelMuteGroupMemberReq{}
+ if err := c.BindJSON(¶ms); err != nil {
+ log.NewError("0", "BindJSON failed ", err.Error())
+ c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
+ return
+ }
+ req := &rpc.CancelMuteGroupMemberReq{}
+ utils.CopyStructFields(req, ¶ms)
+ var ok bool
+ ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
+ if !ok {
+ log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
+ return
+ }
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String())
+
+ etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
+ client := rpc.NewGroupClient(etcdConn)
+ reply, err := client.CancelMuteGroupMember(context.Background(), req)
+ if err != nil {
+ log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String())
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
+ return
+ }
+
+ resp := api.CancelMuteGroupMemberResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}}
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp)
+ c.JSON(http.StatusOK, resp)
+}
+
+func MuteGroup(c *gin.Context) {
+ params := api.MuteGroupReq{}
+ if err := c.BindJSON(¶ms); err != nil {
+ log.NewError("0", "BindJSON failed ", err.Error())
+ c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
+ return
+ }
+ req := &rpc.MuteGroupReq{}
+ utils.CopyStructFields(req, ¶ms)
+ var ok bool
+ ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
+ if !ok {
+ log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
+ return
+ }
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String())
+
+ etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
+ client := rpc.NewGroupClient(etcdConn)
+ reply, err := client.MuteGroup(context.Background(), req)
+ if err != nil {
+ log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String())
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
+ return
+ }
+
+ resp := api.MuteGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}}
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp)
+ c.JSON(http.StatusOK, resp)
+}
+
+func CancelMuteGroup(c *gin.Context) {
+ params := api.CancelMuteGroupReq{}
+ if err := c.BindJSON(¶ms); err != nil {
+ log.NewError("0", "BindJSON failed ", err.Error())
+ c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
+ return
+ }
+ req := &rpc.CancelMuteGroupReq{}
+ utils.CopyStructFields(req, ¶ms)
+ var ok bool
+ ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
+ if !ok {
+ log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
+ return
+ }
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api args ", req.String())
+
+ etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
+ client := rpc.NewGroupClient(etcdConn)
+ reply, err := client.CancelMuteGroup(context.Background(), req)
+ if err != nil {
+ log.NewError(req.OperationID, utils.GetSelfFuncName(), " failed ", req.String())
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
+ return
+ }
+
+ resp := api.CancelMuteGroupResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}}
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), " api return ", resp)
+ c.JSON(http.StatusOK, resp)
+}
diff --git a/internal/api/third/ali_oss_credential.go b/internal/api/third/ali_oss_credential.go
new file mode 100644
index 000000000..6f5bc7c04
--- /dev/null
+++ b/internal/api/third/ali_oss_credential.go
@@ -0,0 +1,95 @@
+package apiThird
+
+import (
+ api "Open_IM/pkg/base_info"
+ "Open_IM/pkg/common/config"
+ "Open_IM/pkg/common/constant"
+ "Open_IM/pkg/common/log"
+ "Open_IM/pkg/common/token_verify"
+ "fmt"
+ openapi "github.com/alibabacloud-go/darabonba-openapi/client"
+ sts20150401 "github.com/alibabacloud-go/sts-20150401/client"
+ "github.com/alibabacloud-go/tea/tea"
+ "github.com/fatih/structs"
+
+ //"github.com/fatih/structs"
+ "github.com/gin-gonic/gin"
+ "net/http"
+ "time"
+)
+
+var stsClient *sts20150401.Client
+
+/**
+ * 使用AK&SK初始化账号Client
+ * @param accessKeyId
+ * @param accessKeySecret
+ * @return Client
+ * @throws Exception
+ */
+func getStsClient() *sts20150401.Client {
+ if stsClient != nil {
+ return stsClient
+ }
+ conf := &openapi.Config{
+ // 您的AccessKey ID
+ AccessKeyId: tea.String(config.Config.Credential.Ali.AccessKeyID),
+ // 您的AccessKey Secret
+ AccessKeySecret: tea.String(config.Config.Credential.Ali.AccessKeySecret),
+ // Endpoint
+ Endpoint: tea.String(config.Config.Credential.Ali.StsEndpoint),
+ }
+ result, err := sts20150401.NewClient(conf)
+ if err != nil {
+ log.NewError("", "alists client初始化失败 ", err)
+ }
+ stsClient = result
+ return stsClient
+}
+
+func AliOSSCredential(c *gin.Context) {
+ req := api.OSSCredentialReq{}
+ if err := c.BindJSON(&req); err != nil {
+ log.NewError("0", "BindJSON failed ", err.Error())
+ c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
+ return
+ }
+ ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token"), req.OperationID)
+ if !ok {
+ log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
+ c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
+ return
+ }
+ log.NewInfo(req.OperationID, "AliOSSCredential args ", userID)
+
+ stsResp, err := getStsClient().AssumeRole(&sts20150401.AssumeRoleRequest{
+ DurationSeconds: tea.Int64(config.Config.Credential.Ali.StsDurationSeconds),
+ Policy: nil,
+ RoleArn: tea.String(config.Config.Credential.Ali.OssRoleArn),
+ RoleSessionName: tea.String(fmt.Sprintf("%s-%d", userID, time.Now().Unix())),
+ })
+
+ resp := api.OSSCredentialResp{}
+ if err != nil {
+ resp.ErrCode = constant.ErrTencentCredential.ErrCode
+ resp.ErrMsg = err.Error()
+ } else {
+ resp = api.OSSCredentialResp{
+ CommResp: api.CommResp{},
+ OssData: api.OSSCredentialRespData{
+ Endpoint: config.Config.Credential.Ali.OssEndpoint,
+ AccessKeyId: *stsResp.Body.Credentials.AccessKeyId,
+ AccessKeySecret: *stsResp.Body.Credentials.AccessKeySecret,
+ Token: *stsResp.Body.Credentials.SecurityToken,
+ Bucket: config.Config.Credential.Ali.Bucket,
+ FinalHost: config.Config.Credential.Ali.FinalHost,
+ },
+ Data: nil,
+ }
+ }
+
+ resp.Data = structs.Map(&resp.OssData)
+ log.NewInfo(req.OperationID, "AliOSSCredential return ", resp)
+
+ c.JSON(http.StatusOK, resp)
+}
diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go
index 7540d9830..804e8eb11 100644
--- a/internal/demo/register/set_password.go
+++ b/internal/demo/register/set_password.go
@@ -17,6 +17,7 @@ import (
type ParamsSetPassword struct {
Email string `json:"email"`
+ Name string `json:"name"`
PhoneNumber string `json:"phoneNumber"`
Password string `json:"password"`
VerificationCode string `json:"verificationCode"`
@@ -38,6 +39,9 @@ func SetPassword(c *gin.Context) {
} else {
account = params.PhoneNumber
}
+ if params.Name == "" {
+ params.Name = account
+ }
if params.VerificationCode != config.Config.Demo.SuperCode {
accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix
v, err := db.DB.GetAccountCode(accountKey)
@@ -54,7 +58,7 @@ func SetPassword(c *gin.Context) {
openIMRegisterReq.OperationID = params.OperationID
openIMRegisterReq.Platform = params.Platform
openIMRegisterReq.UserID = account
- openIMRegisterReq.Nickname = account
+ openIMRegisterReq.Nickname = params.Name
openIMRegisterReq.Secret = config.Config.Secret
openIMRegisterResp := api.UserRegisterResp{}
bMsg, err := http2.Post(url, openIMRegisterReq, 2)
@@ -69,7 +73,7 @@ func SetPassword(c *gin.Context) {
if err != nil {
log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error())
}
- c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: "+openIMRegisterResp.ErrMsg})
+ c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: " + openIMRegisterResp.ErrMsg})
return
}
log.Info(params.OperationID, "begin store mysql", account, params.Password)
diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go
index fb90ef7c5..98198f598 100644
--- a/internal/rpc/group/group.go
+++ b/internal/rpc/group/group.go
@@ -41,16 +41,16 @@ func NewGroupServer(port int) *groupServer {
}
func (s *groupServer) Run() {
- log.NewInfo("0", "group rpc start ")
+ log.NewInfo("", "group rpc start ")
ip := utils.ServerIP
registerAddress := ip + ":" + strconv.Itoa(s.rpcPort)
//listener network
listener, err := net.Listen("tcp", registerAddress)
if err != nil {
- log.NewError("0", "Listen failed ", err.Error(), registerAddress)
+ log.NewError("", "Listen failed ", err.Error(), registerAddress)
return
}
- log.NewInfo("0", "listen network success, ", registerAddress, listener)
+ log.NewInfo("", "listen network success, ", registerAddress, listener)
defer listener.Close()
//grpc server
srv := grpc.NewServer()
@@ -59,15 +59,15 @@ func (s *groupServer) Run() {
pbGroup.RegisterGroupServer(srv, s)
err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10)
if err != nil {
- log.NewError("0", "RegisterEtcd failed ", err.Error())
+ log.NewError("", "RegisterEtcd failed ", err.Error())
return
}
err = srv.Serve(listener)
if err != nil {
- log.NewError("0", "Serve failed ", err.Error())
+ log.NewError("", "Serve failed ", err.Error())
return
}
- log.NewInfo("0", "group rpc success")
+ log.NewInfo("", "group rpc success")
}
func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) {
@@ -355,7 +355,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou
//remove
var resp pbGroup.KickGroupMemberResp
for _, v := range req.KickedUserIDList {
- //owner cant kicked
+ //owner can‘t kicked
if v == groupOwnerUserID {
log.NewError(req.OperationID, "failed, can't kick owner ", v)
resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1})
@@ -961,3 +961,76 @@ func (s *groupServer) DismissGroup(ctx context.Context, req *pbGroup.DismissGrou
log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
return &pbGroup.DismissGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
}
+
+// rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp);
+// rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp);
+// rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp);
+// rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp);
+
+func (s *groupServer) MuteGroupMember(ctx context.Context, req *pbGroup.MuteGroupMemberReq) (*pbGroup.MuteGroupMemberResp, error) {
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String())
+ if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) {
+ log.Error(req.OperationID, "verify failed ", req.GroupID, req.UserID)
+ return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
+ }
+ groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID}
+ groupMemberInfo.MuteEndTime = time.Unix(int64(time.Now().Second())+int64(req.MutedSeconds), 0)
+ err := imdb.UpdateGroupMemberInfo(groupMemberInfo)
+ if err != nil {
+ log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo)
+ return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
+ }
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
+ return &pbGroup.MuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
+}
+
+func (s *groupServer) CancelMuteGroupMember(ctx context.Context, req *pbGroup.CancelMuteGroupMemberReq) (*pbGroup.CancelMuteGroupMemberResp, error) {
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String())
+ if !imdb.IsGroupOwnerAdmin(req.GroupID, req.UserID) && !token_verify.IsMangerUserID(req.OpUserID) {
+ log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID)
+ return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
+ }
+ groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.UserID}
+ groupMemberInfo.MuteEndTime = time.Unix(0, 0)
+ err := imdb.UpdateGroupMemberInfo(groupMemberInfo)
+ if err != nil {
+ log.Error(req.OperationID, "UpdateGroupMemberInfo failed ", err.Error(), groupMemberInfo)
+ return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
+ }
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
+ return &pbGroup.CancelMuteGroupMemberResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
+}
+
+func (s *groupServer) MuteGroup(ctx context.Context, req *pbGroup.MuteGroupReq) (*pbGroup.MuteGroupResp, error) {
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String())
+ if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) {
+ log.Error(req.OperationID, "verify failed ", req.GroupID, req.GroupID)
+ return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
+ }
+ err := imdb.OperateGroupStatus(req.GroupID, constant.GroupStatusMuted)
+ if err != nil {
+ log.Error(req.OperationID, "OperateGroupStatus failed ", err.Error(), req.GroupID, constant.GroupStatusMuted)
+ return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
+ }
+ chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID)
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
+ return &pbGroup.MuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
+}
+
+func (s *groupServer) CancelMuteGroup(ctx context.Context, req *pbGroup.CancelMuteGroupReq) (*pbGroup.CancelMuteGroupResp, error) {
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc args ", req.String())
+ if !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) {
+ log.Error(req.OperationID, "verify failed ", req.OpUserID, req.GroupID)
+ return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil
+ }
+ groupInfo := db.Group{GroupID: req.GroupID}
+
+ err := imdb.UpdateGroupInfoDefaultZero(groupInfo, map[string]interface{}{"status": constant.GroupOk})
+ if err != nil {
+ log.Error(req.OperationID, "UpdateGroupInfoDefaultZero failed ", err.Error(), groupInfo)
+ return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil
+ }
+ chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupID)
+ log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "rpc return ", pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""})
+ return &pbGroup.CancelMuteGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil
+}
diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go
index 64b71b284..3c45c393e 100644
--- a/pkg/base_info/friend_api_struct.go
+++ b/pkg/base_info/friend_api_struct.go
@@ -21,7 +21,7 @@ type ImportFriendReq struct {
FromUserID string `json:"fromUserID" binding:"required"`
}
type UserIDResult struct {
- UserID string `json:"userID""`
+ UserID string `json:"userID"`
Result int32 `json:"result"`
}
type ImportFriendResp struct {
diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go
index 68df84731..47b6a6c67 100644
--- a/pkg/base_info/group_api_struct.go
+++ b/pkg/base_info/group_api_struct.go
@@ -185,3 +185,38 @@ type DismissGroupReq struct {
type DismissGroupResp struct {
CommResp
}
+
+type MuteGroupMemberReq struct {
+ OperationID string `json:"operationID" binding:"required"`
+ GroupID string `json:"groupID" binding:"required"`
+ UserID string `json:"userID" binding:"required"`
+ MutedSeconds uint32 `json:"mutedSeconds" binding:"required"`
+}
+type MuteGroupMemberResp struct {
+ CommResp
+}
+
+type CancelMuteGroupMemberReq struct {
+ OperationID string `json:"operationID" binding:"required"`
+ GroupID string `json:"groupID" binding:"required"`
+ UserID string `json:"userID" binding:"required"`
+}
+type CancelMuteGroupMemberResp struct {
+ CommResp
+}
+
+type MuteGroupReq struct {
+ OperationID string `json:"operationID" binding:"required"`
+ GroupID string `json:"groupID" binding:"required"`
+}
+type MuteGroupResp struct {
+ CommResp
+}
+
+type CancelMuteGroupReq struct {
+ OperationID string `json:"operationID" binding:"required"`
+ GroupID string `json:"groupID" binding:"required"`
+}
+type CancelMuteGroupResp struct {
+ CommResp
+}
diff --git a/pkg/base_info/oss_api_struct.go b/pkg/base_info/oss_api_struct.go
new file mode 100644
index 000000000..621d18820
--- /dev/null
+++ b/pkg/base_info/oss_api_struct.go
@@ -0,0 +1,22 @@
+package base_info
+
+type OSSCredentialReq struct {
+ OperationID string `json:"operationID"`
+ Filename string `json:"filename"`
+ FileType string `json:"file_type"`
+}
+
+type OSSCredentialRespData struct {
+ Endpoint string `json:"endpoint"`
+ AccessKeyId string `json:"access_key_id"`
+ AccessKeySecret string `json:"access_key_secret"`
+ Token string `json:"token"`
+ Bucket string `json:"bucket"`
+ FinalHost string `json:"final_host"`
+}
+
+type OSSCredentialResp struct {
+ CommResp
+ OssData OSSCredentialRespData `json:"-"`
+ Data map[string]interface{} `json:"data"`
+}
diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go
index 1e0a54f1a..2a8ec36ff 100644
--- a/pkg/common/config/config.go
+++ b/pkg/common/config/config.go
@@ -45,6 +45,17 @@ type config struct {
SecretID string `yaml:"secretID"`
SecretKey string `yaml:"secretKey"`
}
+ Ali struct {
+ RegionID string `yaml:"regionID"`
+ AccessKeyID string `yaml:"accessKeyID"`
+ AccessKeySecret string `yaml:"accessKeySecret"`
+ StsEndpoint string `yaml:"stsEndpoint"`
+ OssEndpoint string `yaml:"ossEndpoint"`
+ Bucket string `yaml:"bucket"`
+ FinalHost string `yaml:"finalHost"`
+ StsDurationSeconds int64 `yaml:"stsDurationSeconds"`
+ OssRoleArn string `yaml:"OssRoleArn"`
+ }
Minio struct {
Bucket string `yaml:"bucket"`
Location string `yaml:"location"`
@@ -66,6 +77,7 @@ type config struct {
DBMaxLifeTime int `yaml:"dbMaxLifeTime"`
}
Mongo struct {
+ DBUri string `yaml:"dbUri"` // 当dbUri值不为空则直接使用该值
DBAddress []string `yaml:"dbAddress"`
DBDirect bool `yaml:"dbDirect"`
DBTimeout int `yaml:"dbTimeout"`
diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go
index 586093e5d..0a1e38168 100644
--- a/pkg/common/constant/constant.go
+++ b/pkg/common/constant/constant.go
@@ -79,6 +79,7 @@ const (
MemberInvitedNotification = 1509
MemberEnterNotification = 1510
GroupDismissedNotification = 1511
+ GroupMemberInfoChangedNotification = 1512
SignalingNotificationBegin = 1600
SignalingNotification = 1601
@@ -138,6 +139,7 @@ const (
GroupOk = 0
GroupBanChat = 1
GroupStatusDismissed = 2
+ GroupStatusMuted = 3
GroupBaned = 3
GroupBanPrivateChat = 4
diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go
index 6e3048db9..812783e03 100644
--- a/pkg/common/db/model.go
+++ b/pkg/common/db/model.go
@@ -41,12 +41,17 @@ func init() {
// mongo init
// "mongodb://sysop:moon@localhost/records"
uri := "mongodb://sample.host:27017/?maxPoolSize=20&w=majority"
- uri = fmt.Sprintf("mongodb://%s/%s/?connect=direct&maxPoolSize=%d",
- config.Config.Mongo.DBAddress[0], config.Config.Mongo.DBDatabase,
- config.Config.Mongo.DBMaxPoolSize)
+ if config.Config.Mongo.DBUri != "" {
+ // example: mongodb://$user:$password@mongo1.mongo:27017,mongo2.mongo:27017,mongo3.mongo:27017/$DBDatabase/?replicaSet=rs0&readPreference=secondary&authSource=admin&maxPoolSize=$DBMaxPoolSize
+ uri = config.Config.Mongo.DBUri
+ } else {
+ uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d",
+ config.Config.Mongo.DBAddress[0], config.Config.Mongo.DBDatabase,
+ config.Config.Mongo.DBMaxPoolSize)
+ }
mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
- if err != nil {
+ if err != nil{
log.NewError(" mongo.Connect failed, try ", utils.GetSelfFuncName(), err.Error(), uri)
time.Sleep(time.Duration(30) * time.Second)
mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri))
diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go
index 493b78e4e..acf5a7a15 100644
--- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go
+++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go
@@ -30,6 +30,9 @@ func InsertIntoGroupMember(toInsertInfo db.GroupMember) error {
if toInsertInfo.RoleLevel == 0 {
toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers
}
+ if toInsertInfo.MuteEndTime.Unix() == 0 {
+ toInsertInfo.MuteEndTime = time.Unix(0, 0)
+ }
err = dbConn.Table("group_members").Create(toInsertInfo).Error
if err != nil {
return err
@@ -281,6 +284,14 @@ func GetGroupMembersCount(groupId, userName string) (int32, error) {
return count, nil
}
+func UpdateGroupMemberInfoDefaultZero(groupMemberInfo db.GroupMember, args map[string]interface{}) error {
+ dbConn, err := db.DB.MysqlDB.DefaultGormDB()
+ if err != nil {
+ return err
+ }
+ return dbConn.Model(groupMemberInfo).Updates(args).Error
+}
+
//
//func SelectGroupList(groupID string) ([]string, error) {
// var groupUserID string
diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go
index 587e3672e..2d1d0e4db 100644
--- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go
+++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go
@@ -57,7 +57,6 @@ func SetGroupInfo(groupInfo db.Group) error {
if err != nil {
return err
}
- dbConn.LogMode(true)
err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error
return err
}
@@ -68,7 +67,7 @@ func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group
if err != nil {
return groups, err
}
- dbConn.LogMode(true)
+
err = dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error
return groups, err
}
@@ -79,7 +78,7 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) {
if err != nil {
return groups, err
}
- dbConn.LogMode(true)
+
if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil {
return groups, err
}
@@ -102,7 +101,7 @@ func DeleteGroup(groupId string) error {
if err != nil {
return err
}
- dbConn.LogMode(true)
+
var group db.Group
var groupMembers []db.GroupMember
if err := dbConn.Table("groups").Where("group_id=?", groupId).Delete(&group).Error; err != nil {
@@ -119,7 +118,6 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string,
if err != nil {
return "", "", err
}
- dbConn.LogMode(true)
groupMember := db.GroupMember{
UserID: userId,
GroupID: groupId,
@@ -182,7 +180,7 @@ func GetGroupsCountNum(group db.Group) (int32, error) {
if err != nil {
return 0, err
}
- dbConn.LogMode(true)
+
var count int32
if err := dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil {
return 0, err
@@ -198,7 +196,7 @@ func GetGroupById(groupId string) (db.Group, error) {
if err != nil {
return group, err
}
- dbConn.LogMode(true)
+
if err := dbConn.Table("groups").Find(&group).Error; err != nil {
return group, err
}
@@ -211,9 +209,17 @@ func GetGroupMaster(groupId string) (db.GroupMember, error) {
if err != nil {
return groupMember, err
}
- dbConn.LogMode(true)
+
if err := dbConn.Table("group_members").Where("role_level=? and group_id=?", constant.GroupOwner, groupId).Find(&groupMember).Error; err != nil {
return groupMember, err
}
return groupMember, nil
}
+
+func UpdateGroupInfoDefaultZero(groupInfo db.Group, args map[string]interface{}) error {
+ dbConn, err := db.DB.MysqlDB.DefaultGormDB()
+ if err != nil {
+ return err
+ }
+ return dbConn.Model(groupInfo).Updates(args).Error
+}
diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go
index 8e7346cc1..514063755 100644
--- a/pkg/common/utils/utils.go
+++ b/pkg/common/utils/utils.go
@@ -118,6 +118,10 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group
dst.AppMangerLevel = 1
}
dst.JoinTime = int32(src.JoinTime.Unix())
+ dst.MuteEndTime = uint32(src.JoinTime.Unix())
+ if dst.MuteEndTime < uint32(time.Now().Unix()) {
+ dst.MuteEndTime = 0
+ }
return nil
}
diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go
index 0332aa1e9..2f8176fad 100644
--- a/pkg/proto/group/group.pb.go
+++ b/pkg/proto/group/group.pb.go
@@ -36,7 +36,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} }
func (m *CommonResp) String() string { return proto.CompactTextString(m) }
func (*CommonResp) ProtoMessage() {}
func (*CommonResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{0}
+ return fileDescriptor_group_3c77315b028a1402, []int{0}
}
func (m *CommonResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CommonResp.Unmarshal(m, b)
@@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} }
func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) }
func (*GroupAddMemberInfo) ProtoMessage() {}
func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{1}
+ return fileDescriptor_group_3c77315b028a1402, []int{1}
}
func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b)
@@ -131,7 +131,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} }
func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) }
func (*CreateGroupReq) ProtoMessage() {}
func (*CreateGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{2}
+ return fileDescriptor_group_3c77315b028a1402, []int{2}
}
func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b)
@@ -199,7 +199,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} }
func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) }
func (*CreateGroupResp) ProtoMessage() {}
func (*CreateGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{3}
+ return fileDescriptor_group_3c77315b028a1402, []int{3}
}
func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b)
@@ -253,7 +253,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} }
func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupsInfoReq) ProtoMessage() {}
func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{4}
+ return fileDescriptor_group_3c77315b028a1402, []int{4}
}
func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b)
@@ -307,7 +307,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} }
func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupsInfoResp) ProtoMessage() {}
func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{5}
+ return fileDescriptor_group_3c77315b028a1402, []int{5}
}
func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b)
@@ -361,7 +361,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} }
func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) }
func (*SetGroupInfoReq) ProtoMessage() {}
func (*SetGroupInfoReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{6}
+ return fileDescriptor_group_3c77315b028a1402, []int{6}
}
func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b)
@@ -413,7 +413,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} }
func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) }
func (*SetGroupInfoResp) ProtoMessage() {}
func (*SetGroupInfoResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{7}
+ return fileDescriptor_group_3c77315b028a1402, []int{7}
}
func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b)
@@ -453,7 +453,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL
func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupApplicationListReq) ProtoMessage() {}
func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{8}
+ return fileDescriptor_group_3c77315b028a1402, []int{8}
}
func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b)
@@ -507,7 +507,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication
func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupApplicationListResp) ProtoMessage() {}
func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{9}
+ return fileDescriptor_group_3c77315b028a1402, []int{9}
}
func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b)
@@ -561,7 +561,7 @@ func (m *GetUserReqApplicationListReq) Reset() { *m = GetUserReqApplicat
func (m *GetUserReqApplicationListReq) String() string { return proto.CompactTextString(m) }
func (*GetUserReqApplicationListReq) ProtoMessage() {}
func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{10}
+ return fileDescriptor_group_3c77315b028a1402, []int{10}
}
func (m *GetUserReqApplicationListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserReqApplicationListReq.Unmarshal(m, b)
@@ -614,7 +614,7 @@ func (m *GetUserReqApplicationListResp) Reset() { *m = GetUserReqApplica
func (m *GetUserReqApplicationListResp) String() string { return proto.CompactTextString(m) }
func (*GetUserReqApplicationListResp) ProtoMessage() {}
func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{11}
+ return fileDescriptor_group_3c77315b028a1402, []int{11}
}
func (m *GetUserReqApplicationListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetUserReqApplicationListResp.Unmarshal(m, b)
@@ -663,7 +663,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} }
func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) }
func (*TransferGroupOwnerReq) ProtoMessage() {}
func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{12}
+ return fileDescriptor_group_3c77315b028a1402, []int{12}
}
func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b)
@@ -729,7 +729,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{}
func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) }
func (*TransferGroupOwnerResp) ProtoMessage() {}
func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{13}
+ return fileDescriptor_group_3c77315b028a1402, []int{13}
}
func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b)
@@ -770,7 +770,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} }
func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) }
func (*JoinGroupReq) ProtoMessage() {}
func (*JoinGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{14}
+ return fileDescriptor_group_3c77315b028a1402, []int{14}
}
func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b)
@@ -829,7 +829,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} }
func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) }
func (*JoinGroupResp) ProtoMessage() {}
func (*JoinGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{15}
+ return fileDescriptor_group_3c77315b028a1402, []int{15}
}
func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b)
@@ -872,7 +872,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes
func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationResponseReq) ProtoMessage() {}
func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{16}
+ return fileDescriptor_group_3c77315b028a1402, []int{16}
}
func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b)
@@ -945,7 +945,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe
func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationResponseResp) ProtoMessage() {}
func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{17}
+ return fileDescriptor_group_3c77315b028a1402, []int{17}
}
func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b)
@@ -985,7 +985,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} }
func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) }
func (*QuitGroupReq) ProtoMessage() {}
func (*QuitGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{18}
+ return fileDescriptor_group_3c77315b028a1402, []int{18}
}
func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b)
@@ -1037,7 +1037,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} }
func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) }
func (*QuitGroupResp) ProtoMessage() {}
func (*QuitGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{19}
+ return fileDescriptor_group_3c77315b028a1402, []int{19}
}
func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b)
@@ -1079,7 +1079,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} }
func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberListReq) ProtoMessage() {}
func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{20}
+ return fileDescriptor_group_3c77315b028a1402, []int{20}
}
func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b)
@@ -1148,7 +1148,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{}
func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberListResp) ProtoMessage() {}
func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{21}
+ return fileDescriptor_group_3c77315b028a1402, []int{21}
}
func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b)
@@ -1210,7 +1210,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{}
func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMembersInfoReq) ProtoMessage() {}
func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{22}
+ return fileDescriptor_group_3c77315b028a1402, []int{22}
}
func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b)
@@ -1271,7 +1271,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp
func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMembersInfoResp) ProtoMessage() {}
func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{23}
+ return fileDescriptor_group_3c77315b028a1402, []int{23}
}
func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b)
@@ -1327,7 +1327,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} }
func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) }
func (*KickGroupMemberReq) ProtoMessage() {}
func (*KickGroupMemberReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{24}
+ return fileDescriptor_group_3c77315b028a1402, []int{24}
}
func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b)
@@ -1394,7 +1394,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} }
func (m *Id2Result) String() string { return proto.CompactTextString(m) }
func (*Id2Result) ProtoMessage() {}
func (*Id2Result) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{25}
+ return fileDescriptor_group_3c77315b028a1402, []int{25}
}
func (m *Id2Result) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Id2Result.Unmarshal(m, b)
@@ -1441,7 +1441,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} }
func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) }
func (*KickGroupMemberResp) ProtoMessage() {}
func (*KickGroupMemberResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{26}
+ return fileDescriptor_group_3c77315b028a1402, []int{26}
}
func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b)
@@ -1495,7 +1495,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} }
func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) }
func (*GetJoinedGroupListReq) ProtoMessage() {}
func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{27}
+ return fileDescriptor_group_3c77315b028a1402, []int{27}
}
func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b)
@@ -1549,7 +1549,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{}
func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) }
func (*GetJoinedGroupListResp) ProtoMessage() {}
func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{28}
+ return fileDescriptor_group_3c77315b028a1402, []int{28}
}
func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b)
@@ -1605,7 +1605,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} }
func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) }
func (*InviteUserToGroupReq) ProtoMessage() {}
func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{29}
+ return fileDescriptor_group_3c77315b028a1402, []int{29}
}
func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b)
@@ -1673,7 +1673,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} }
func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) }
func (*InviteUserToGroupResp) ProtoMessage() {}
func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{30}
+ return fileDescriptor_group_3c77315b028a1402, []int{30}
}
func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b)
@@ -1727,7 +1727,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} }
func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupAllMemberReq) ProtoMessage() {}
func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{31}
+ return fileDescriptor_group_3c77315b028a1402, []int{31}
}
func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b)
@@ -1781,7 +1781,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} }
func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupAllMemberResp) ProtoMessage() {}
func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{32}
+ return fileDescriptor_group_3c77315b028a1402, []int{32}
}
func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b)
@@ -1835,7 +1835,7 @@ func (m *CMSGroup) Reset() { *m = CMSGroup{} }
func (m *CMSGroup) String() string { return proto.CompactTextString(m) }
func (*CMSGroup) ProtoMessage() {}
func (*CMSGroup) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{33}
+ return fileDescriptor_group_3c77315b028a1402, []int{33}
}
func (m *CMSGroup) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CMSGroup.Unmarshal(m, b)
@@ -1889,7 +1889,7 @@ func (m *GetGroupReq) Reset() { *m = GetGroupReq{} }
func (m *GetGroupReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupReq) ProtoMessage() {}
func (*GetGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{34}
+ return fileDescriptor_group_3c77315b028a1402, []int{34}
}
func (m *GetGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupReq.Unmarshal(m, b)
@@ -1943,7 +1943,7 @@ func (m *GetGroupResp) Reset() { *m = GetGroupResp{} }
func (m *GetGroupResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupResp) ProtoMessage() {}
func (*GetGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{35}
+ return fileDescriptor_group_3c77315b028a1402, []int{35}
}
func (m *GetGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupResp.Unmarshal(m, b)
@@ -1996,7 +1996,7 @@ func (m *GetGroupsReq) Reset() { *m = GetGroupsReq{} }
func (m *GetGroupsReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupsReq) ProtoMessage() {}
func (*GetGroupsReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{36}
+ return fileDescriptor_group_3c77315b028a1402, []int{36}
}
func (m *GetGroupsReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsReq.Unmarshal(m, b)
@@ -2043,7 +2043,7 @@ func (m *GetGroupsResp) Reset() { *m = GetGroupsResp{} }
func (m *GetGroupsResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupsResp) ProtoMessage() {}
func (*GetGroupsResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{37}
+ return fileDescriptor_group_3c77315b028a1402, []int{37}
}
func (m *GetGroupsResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupsResp.Unmarshal(m, b)
@@ -2096,7 +2096,7 @@ func (m *GetGroupMemberReq) Reset() { *m = GetGroupMemberReq{} }
func (m *GetGroupMemberReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMemberReq) ProtoMessage() {}
func (*GetGroupMemberReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{38}
+ return fileDescriptor_group_3c77315b028a1402, []int{38}
}
func (m *GetGroupMemberReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMemberReq.Unmarshal(m, b)
@@ -2143,7 +2143,7 @@ func (m *OperateGroupStatusReq) Reset() { *m = OperateGroupStatusReq{} }
func (m *OperateGroupStatusReq) String() string { return proto.CompactTextString(m) }
func (*OperateGroupStatusReq) ProtoMessage() {}
func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{39}
+ return fileDescriptor_group_3c77315b028a1402, []int{39}
}
func (m *OperateGroupStatusReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateGroupStatusReq.Unmarshal(m, b)
@@ -2194,7 +2194,7 @@ func (m *OperateGroupStatusResp) Reset() { *m = OperateGroupStatusResp{}
func (m *OperateGroupStatusResp) String() string { return proto.CompactTextString(m) }
func (*OperateGroupStatusResp) ProtoMessage() {}
func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{40}
+ return fileDescriptor_group_3c77315b028a1402, []int{40}
}
func (m *OperateGroupStatusResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateGroupStatusResp.Unmarshal(m, b)
@@ -2228,7 +2228,7 @@ func (m *OperateUserRoleReq) Reset() { *m = OperateUserRoleReq{} }
func (m *OperateUserRoleReq) String() string { return proto.CompactTextString(m) }
func (*OperateUserRoleReq) ProtoMessage() {}
func (*OperateUserRoleReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{41}
+ return fileDescriptor_group_3c77315b028a1402, []int{41}
}
func (m *OperateUserRoleReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateUserRoleReq.Unmarshal(m, b)
@@ -2286,7 +2286,7 @@ func (m *OperateUserRoleResp) Reset() { *m = OperateUserRoleResp{} }
func (m *OperateUserRoleResp) String() string { return proto.CompactTextString(m) }
func (*OperateUserRoleResp) ProtoMessage() {}
func (*OperateUserRoleResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{42}
+ return fileDescriptor_group_3c77315b028a1402, []int{42}
}
func (m *OperateUserRoleResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OperateUserRoleResp.Unmarshal(m, b)
@@ -2318,7 +2318,7 @@ func (m *DeleteGroupReq) Reset() { *m = DeleteGroupReq{} }
func (m *DeleteGroupReq) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupReq) ProtoMessage() {}
func (*DeleteGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{43}
+ return fileDescriptor_group_3c77315b028a1402, []int{43}
}
func (m *DeleteGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteGroupReq.Unmarshal(m, b)
@@ -2362,7 +2362,7 @@ func (m *DeleteGroupResp) Reset() { *m = DeleteGroupResp{} }
func (m *DeleteGroupResp) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupResp) ProtoMessage() {}
func (*DeleteGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{44}
+ return fileDescriptor_group_3c77315b028a1402, []int{44}
}
func (m *DeleteGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DeleteGroupResp.Unmarshal(m, b)
@@ -2394,7 +2394,7 @@ func (m *GetGroupByIdReq) Reset() { *m = GetGroupByIdReq{} }
func (m *GetGroupByIdReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupByIdReq) ProtoMessage() {}
func (*GetGroupByIdReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{45}
+ return fileDescriptor_group_3c77315b028a1402, []int{45}
}
func (m *GetGroupByIdReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupByIdReq.Unmarshal(m, b)
@@ -2439,7 +2439,7 @@ func (m *GetGroupByIdResp) Reset() { *m = GetGroupByIdResp{} }
func (m *GetGroupByIdResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupByIdResp) ProtoMessage() {}
func (*GetGroupByIdResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{46}
+ return fileDescriptor_group_3c77315b028a1402, []int{46}
}
func (m *GetGroupByIdResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupByIdResp.Unmarshal(m, b)
@@ -2480,7 +2480,7 @@ func (m *GetGroupMembersCMSReq) Reset() { *m = GetGroupMembersCMSReq{} }
func (m *GetGroupMembersCMSReq) String() string { return proto.CompactTextString(m) }
func (*GetGroupMembersCMSReq) ProtoMessage() {}
func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{47}
+ return fileDescriptor_group_3c77315b028a1402, []int{47}
}
func (m *GetGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersCMSReq.Unmarshal(m, b)
@@ -2541,7 +2541,7 @@ func (m *GetGroupMembersCMSResp) Reset() { *m = GetGroupMembersCMSResp{}
func (m *GetGroupMembersCMSResp) String() string { return proto.CompactTextString(m) }
func (*GetGroupMembersCMSResp) ProtoMessage() {}
func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{48}
+ return fileDescriptor_group_3c77315b028a1402, []int{48}
}
func (m *GetGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetGroupMembersCMSResp.Unmarshal(m, b)
@@ -2596,7 +2596,7 @@ func (m *RemoveGroupMembersCMSReq) Reset() { *m = RemoveGroupMembersCMSR
func (m *RemoveGroupMembersCMSReq) String() string { return proto.CompactTextString(m) }
func (*RemoveGroupMembersCMSReq) ProtoMessage() {}
func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{49}
+ return fileDescriptor_group_3c77315b028a1402, []int{49}
}
func (m *RemoveGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveGroupMembersCMSReq.Unmarshal(m, b)
@@ -2656,7 +2656,7 @@ func (m *RemoveGroupMembersCMSResp) Reset() { *m = RemoveGroupMembersCMS
func (m *RemoveGroupMembersCMSResp) String() string { return proto.CompactTextString(m) }
func (*RemoveGroupMembersCMSResp) ProtoMessage() {}
func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{50}
+ return fileDescriptor_group_3c77315b028a1402, []int{50}
}
func (m *RemoveGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveGroupMembersCMSResp.Unmarshal(m, b)
@@ -2704,7 +2704,7 @@ func (m *AddGroupMembersCMSReq) Reset() { *m = AddGroupMembersCMSReq{} }
func (m *AddGroupMembersCMSReq) String() string { return proto.CompactTextString(m) }
func (*AddGroupMembersCMSReq) ProtoMessage() {}
func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{51}
+ return fileDescriptor_group_3c77315b028a1402, []int{51}
}
func (m *AddGroupMembersCMSReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddGroupMembersCMSReq.Unmarshal(m, b)
@@ -2764,7 +2764,7 @@ func (m *AddGroupMembersCMSResp) Reset() { *m = AddGroupMembersCMSResp{}
func (m *AddGroupMembersCMSResp) String() string { return proto.CompactTextString(m) }
func (*AddGroupMembersCMSResp) ProtoMessage() {}
func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{52}
+ return fileDescriptor_group_3c77315b028a1402, []int{52}
}
func (m *AddGroupMembersCMSResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AddGroupMembersCMSResp.Unmarshal(m, b)
@@ -2811,7 +2811,7 @@ func (m *DismissGroupReq) Reset() { *m = DismissGroupReq{} }
func (m *DismissGroupReq) String() string { return proto.CompactTextString(m) }
func (*DismissGroupReq) ProtoMessage() {}
func (*DismissGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{53}
+ return fileDescriptor_group_3c77315b028a1402, []int{53}
}
func (m *DismissGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DismissGroupReq.Unmarshal(m, b)
@@ -2863,7 +2863,7 @@ func (m *DismissGroupResp) Reset() { *m = DismissGroupResp{} }
func (m *DismissGroupResp) String() string { return proto.CompactTextString(m) }
func (*DismissGroupResp) ProtoMessage() {}
func (*DismissGroupResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_group_48ef48bf92e641e9, []int{54}
+ return fileDescriptor_group_3c77315b028a1402, []int{54}
}
func (m *DismissGroupResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DismissGroupResp.Unmarshal(m, b)
@@ -2890,6 +2890,398 @@ func (m *DismissGroupResp) GetCommonResp() *CommonResp {
return nil
}
+type MuteGroupMemberReq struct {
+ OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"`
+ OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
+ GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"`
+ UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"`
+ MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MuteGroupMemberReq) Reset() { *m = MuteGroupMemberReq{} }
+func (m *MuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
+func (*MuteGroupMemberReq) ProtoMessage() {}
+func (*MuteGroupMemberReq) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{55}
+}
+func (m *MuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MuteGroupMemberReq.Unmarshal(m, b)
+}
+func (m *MuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MuteGroupMemberReq.Marshal(b, m, deterministic)
+}
+func (dst *MuteGroupMemberReq) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MuteGroupMemberReq.Merge(dst, src)
+}
+func (m *MuteGroupMemberReq) XXX_Size() int {
+ return xxx_messageInfo_MuteGroupMemberReq.Size(m)
+}
+func (m *MuteGroupMemberReq) XXX_DiscardUnknown() {
+ xxx_messageInfo_MuteGroupMemberReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MuteGroupMemberReq proto.InternalMessageInfo
+
+func (m *MuteGroupMemberReq) GetOpUserID() string {
+ if m != nil {
+ return m.OpUserID
+ }
+ return ""
+}
+
+func (m *MuteGroupMemberReq) GetOperationID() string {
+ if m != nil {
+ return m.OperationID
+ }
+ return ""
+}
+
+func (m *MuteGroupMemberReq) GetGroupID() string {
+ if m != nil {
+ return m.GroupID
+ }
+ return ""
+}
+
+func (m *MuteGroupMemberReq) GetUserID() string {
+ if m != nil {
+ return m.UserID
+ }
+ return ""
+}
+
+func (m *MuteGroupMemberReq) GetMutedSeconds() uint32 {
+ if m != nil {
+ return m.MutedSeconds
+ }
+ return 0
+}
+
+type MuteGroupMemberResp struct {
+ CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MuteGroupMemberResp) Reset() { *m = MuteGroupMemberResp{} }
+func (m *MuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
+func (*MuteGroupMemberResp) ProtoMessage() {}
+func (*MuteGroupMemberResp) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{56}
+}
+func (m *MuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MuteGroupMemberResp.Unmarshal(m, b)
+}
+func (m *MuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MuteGroupMemberResp.Marshal(b, m, deterministic)
+}
+func (dst *MuteGroupMemberResp) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MuteGroupMemberResp.Merge(dst, src)
+}
+func (m *MuteGroupMemberResp) XXX_Size() int {
+ return xxx_messageInfo_MuteGroupMemberResp.Size(m)
+}
+func (m *MuteGroupMemberResp) XXX_DiscardUnknown() {
+ xxx_messageInfo_MuteGroupMemberResp.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MuteGroupMemberResp proto.InternalMessageInfo
+
+func (m *MuteGroupMemberResp) GetCommonResp() *CommonResp {
+ if m != nil {
+ return m.CommonResp
+ }
+ return nil
+}
+
+type CancelMuteGroupMemberReq struct {
+ OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"`
+ OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
+ GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"`
+ UserID string `protobuf:"bytes,4,opt,name=userID" json:"userID,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CancelMuteGroupMemberReq) Reset() { *m = CancelMuteGroupMemberReq{} }
+func (m *CancelMuteGroupMemberReq) String() string { return proto.CompactTextString(m) }
+func (*CancelMuteGroupMemberReq) ProtoMessage() {}
+func (*CancelMuteGroupMemberReq) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{57}
+}
+func (m *CancelMuteGroupMemberReq) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CancelMuteGroupMemberReq.Unmarshal(m, b)
+}
+func (m *CancelMuteGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CancelMuteGroupMemberReq.Marshal(b, m, deterministic)
+}
+func (dst *CancelMuteGroupMemberReq) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CancelMuteGroupMemberReq.Merge(dst, src)
+}
+func (m *CancelMuteGroupMemberReq) XXX_Size() int {
+ return xxx_messageInfo_CancelMuteGroupMemberReq.Size(m)
+}
+func (m *CancelMuteGroupMemberReq) XXX_DiscardUnknown() {
+ xxx_messageInfo_CancelMuteGroupMemberReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CancelMuteGroupMemberReq proto.InternalMessageInfo
+
+func (m *CancelMuteGroupMemberReq) GetOpUserID() string {
+ if m != nil {
+ return m.OpUserID
+ }
+ return ""
+}
+
+func (m *CancelMuteGroupMemberReq) GetOperationID() string {
+ if m != nil {
+ return m.OperationID
+ }
+ return ""
+}
+
+func (m *CancelMuteGroupMemberReq) GetGroupID() string {
+ if m != nil {
+ return m.GroupID
+ }
+ return ""
+}
+
+func (m *CancelMuteGroupMemberReq) GetUserID() string {
+ if m != nil {
+ return m.UserID
+ }
+ return ""
+}
+
+type CancelMuteGroupMemberResp struct {
+ CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CancelMuteGroupMemberResp) Reset() { *m = CancelMuteGroupMemberResp{} }
+func (m *CancelMuteGroupMemberResp) String() string { return proto.CompactTextString(m) }
+func (*CancelMuteGroupMemberResp) ProtoMessage() {}
+func (*CancelMuteGroupMemberResp) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{58}
+}
+func (m *CancelMuteGroupMemberResp) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CancelMuteGroupMemberResp.Unmarshal(m, b)
+}
+func (m *CancelMuteGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CancelMuteGroupMemberResp.Marshal(b, m, deterministic)
+}
+func (dst *CancelMuteGroupMemberResp) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CancelMuteGroupMemberResp.Merge(dst, src)
+}
+func (m *CancelMuteGroupMemberResp) XXX_Size() int {
+ return xxx_messageInfo_CancelMuteGroupMemberResp.Size(m)
+}
+func (m *CancelMuteGroupMemberResp) XXX_DiscardUnknown() {
+ xxx_messageInfo_CancelMuteGroupMemberResp.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CancelMuteGroupMemberResp proto.InternalMessageInfo
+
+func (m *CancelMuteGroupMemberResp) GetCommonResp() *CommonResp {
+ if m != nil {
+ return m.CommonResp
+ }
+ return nil
+}
+
+type MuteGroupReq struct {
+ OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"`
+ OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
+ GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MuteGroupReq) Reset() { *m = MuteGroupReq{} }
+func (m *MuteGroupReq) String() string { return proto.CompactTextString(m) }
+func (*MuteGroupReq) ProtoMessage() {}
+func (*MuteGroupReq) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{59}
+}
+func (m *MuteGroupReq) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MuteGroupReq.Unmarshal(m, b)
+}
+func (m *MuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MuteGroupReq.Marshal(b, m, deterministic)
+}
+func (dst *MuteGroupReq) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MuteGroupReq.Merge(dst, src)
+}
+func (m *MuteGroupReq) XXX_Size() int {
+ return xxx_messageInfo_MuteGroupReq.Size(m)
+}
+func (m *MuteGroupReq) XXX_DiscardUnknown() {
+ xxx_messageInfo_MuteGroupReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MuteGroupReq proto.InternalMessageInfo
+
+func (m *MuteGroupReq) GetOpUserID() string {
+ if m != nil {
+ return m.OpUserID
+ }
+ return ""
+}
+
+func (m *MuteGroupReq) GetOperationID() string {
+ if m != nil {
+ return m.OperationID
+ }
+ return ""
+}
+
+func (m *MuteGroupReq) GetGroupID() string {
+ if m != nil {
+ return m.GroupID
+ }
+ return ""
+}
+
+type MuteGroupResp struct {
+ CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *MuteGroupResp) Reset() { *m = MuteGroupResp{} }
+func (m *MuteGroupResp) String() string { return proto.CompactTextString(m) }
+func (*MuteGroupResp) ProtoMessage() {}
+func (*MuteGroupResp) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{60}
+}
+func (m *MuteGroupResp) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_MuteGroupResp.Unmarshal(m, b)
+}
+func (m *MuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_MuteGroupResp.Marshal(b, m, deterministic)
+}
+func (dst *MuteGroupResp) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_MuteGroupResp.Merge(dst, src)
+}
+func (m *MuteGroupResp) XXX_Size() int {
+ return xxx_messageInfo_MuteGroupResp.Size(m)
+}
+func (m *MuteGroupResp) XXX_DiscardUnknown() {
+ xxx_messageInfo_MuteGroupResp.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_MuteGroupResp proto.InternalMessageInfo
+
+func (m *MuteGroupResp) GetCommonResp() *CommonResp {
+ if m != nil {
+ return m.CommonResp
+ }
+ return nil
+}
+
+type CancelMuteGroupReq struct {
+ OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"`
+ OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
+ GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CancelMuteGroupReq) Reset() { *m = CancelMuteGroupReq{} }
+func (m *CancelMuteGroupReq) String() string { return proto.CompactTextString(m) }
+func (*CancelMuteGroupReq) ProtoMessage() {}
+func (*CancelMuteGroupReq) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{61}
+}
+func (m *CancelMuteGroupReq) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CancelMuteGroupReq.Unmarshal(m, b)
+}
+func (m *CancelMuteGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CancelMuteGroupReq.Marshal(b, m, deterministic)
+}
+func (dst *CancelMuteGroupReq) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CancelMuteGroupReq.Merge(dst, src)
+}
+func (m *CancelMuteGroupReq) XXX_Size() int {
+ return xxx_messageInfo_CancelMuteGroupReq.Size(m)
+}
+func (m *CancelMuteGroupReq) XXX_DiscardUnknown() {
+ xxx_messageInfo_CancelMuteGroupReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CancelMuteGroupReq proto.InternalMessageInfo
+
+func (m *CancelMuteGroupReq) GetOpUserID() string {
+ if m != nil {
+ return m.OpUserID
+ }
+ return ""
+}
+
+func (m *CancelMuteGroupReq) GetOperationID() string {
+ if m != nil {
+ return m.OperationID
+ }
+ return ""
+}
+
+func (m *CancelMuteGroupReq) GetGroupID() string {
+ if m != nil {
+ return m.GroupID
+ }
+ return ""
+}
+
+type CancelMuteGroupResp struct {
+ CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *CancelMuteGroupResp) Reset() { *m = CancelMuteGroupResp{} }
+func (m *CancelMuteGroupResp) String() string { return proto.CompactTextString(m) }
+func (*CancelMuteGroupResp) ProtoMessage() {}
+func (*CancelMuteGroupResp) Descriptor() ([]byte, []int) {
+ return fileDescriptor_group_3c77315b028a1402, []int{62}
+}
+func (m *CancelMuteGroupResp) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_CancelMuteGroupResp.Unmarshal(m, b)
+}
+func (m *CancelMuteGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_CancelMuteGroupResp.Marshal(b, m, deterministic)
+}
+func (dst *CancelMuteGroupResp) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_CancelMuteGroupResp.Merge(dst, src)
+}
+func (m *CancelMuteGroupResp) XXX_Size() int {
+ return xxx_messageInfo_CancelMuteGroupResp.Size(m)
+}
+func (m *CancelMuteGroupResp) XXX_DiscardUnknown() {
+ xxx_messageInfo_CancelMuteGroupResp.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_CancelMuteGroupResp proto.InternalMessageInfo
+
+func (m *CancelMuteGroupResp) GetCommonResp() *CommonResp {
+ if m != nil {
+ return m.CommonResp
+ }
+ return nil
+}
+
func init() {
proto.RegisterType((*CommonResp)(nil), "group.CommonResp")
proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo")
@@ -2946,6 +3338,14 @@ func init() {
proto.RegisterType((*AddGroupMembersCMSResp)(nil), "group.AddGroupMembersCMSResp")
proto.RegisterType((*DismissGroupReq)(nil), "group.DismissGroupReq")
proto.RegisterType((*DismissGroupResp)(nil), "group.DismissGroupResp")
+ proto.RegisterType((*MuteGroupMemberReq)(nil), "group.MuteGroupMemberReq")
+ proto.RegisterType((*MuteGroupMemberResp)(nil), "group.MuteGroupMemberResp")
+ proto.RegisterType((*CancelMuteGroupMemberReq)(nil), "group.CancelMuteGroupMemberReq")
+ proto.RegisterType((*CancelMuteGroupMemberResp)(nil), "group.CancelMuteGroupMemberResp")
+ proto.RegisterType((*MuteGroupReq)(nil), "group.MuteGroupReq")
+ proto.RegisterType((*MuteGroupResp)(nil), "group.MuteGroupResp")
+ proto.RegisterType((*CancelMuteGroupReq)(nil), "group.CancelMuteGroupReq")
+ proto.RegisterType((*CancelMuteGroupResp)(nil), "group.CancelMuteGroupResp")
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -2984,6 +3384,10 @@ type GroupClient interface {
RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error)
AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error)
DismissGroup(ctx context.Context, in *DismissGroupReq, opts ...grpc.CallOption) (*DismissGroupResp, error)
+ MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error)
+ CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error)
+ MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error)
+ CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error)
}
type groupClient struct {
@@ -3219,6 +3623,42 @@ func (c *groupClient) DismissGroup(ctx context.Context, in *DismissGroupReq, opt
return out, nil
}
+func (c *groupClient) MuteGroupMember(ctx context.Context, in *MuteGroupMemberReq, opts ...grpc.CallOption) (*MuteGroupMemberResp, error) {
+ out := new(MuteGroupMemberResp)
+ err := grpc.Invoke(ctx, "/group.group/MuteGroupMember", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *groupClient) CancelMuteGroupMember(ctx context.Context, in *CancelMuteGroupMemberReq, opts ...grpc.CallOption) (*CancelMuteGroupMemberResp, error) {
+ out := new(CancelMuteGroupMemberResp)
+ err := grpc.Invoke(ctx, "/group.group/CancelMuteGroupMember", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *groupClient) MuteGroup(ctx context.Context, in *MuteGroupReq, opts ...grpc.CallOption) (*MuteGroupResp, error) {
+ out := new(MuteGroupResp)
+ err := grpc.Invoke(ctx, "/group.group/MuteGroup", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *groupClient) CancelMuteGroup(ctx context.Context, in *CancelMuteGroupReq, opts ...grpc.CallOption) (*CancelMuteGroupResp, error) {
+ out := new(CancelMuteGroupResp)
+ err := grpc.Invoke(ctx, "/group.group/CancelMuteGroup", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// Server API for Group service
type GroupServer interface {
@@ -3247,6 +3687,10 @@ type GroupServer interface {
RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error)
AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error)
DismissGroup(context.Context, *DismissGroupReq) (*DismissGroupResp, error)
+ MuteGroupMember(context.Context, *MuteGroupMemberReq) (*MuteGroupMemberResp, error)
+ CancelMuteGroupMember(context.Context, *CancelMuteGroupMemberReq) (*CancelMuteGroupMemberResp, error)
+ MuteGroup(context.Context, *MuteGroupReq) (*MuteGroupResp, error)
+ CancelMuteGroup(context.Context, *CancelMuteGroupReq) (*CancelMuteGroupResp, error)
}
func RegisterGroupServer(s *grpc.Server, srv GroupServer) {
@@ -3703,6 +4147,78 @@ func _Group_DismissGroup_Handler(srv interface{}, ctx context.Context, dec func(
return interceptor(ctx, in, info, handler)
}
+func _Group_MuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(MuteGroupMemberReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(GroupServer).MuteGroupMember(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/group.group/MuteGroupMember",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(GroupServer).MuteGroupMember(ctx, req.(*MuteGroupMemberReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Group_CancelMuteGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CancelMuteGroupMemberReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(GroupServer).CancelMuteGroupMember(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/group.group/CancelMuteGroupMember",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(GroupServer).CancelMuteGroupMember(ctx, req.(*CancelMuteGroupMemberReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Group_MuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(MuteGroupReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(GroupServer).MuteGroup(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/group.group/MuteGroup",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(GroupServer).MuteGroup(ctx, req.(*MuteGroupReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Group_CancelMuteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CancelMuteGroupReq)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(GroupServer).CancelMuteGroup(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/group.group/CancelMuteGroup",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(GroupServer).CancelMuteGroup(ctx, req.(*CancelMuteGroupReq))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
var _Group_serviceDesc = grpc.ServiceDesc{
ServiceName: "group.group",
HandlerType: (*GroupServer)(nil),
@@ -3807,133 +4323,159 @@ var _Group_serviceDesc = grpc.ServiceDesc{
MethodName: "DismissGroup",
Handler: _Group_DismissGroup_Handler,
},
+ {
+ MethodName: "MuteGroupMember",
+ Handler: _Group_MuteGroupMember_Handler,
+ },
+ {
+ MethodName: "CancelMuteGroupMember",
+ Handler: _Group_CancelMuteGroupMember_Handler,
+ },
+ {
+ MethodName: "MuteGroup",
+ Handler: _Group_MuteGroup_Handler,
+ },
+ {
+ MethodName: "CancelMuteGroup",
+ Handler: _Group_CancelMuteGroup_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "group/group.proto",
}
-func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_48ef48bf92e641e9) }
+func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_3c77315b028a1402) }
-var fileDescriptor_group_48ef48bf92e641e9 = []byte{
- // 1913 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xca,
- 0x11, 0x07, 0x2d, 0xcb, 0xb6, 0xc6, 0x7f, 0x64, 0xaf, 0x23, 0x5b, 0xe1, 0xd3, 0xf3, 0xf3, 0xdb,
- 0x97, 0x3e, 0x18, 0xfd, 0x63, 0xa3, 0x0e, 0x90, 0x43, 0x53, 0x34, 0xf5, 0xdf, 0x44, 0x49, 0x64,
- 0xd7, 0x74, 0x7a, 0xc9, 0xc5, 0x55, 0xcc, 0xb5, 0xc0, 0x5a, 0x12, 0x69, 0x2e, 0x65, 0xb7, 0xbd,
- 0x04, 0xbd, 0x04, 0x08, 0xda, 0x43, 0x8b, 0x02, 0x3d, 0x15, 0x68, 0x73, 0xef, 0xa1, 0x87, 0xf6,
- 0x5c, 0xf4, 0x63, 0xf4, 0x4b, 0xb4, 0x5f, 0xa1, 0xe0, 0xee, 0x72, 0xb9, 0x24, 0x97, 0xb4, 0x2c,
- 0xa5, 0x2f, 0x17, 0x01, 0x33, 0x3b, 0xbb, 0xf3, 0x9b, 0xd9, 0x9d, 0xd9, 0xd9, 0xa1, 0x60, 0xa9,
- 0xe3, 0xbb, 0x03, 0x6f, 0x8b, 0xfd, 0x6e, 0x7a, 0xbe, 0x1b, 0xb8, 0xa8, 0xcc, 0x08, 0xf3, 0xcb,
- 0x63, 0x8f, 0xf4, 0xcf, 0x9a, 0xad, 0x2d, 0xef, 0xb2, 0xb3, 0xc5, 0x46, 0xb6, 0xa8, 0x7d, 0x79,
- 0x76, 0x43, 0xb7, 0x6e, 0x28, 0x97, 0xc4, 0x3f, 0x02, 0xd8, 0x73, 0x7b, 0x3d, 0xb7, 0x6f, 0x11,
- 0xea, 0xa1, 0x3a, 0x4c, 0x1f, 0xf8, 0xfe, 0x9e, 0x6b, 0x93, 0xba, 0xb1, 0x6e, 0x6c, 0x94, 0xad,
- 0x88, 0x44, 0x2b, 0x30, 0x75, 0xe0, 0xfb, 0x2d, 0xda, 0xa9, 0x4f, 0xac, 0x1b, 0x1b, 0x15, 0x4b,
- 0x50, 0xf8, 0x39, 0xa0, 0xa7, 0xa1, 0xae, 0x1d, 0xdb, 0x6e, 0x91, 0xde, 0x1b, 0xe2, 0x37, 0xfb,
- 0x17, 0x6e, 0x28, 0xfd, 0x53, 0x4a, 0xfc, 0xe6, 0x3e, 0x5b, 0xa6, 0x62, 0x09, 0x0a, 0x35, 0xa0,
- 0x62, 0xb9, 0x5d, 0xf2, 0x92, 0x5c, 0x93, 0x2e, 0x5b, 0xa8, 0x6c, 0xc5, 0x0c, 0xfc, 0x5f, 0x03,
- 0x16, 0xf6, 0x7c, 0xd2, 0x0e, 0x08, 0x5b, 0xd2, 0x22, 0x57, 0x68, 0x07, 0x16, 0x9a, 0x7d, 0x27,
- 0xe0, 0x4b, 0xbf, 0x74, 0x68, 0x50, 0x37, 0xd6, 0x4b, 0x1b, 0xb3, 0xdb, 0xf7, 0x37, 0xb9, 0xb9,
- 0x59, 0xdd, 0x56, 0x6a, 0x02, 0xfa, 0x01, 0x54, 0x98, 0x54, 0x38, 0xc8, 0x74, 0xce, 0x6e, 0x37,
- 0x36, 0x29, 0xf1, 0xaf, 0x89, 0x7f, 0xd6, 0xf6, 0x9c, 0x33, 0xaf, 0xed, 0xb7, 0x7b, 0x74, 0x53,
- 0xca, 0x58, 0xb1, 0x38, 0x5a, 0x87, 0xd9, 0x63, 0x8f, 0xf8, 0xed, 0xc0, 0x71, 0xfb, 0xcd, 0xfd,
- 0x7a, 0x89, 0x19, 0xa3, 0xb2, 0x90, 0x09, 0x33, 0xc7, 0x9e, 0xb0, 0x75, 0x92, 0x0d, 0x4b, 0x9a,
- 0xcd, 0xbe, 0xe9, 0x13, 0x5f, 0x0c, 0x97, 0xc5, 0xec, 0x98, 0x85, 0xdf, 0x42, 0x35, 0x61, 0xf0,
- 0x28, 0x5b, 0x90, 0x34, 0xb0, 0x74, 0x27, 0x03, 0xb1, 0x0f, 0x8b, 0x4f, 0x49, 0xc0, 0x68, 0xca,
- 0xc6, 0xc8, 0x55, 0x08, 0x9b, 0x0b, 0xec, 0x4b, 0x87, 0x57, 0x2c, 0x95, 0x95, 0x76, 0xcb, 0x44,
- 0xb1, 0x5b, 0x4a, 0x49, 0xb7, 0xe0, 0xf7, 0x06, 0x2c, 0xa5, 0x94, 0x8e, 0x64, 0xf7, 0x2e, 0xcc,
- 0x4b, 0x43, 0x18, 0xd2, 0x12, 0x3b, 0x1a, 0xc5, 0xb6, 0x27, 0xa7, 0xe0, 0xdf, 0x18, 0x50, 0x3d,
- 0x15, 0x58, 0x22, 0xfb, 0x13, 0xfe, 0x34, 0xee, 0x76, 0x60, 0x54, 0xbb, 0x27, 0x34, 0xc7, 0xa1,
- 0xf0, 0x30, 0xe1, 0x03, 0x58, 0x4c, 0x82, 0xa1, 0x1e, 0xfa, 0xbe, 0x1a, 0xa0, 0x02, 0xce, 0x92,
- 0x38, 0xfd, 0xf1, 0x80, 0xa5, 0x08, 0xe1, 0x5f, 0x81, 0x19, 0xf9, 0x77, 0xc7, 0xf3, 0xba, 0xce,
- 0x39, 0x5b, 0x3f, 0xb4, 0x37, 0x34, 0x4f, 0x85, 0x68, 0x14, 0x43, 0xd4, 0x6c, 0xec, 0x1a, 0xc0,
- 0xa1, 0xef, 0xf6, 0x12, 0x5b, 0xab, 0x70, 0xf0, 0x9f, 0x0c, 0xf8, 0x2c, 0x57, 0xf9, 0x48, 0xdb,
- 0xfc, 0x02, 0x16, 0xa3, 0x74, 0x30, 0x20, 0x34, 0x50, 0x76, 0xfa, 0x8b, 0xbc, 0x5d, 0x11, 0xa2,
- 0x56, 0x66, 0x22, 0x0e, 0xa0, 0xf1, 0x94, 0x04, 0x21, 0x56, 0x8b, 0x5c, 0x69, 0x9c, 0x93, 0x97,
- 0xb8, 0xc6, 0xdb, 0xd7, 0x3f, 0x1b, 0xf0, 0x79, 0x81, 0xda, 0x91, 0x76, 0x59, 0xeb, 0x97, 0x89,
- 0x51, 0xfd, 0xf2, 0x4f, 0x03, 0x6a, 0xaf, 0xfc, 0x76, 0x9f, 0x5e, 0x10, 0x9f, 0x0d, 0xb2, 0x2c,
- 0x15, 0x7a, 0xa4, 0x0e, 0xd3, 0x22, 0xf4, 0x85, 0x4b, 0x22, 0x12, 0x7d, 0x0d, 0x0b, 0xc7, 0x5d,
- 0x5b, 0xcd, 0x70, 0xdc, 0x33, 0x29, 0x6e, 0x28, 0x77, 0x44, 0x6e, 0x54, 0x39, 0xee, 0xa2, 0x14,
- 0x37, 0xed, 0xc7, 0xc9, 0xe2, 0xac, 0x52, 0x4e, 0x65, 0x95, 0x17, 0xb0, 0xa2, 0x33, 0x60, 0xb4,
- 0x08, 0x7a, 0x67, 0xc0, 0xdc, 0x73, 0xd7, 0xe9, 0xcb, 0x7b, 0x28, 0xdf, 0x0b, 0x6b, 0x00, 0x16,
- 0xb9, 0x6a, 0x11, 0x4a, 0xdb, 0x1d, 0x22, 0x3c, 0xa0, 0x70, 0x8a, 0x32, 0xe1, 0xed, 0x16, 0xe3,
- 0x5d, 0x98, 0x57, 0x70, 0x8c, 0x66, 0xcc, 0xbf, 0xc3, 0x90, 0x4c, 0xc5, 0x63, 0x38, 0xe0, 0xf6,
- 0x29, 0x11, 0xf9, 0x5e, 0x45, 0x61, 0x14, 0xfb, 0x3d, 0x7d, 0xfa, 0x15, 0xcf, 0x94, 0x32, 0x9e,
- 0x51, 0x52, 0xc5, 0x64, 0x3a, 0x55, 0x84, 0xe3, 0xcf, 0xda, 0x7d, 0xbb, 0x4b, 0xec, 0x30, 0xe8,
- 0xf9, 0x7e, 0x2a, 0x1c, 0x84, 0x61, 0x8e, 0x53, 0x16, 0xa1, 0x83, 0x6e, 0x50, 0x9f, 0x62, 0xf9,
- 0x22, 0xc1, 0xc3, 0x27, 0xd0, 0xc8, 0x37, 0x6d, 0x34, 0x77, 0x5d, 0xc0, 0xdc, 0xc9, 0xc0, 0x09,
- 0x86, 0xd8, 0xfa, 0xf1, 0xae, 0xc1, 0x5d, 0x98, 0x57, 0xf4, 0x8c, 0x86, 0xf5, 0x83, 0x01, 0xb5,
- 0x28, 0xdb, 0xc6, 0x25, 0x4f, 0x31, 0xea, 0xb1, 0x52, 0x59, 0x98, 0x20, 0x0f, 0x9d, 0x6e, 0x40,
- 0x7c, 0xb6, 0xa1, 0x65, 0x4b, 0x50, 0xa1, 0xbe, 0x23, 0xf2, 0x8b, 0xe0, 0x94, 0x5c, 0xb1, 0x9d,
- 0x2c, 0x5b, 0x11, 0x89, 0xff, 0x6a, 0xc0, 0x8a, 0x0e, 0xe3, 0x48, 0x97, 0xc1, 0x21, 0x40, 0x2f,
- 0xae, 0x05, 0xf9, 0x35, 0xf0, 0x75, 0x5e, 0xba, 0xe3, 0xda, 0x0e, 0x07, 0xdd, 0x2e, 0xbb, 0x4d,
- 0x95, 0x99, 0xa1, 0xe6, 0xbe, 0x80, 0xcb, 0xed, 0x88, 0x48, 0xfc, 0xbb, 0x0c, 0x5c, 0x59, 0x18,
- 0x15, 0x26, 0x01, 0x05, 0xd6, 0x04, 0xab, 0x98, 0x54, 0x75, 0xe3, 0x25, 0x81, 0x3f, 0x18, 0xb0,
- 0xaa, 0x85, 0xf4, 0x29, 0x5d, 0x88, 0xff, 0x66, 0x00, 0x7a, 0xe1, 0x9c, 0x5f, 0x2a, 0x72, 0xc5,
- 0x4e, 0xfa, 0x36, 0x2c, 0x86, 0xf2, 0xc4, 0xe6, 0x86, 0x2b, 0xae, 0xca, 0xf0, 0x43, 0xf0, 0x16,
- 0x69, 0x53, 0xb7, 0x2f, 0xdc, 0x25, 0xa8, 0xb4, 0xb3, 0xca, 0xc5, 0x21, 0x37, 0x95, 0x0a, 0xb9,
- 0xc7, 0x50, 0x69, 0xda, 0xdb, 0x3c, 0x75, 0xe4, 0x5e, 0xf5, 0x4c, 0x35, 0x4b, 0x38, 0xfc, 0x81,
- 0x22, 0x28, 0xfc, 0x16, 0x96, 0x33, 0xe6, 0x8e, 0xb4, 0x01, 0x8f, 0x60, 0x5e, 0xa2, 0x50, 0xf6,
- 0x60, 0x51, 0x84, 0xba, 0x1c, 0xb3, 0x92, 0x62, 0x78, 0xc0, 0x62, 0x3d, 0xbc, 0x0e, 0x88, 0xcd,
- 0x50, 0x44, 0xb1, 0x9e, 0x4c, 0xb4, 0x46, 0x26, 0xd1, 0xae, 0xc3, 0xac, 0x9b, 0xcd, 0x53, 0xee,
- 0x90, 0x79, 0xea, 0x1d, 0x0f, 0x88, 0x8c, 0xde, 0xb1, 0xde, 0x2a, 0x43, 0xd7, 0xeb, 0xb1, 0x38,
- 0xfe, 0xbb, 0x01, 0xf7, 0x9a, 0xfd, 0x6b, 0x27, 0x20, 0x21, 0xb2, 0x57, 0xae, 0xcc, 0xd0, 0xb7,
- 0xe7, 0xe1, 0xfc, 0x4b, 0x2a, 0x3e, 0x68, 0x93, 0x89, 0x83, 0xf6, 0x5d, 0x58, 0xe2, 0xba, 0xd4,
- 0xd3, 0x5a, 0x66, 0xa7, 0x35, 0x3b, 0x50, 0x78, 0xe8, 0x7e, 0x6d, 0x40, 0x4d, 0x03, 0xfb, 0x1b,
- 0x3d, 0x3a, 0x7d, 0xb8, 0x27, 0x8b, 0xf2, 0x6e, 0x77, 0x98, 0x60, 0x1d, 0xaf, 0xe0, 0xfd, 0xbd,
- 0x72, 0x2f, 0x29, 0x0a, 0x3f, 0x69, 0xbe, 0xfa, 0xa3, 0x01, 0x33, 0x7b, 0xad, 0x53, 0x26, 0x36,
- 0xd6, 0x1b, 0x6f, 0x03, 0xaa, 0x5c, 0x57, 0x9b, 0x06, 0xc4, 0x3f, 0x6a, 0xf7, 0xa2, 0xb2, 0x2f,
- 0xcd, 0x46, 0x0f, 0xc4, 0x0b, 0x95, 0xb3, 0x9a, 0xb6, 0x70, 0x55, 0x92, 0x19, 0xa6, 0xf7, 0xd9,
- 0xc8, 0x59, 0xe1, 0xa6, 0x34, 0x04, 0x36, 0xb6, 0x32, 0xdf, 0x96, 0x98, 0x81, 0xf6, 0x01, 0x7e,
- 0xd2, 0xee, 0x38, 0x7d, 0xe6, 0x6a, 0xd1, 0xcf, 0x78, 0xa0, 0x81, 0x2e, 0xaa, 0xfb, 0x58, 0xd6,
- 0x52, 0xe6, 0x0d, 0xb1, 0x85, 0x1f, 0x0c, 0x98, 0x8b, 0x51, 0x51, 0x0f, 0x7d, 0x0f, 0x2a, 0x91,
- 0xfb, 0xa8, 0xe8, 0xc2, 0x54, 0xa3, 0xea, 0x44, 0xf0, 0xad, 0x58, 0xe2, 0x23, 0xe1, 0x94, 0xbe,
- 0x18, 0xf4, 0x28, 0x43, 0x59, 0xb6, 0x62, 0x06, 0xbe, 0x8e, 0x21, 0xd2, 0xd0, 0x73, 0x49, 0x9d,
- 0xc6, 0xc7, 0xf1, 0x4d, 0x36, 0x9d, 0xe0, 0xbf, 0x18, 0x30, 0xaf, 0x28, 0xfe, 0x54, 0xce, 0x31,
- 0x61, 0x26, 0xf2, 0x85, 0xf0, 0x8d, 0xa4, 0xf1, 0x71, 0xdc, 0x63, 0xd1, 0x84, 0xbb, 0x9d, 0x0c,
- 0x77, 0x7b, 0x08, 0x9b, 0x2f, 0xa1, 0xc6, 0x49, 0xde, 0xab, 0x3a, 0x0d, 0xda, 0xc1, 0x80, 0x16,
- 0x2f, 0xba, 0x02, 0x53, 0x5c, 0x2c, 0xba, 0x49, 0x39, 0x35, 0xc4, 0xe1, 0xab, 0xc3, 0x8a, 0x4e,
- 0x19, 0x7f, 0x99, 0x21, 0x31, 0xc4, 0x9e, 0xd3, 0x6e, 0x97, 0xdc, 0x0a, 0x82, 0xa5, 0x2d, 0x3b,
- 0x4a, 0x2b, 0x9c, 0x4a, 0xb6, 0x22, 0x4b, 0xa9, 0x56, 0xe4, 0x10, 0x45, 0x59, 0x0d, 0x96, 0x33,
- 0x38, 0xa8, 0x87, 0x5f, 0xc2, 0xc2, 0x3e, 0xe9, 0x12, 0xa5, 0x85, 0x39, 0x8e, 0xd3, 0x97, 0xa0,
- 0x9a, 0x58, 0x8d, 0x7a, 0xb8, 0x05, 0xd5, 0x68, 0x63, 0x77, 0x7f, 0xd9, 0xb4, 0xc7, 0xd5, 0xf0,
- 0x24, 0x6e, 0x00, 0xf2, 0xe5, 0xa8, 0x87, 0xbe, 0x13, 0x27, 0x4a, 0x11, 0x44, 0x99, 0xb3, 0x2c,
- 0x05, 0xf0, 0x3f, 0x32, 0x4f, 0x10, 0xba, 0xd7, 0x3a, 0x2d, 0x86, 0x65, 0xc2, 0x4c, 0xe8, 0x34,
- 0x25, 0x75, 0x4a, 0x3a, 0x15, 0x1a, 0xa5, 0x8f, 0x13, 0xc3, 0x9a, 0xfd, 0xfb, 0x57, 0xb6, 0xce,
- 0x67, 0xb8, 0xa9, 0x87, 0x7e, 0x0c, 0xd3, 0xfc, 0xde, 0x88, 0x42, 0x79, 0xd8, 0xeb, 0x26, 0x9a,
- 0x86, 0x0e, 0x34, 0xf1, 0xfd, 0x2d, 0xad, 0x11, 0xfc, 0xad, 0x9a, 0x63, 0xc5, 0x1a, 0x00, 0xd7,
- 0xa0, 0xa4, 0x3f, 0x85, 0x83, 0x7f, 0x6b, 0x40, 0xdd, 0x22, 0x3d, 0xf7, 0x9a, 0xdc, 0xc9, 0xfd,
- 0x75, 0x98, 0xe6, 0x41, 0x40, 0x45, 0xfd, 0x1d, 0x91, 0x77, 0xea, 0x77, 0xdb, 0xa9, 0x7e, 0xb7,
- 0x8d, 0x5b, 0x70, 0x3f, 0x07, 0x0d, 0xbf, 0xf8, 0xe9, 0xe0, 0xfc, 0x9c, 0x50, 0x2a, 0x3a, 0xca,
- 0x11, 0x19, 0x46, 0xe8, 0x45, 0xdb, 0xe9, 0x12, 0x5b, 0xa0, 0x11, 0x14, 0x7e, 0x6f, 0x40, 0x6d,
- 0xc7, 0xb6, 0xff, 0x1f, 0xa6, 0xd9, 0x59, 0xd3, 0xec, 0x42, 0xd3, 0x9e, 0xc3, 0x8a, 0x0e, 0xca,
- 0x48, 0x76, 0x39, 0x50, 0xdd, 0x77, 0x68, 0xcf, 0xa1, 0x54, 0xe6, 0x08, 0x13, 0x66, 0xdc, 0x54,
- 0x4f, 0xd6, 0xf5, 0x86, 0xae, 0xde, 0xeb, 0x30, 0xdd, 0x49, 0x56, 0xb7, 0x82, 0xc4, 0x07, 0xb0,
- 0x98, 0x54, 0xc5, 0xdb, 0x0c, 0xe7, 0xc3, 0xb4, 0x19, 0x62, 0xa1, 0xed, 0xff, 0x2c, 0x00, 0xff,
- 0xa2, 0x84, 0x7e, 0x08, 0xb3, 0xe7, 0xf1, 0x07, 0x0b, 0x54, 0x8b, 0xe6, 0x25, 0xbe, 0xda, 0x98,
- 0x2b, 0x3a, 0x36, 0xf5, 0xd0, 0x23, 0xa8, 0xfc, 0x3c, 0xea, 0x66, 0xa1, 0x65, 0x21, 0xa4, 0xf6,
- 0xd9, 0xcc, 0x7b, 0x59, 0x26, 0x9f, 0x77, 0x15, 0xb5, 0x4a, 0xe4, 0x3c, 0xb5, 0x49, 0x23, 0xe7,
- 0x25, 0x3b, 0x2a, 0xbb, 0x30, 0xdf, 0x51, 0x3f, 0x34, 0xa0, 0xd5, 0xe8, 0xb3, 0x51, 0xea, 0x9b,
- 0x87, 0x59, 0xd7, 0x0f, 0x50, 0x0f, 0x3d, 0x81, 0x39, 0xaa, 0xf4, 0xe4, 0x51, 0x64, 0x5b, 0xea,
- 0xab, 0x81, 0xb9, 0xaa, 0xe5, 0x53, 0x0f, 0xfd, 0x0c, 0x56, 0x3b, 0xfa, 0x86, 0x38, 0xfa, 0x32,
- 0xa5, 0x35, 0xdb, 0x90, 0x36, 0xf1, 0x6d, 0x22, 0xd4, 0x43, 0x17, 0x70, 0xbf, 0x93, 0xd7, 0x5d,
- 0x46, 0x5f, 0xc5, 0x0b, 0xe4, 0xb6, 0xbd, 0xcd, 0x07, 0xb7, 0x0b, 0x51, 0x0f, 0x9d, 0x00, 0x0a,
- 0x32, 0x2d, 0x56, 0xd4, 0x10, 0x73, 0xb5, 0xed, 0x63, 0xf3, 0xf3, 0x82, 0x51, 0xea, 0xa1, 0x73,
- 0xa8, 0x77, 0x72, 0xfa, 0x77, 0x08, 0x27, 0xbe, 0xf1, 0x69, 0x7b, 0x97, 0xe6, 0x57, 0xb7, 0xca,
- 0x70, 0xdc, 0x9d, 0x4c, 0x03, 0x4a, 0xe2, 0xd6, 0xf6, 0xcf, 0x24, 0xee, 0x9c, 0xce, 0xd5, 0x2b,
- 0x58, 0xee, 0x64, 0x3b, 0x32, 0x48, 0x3f, 0x4b, 0x9e, 0xb2, 0xb5, 0xa2, 0x61, 0xea, 0xa1, 0x67,
- 0x50, 0xbd, 0x4c, 0xb6, 0x18, 0x50, 0xf4, 0xa1, 0x33, 0xdb, 0x69, 0x31, 0xcd, 0xbc, 0x21, 0x69,
- 0x72, 0xea, 0xcd, 0xae, 0x9a, 0x9c, 0x6d, 0x23, 0xa8, 0x26, 0xeb, 0x1e, 0xfb, 0x47, 0xb0, 0xe4,
- 0xa4, 0x9f, 0xb1, 0xe8, 0xb3, 0xe8, 0xe5, 0xa9, 0x79, 0x97, 0x9b, 0x8d, 0xfc, 0x41, 0xbe, 0x5e,
- 0x27, 0xfd, 0x44, 0x94, 0xeb, 0xe9, 0x5e, 0xab, 0x66, 0x23, 0x7f, 0x90, 0x07, 0xaa, 0x5a, 0xc9,
- 0xc8, 0x40, 0x4d, 0x55, 0x4b, 0xe6, 0xaa, 0x96, 0x4f, 0x3d, 0xf4, 0x10, 0x66, 0x22, 0x1e, 0x42,
- 0x29, 0xa1, 0x70, 0xe2, 0x72, 0x86, 0xc7, 0x53, 0x93, 0xcc, 0x19, 0x28, 0x2d, 0x41, 0xd5, 0xd4,
- 0x94, 0x7c, 0x30, 0x9c, 0xc8, 0x32, 0x56, 0xa9, 0x70, 0xe5, 0x06, 0x69, 0x2b, 0x6d, 0xb9, 0x41,
- 0xfa, 0xd2, 0x38, 0x3c, 0x3d, 0xa9, 0x8a, 0x54, 0x9e, 0x9e, 0x6c, 0xc5, 0x2c, 0x4f, 0x8f, 0xa6,
- 0x88, 0x0d, 0xb3, 0xbc, 0x52, 0x76, 0xca, 0x2c, 0x9f, 0x2c, 0x6c, 0x65, 0x96, 0x4f, 0x55, 0xa8,
- 0xa1, 0x69, 0xd9, 0xc2, 0x2a, 0x27, 0xdc, 0xc4, 0x8d, 0x9e, 0x13, 0x6e, 0xf2, 0x92, 0x7d, 0x0d,
- 0x35, 0x6d, 0x65, 0x81, 0xbe, 0x10, 0xf3, 0xf2, 0xaa, 0x20, 0x73, 0xbd, 0x58, 0x80, 0xc3, 0xcd,
- 0x5e, 0xed, 0x12, 0xae, 0xb6, 0x00, 0x91, 0x70, 0x73, 0x6a, 0x82, 0x27, 0x30, 0xa7, 0x5e, 0xbb,
- 0xf2, 0x28, 0xa6, 0xae, 0x7d, 0x79, 0x14, 0xd3, 0x77, 0xf4, 0x6e, 0xf5, 0xf5, 0xfc, 0x26, 0xff,
- 0x43, 0xc7, 0x63, 0xf6, 0xfb, 0x66, 0x8a, 0xfd, 0x5b, 0xe3, 0xe1, 0xff, 0x02, 0x00, 0x00, 0xff,
- 0xff, 0x9c, 0x9b, 0x8c, 0x7a, 0xec, 0x21, 0x00, 0x00,
+var fileDescriptor_group_3c77315b028a1402 = []byte{
+ // 2068 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4f, 0x6f, 0xdb, 0xc8,
+ 0x15, 0x07, 0xed, 0xc8, 0xb6, 0x9e, 0xad, 0xc8, 0x1e, 0x47, 0xb6, 0xc2, 0xf5, 0x66, 0xbd, 0xb3,
+ 0xe9, 0x22, 0xe8, 0x1f, 0x1b, 0xcd, 0x02, 0x39, 0x74, 0x8b, 0xa6, 0xf1, 0x9f, 0xc4, 0x4a, 0x22,
+ 0xbb, 0xa1, 0xd3, 0x4b, 0x2e, 0xa9, 0x56, 0x1c, 0x0b, 0xaa, 0x25, 0x92, 0xe6, 0x50, 0x4e, 0xdb,
+ 0xcb, 0xa2, 0x97, 0x05, 0xb6, 0xed, 0xa1, 0x45, 0x81, 0x3d, 0x15, 0x68, 0x73, 0xeb, 0xa1, 0x87,
+ 0x1e, 0xda, 0x73, 0xd1, 0x8f, 0xd1, 0x4f, 0xd1, 0xaf, 0x50, 0x70, 0x66, 0x38, 0x1c, 0x0e, 0x87,
+ 0xb4, 0x42, 0x25, 0xcd, 0x45, 0xc0, 0xbc, 0x79, 0xc3, 0xf7, 0x7b, 0x6f, 0xe6, 0xbd, 0x79, 0xef,
+ 0x8d, 0x60, 0x6d, 0x10, 0xfa, 0x93, 0x60, 0x97, 0xfd, 0xee, 0x04, 0xa1, 0x1f, 0xf9, 0xa8, 0xc6,
+ 0x06, 0xf6, 0xc7, 0x27, 0x01, 0xf1, 0x5e, 0x76, 0xba, 0xbb, 0xc1, 0xf9, 0x60, 0x97, 0xcd, 0xec,
+ 0x52, 0xf7, 0xfc, 0xe5, 0x2b, 0xba, 0xfb, 0x8a, 0x72, 0x4e, 0xfc, 0x23, 0x80, 0x7d, 0x7f, 0x3c,
+ 0xf6, 0x3d, 0x87, 0xd0, 0x00, 0xb5, 0x61, 0xf1, 0x30, 0x0c, 0xf7, 0x7d, 0x97, 0xb4, 0xad, 0x6d,
+ 0xeb, 0x4e, 0xcd, 0x49, 0x86, 0x68, 0x03, 0x16, 0x0e, 0xc3, 0xb0, 0x4b, 0x07, 0xed, 0xb9, 0x6d,
+ 0xeb, 0x4e, 0xdd, 0x11, 0x23, 0xfc, 0x18, 0xd0, 0xa3, 0x58, 0xd6, 0x03, 0xd7, 0xed, 0x92, 0xf1,
+ 0x17, 0x24, 0xec, 0x78, 0x67, 0x7e, 0xcc, 0xfd, 0x53, 0x4a, 0xc2, 0xce, 0x01, 0xfb, 0x4c, 0xdd,
+ 0x11, 0x23, 0xb4, 0x05, 0x75, 0xc7, 0x1f, 0x91, 0xa7, 0xe4, 0x92, 0x8c, 0xd8, 0x87, 0x6a, 0x4e,
+ 0x4a, 0xc0, 0xff, 0xb5, 0xe0, 0xfa, 0x7e, 0x48, 0x7a, 0x11, 0x61, 0x9f, 0x74, 0xc8, 0x05, 0x7a,
+ 0x00, 0xd7, 0x3b, 0xde, 0x30, 0xe2, 0x9f, 0x7e, 0x3a, 0xa4, 0x51, 0xdb, 0xda, 0x9e, 0xbf, 0xb3,
+ 0x7c, 0xf7, 0xe6, 0x0e, 0x57, 0x37, 0x2f, 0xdb, 0xd1, 0x16, 0xa0, 0x1f, 0x40, 0x9d, 0x71, 0xc5,
+ 0x93, 0x4c, 0xe6, 0xf2, 0xdd, 0xad, 0x1d, 0x4a, 0xc2, 0x4b, 0x12, 0xbe, 0xec, 0x05, 0xc3, 0x97,
+ 0x41, 0x2f, 0xec, 0x8d, 0xe9, 0x8e, 0xe4, 0x71, 0x52, 0x76, 0xb4, 0x0d, 0xcb, 0x27, 0x01, 0x09,
+ 0x7b, 0xd1, 0xd0, 0xf7, 0x3a, 0x07, 0xed, 0x79, 0xa6, 0x8c, 0x4a, 0x42, 0x36, 0x2c, 0x9d, 0x04,
+ 0x42, 0xd7, 0x6b, 0x6c, 0x5a, 0x8e, 0xd9, 0xea, 0x57, 0x1e, 0x09, 0xc5, 0x74, 0x4d, 0xac, 0x4e,
+ 0x49, 0xf8, 0x4b, 0x68, 0x66, 0x14, 0xae, 0xb2, 0x05, 0x59, 0x05, 0xe7, 0xdf, 0x48, 0x41, 0x1c,
+ 0xc2, 0xea, 0x23, 0x12, 0xb1, 0x31, 0x65, 0x73, 0xe4, 0x22, 0x86, 0xcd, 0x19, 0x0e, 0xa4, 0xc1,
+ 0xeb, 0x8e, 0x4a, 0xd2, 0xcd, 0x32, 0x57, 0x6e, 0x96, 0xf9, 0xac, 0x59, 0xf0, 0xd7, 0x16, 0xac,
+ 0x69, 0x42, 0x2b, 0xe9, 0xbd, 0x07, 0x0d, 0xa9, 0x08, 0x43, 0x3a, 0xcf, 0x8e, 0x46, 0xb9, 0xee,
+ 0xd9, 0x25, 0xf8, 0xb7, 0x16, 0x34, 0x4f, 0x05, 0x96, 0x44, 0xff, 0x8c, 0x3d, 0xad, 0x37, 0x3b,
+ 0x30, 0xaa, 0xde, 0x73, 0x86, 0xe3, 0x50, 0x7a, 0x98, 0xf0, 0x21, 0xac, 0x66, 0xc1, 0xd0, 0x00,
+ 0x7d, 0x5f, 0x75, 0x50, 0x01, 0x67, 0x4d, 0x9c, 0xfe, 0x74, 0xc2, 0x51, 0x98, 0xf0, 0xaf, 0xc0,
+ 0x4e, 0xec, 0xfb, 0x20, 0x08, 0x46, 0xc3, 0x3e, 0xfb, 0x7e, 0xac, 0x6f, 0xac, 0x9e, 0x0a, 0xd1,
+ 0x2a, 0x87, 0x68, 0xd8, 0xd8, 0x5b, 0x00, 0x0f, 0x43, 0x7f, 0x9c, 0xd9, 0x5a, 0x85, 0x82, 0xff,
+ 0x64, 0xc1, 0x07, 0x85, 0xc2, 0x2b, 0x6d, 0xf3, 0x13, 0x58, 0x4d, 0xc2, 0xc1, 0x84, 0xd0, 0x48,
+ 0xd9, 0xe9, 0x8f, 0x8a, 0x76, 0x45, 0xb0, 0x3a, 0xb9, 0x85, 0x38, 0x82, 0xad, 0x47, 0x24, 0x8a,
+ 0xb1, 0x3a, 0xe4, 0xc2, 0x60, 0x9c, 0xa2, 0xc0, 0x35, 0xdb, 0xbe, 0xfe, 0xd9, 0x82, 0x0f, 0x4b,
+ 0xc4, 0x56, 0xda, 0x65, 0xa3, 0x5d, 0xe6, 0xaa, 0xda, 0xe5, 0x5f, 0x16, 0xb4, 0x9e, 0x87, 0x3d,
+ 0x8f, 0x9e, 0x91, 0x90, 0x4d, 0xb2, 0x28, 0x15, 0x5b, 0xa4, 0x0d, 0x8b, 0xc2, 0xf5, 0x85, 0x49,
+ 0x92, 0x21, 0xfa, 0x14, 0xae, 0x9f, 0x8c, 0x5c, 0x35, 0xc2, 0x71, 0xcb, 0x68, 0xd4, 0x98, 0xef,
+ 0x98, 0xbc, 0x52, 0xf9, 0xb8, 0x89, 0x34, 0xaa, 0x6e, 0xc7, 0x6b, 0xe5, 0x51, 0xa5, 0xa6, 0x45,
+ 0x95, 0x27, 0xb0, 0x61, 0x52, 0xa0, 0x9a, 0x07, 0x7d, 0x65, 0xc1, 0xca, 0x63, 0x7f, 0xe8, 0xc9,
+ 0x7b, 0xa8, 0xd8, 0x0a, 0xb7, 0x00, 0x1c, 0x72, 0xd1, 0x25, 0x94, 0xf6, 0x06, 0x44, 0x58, 0x40,
+ 0xa1, 0x94, 0x45, 0xc2, 0xab, 0x35, 0xc6, 0x7b, 0xd0, 0x50, 0x70, 0x54, 0x53, 0xe6, 0x3f, 0xb1,
+ 0x4b, 0x6a, 0xfe, 0x18, 0x4f, 0xf8, 0x1e, 0x25, 0x22, 0xde, 0xab, 0x28, 0xac, 0x72, 0xbb, 0xeb,
+ 0xa7, 0x5f, 0xb1, 0xcc, 0x7c, 0xce, 0x32, 0x4a, 0xa8, 0xb8, 0xa6, 0x87, 0x8a, 0x78, 0xfe, 0xa8,
+ 0xe7, 0xb9, 0x23, 0xe2, 0xc6, 0x4e, 0xcf, 0xf7, 0x53, 0xa1, 0x20, 0x0c, 0x2b, 0x7c, 0xe4, 0x10,
+ 0x3a, 0x19, 0x45, 0xed, 0x05, 0x16, 0x2f, 0x32, 0x34, 0xfc, 0x0c, 0xb6, 0x8a, 0x55, 0xab, 0x66,
+ 0xae, 0x33, 0x58, 0x79, 0x36, 0x19, 0x46, 0x53, 0x6c, 0xfd, 0x6c, 0xd7, 0xe0, 0x1e, 0x34, 0x14,
+ 0x39, 0xd5, 0xb0, 0xbe, 0xb6, 0xa0, 0x95, 0x44, 0xdb, 0x34, 0xe5, 0x29, 0x47, 0x3d, 0x53, 0x28,
+ 0x8b, 0x03, 0xe4, 0xc3, 0xe1, 0x28, 0x22, 0x21, 0xdb, 0xd0, 0x9a, 0x23, 0x46, 0xb1, 0xbc, 0x63,
+ 0xf2, 0x8b, 0xe8, 0x94, 0x5c, 0xb0, 0x9d, 0xac, 0x39, 0xc9, 0x10, 0xff, 0xcd, 0x82, 0x0d, 0x13,
+ 0xc6, 0x4a, 0x97, 0xc1, 0x43, 0x80, 0x71, 0x9a, 0x0b, 0xf2, 0x6b, 0xe0, 0xd3, 0xa2, 0x70, 0xc7,
+ 0xa5, 0x3d, 0x9c, 0x8c, 0x46, 0xec, 0x36, 0x55, 0x56, 0xc6, 0x92, 0x3d, 0x01, 0x97, 0xeb, 0x91,
+ 0x0c, 0xf1, 0xef, 0x73, 0x70, 0x65, 0x62, 0x54, 0x1a, 0x04, 0x14, 0x58, 0x73, 0x2c, 0x63, 0x52,
+ 0xc5, 0xcd, 0x16, 0x04, 0xfe, 0x68, 0xc1, 0xa6, 0x11, 0xd2, 0xfb, 0x34, 0x21, 0xfe, 0xbb, 0x05,
+ 0xe8, 0xc9, 0xb0, 0x7f, 0xae, 0xf0, 0x95, 0x1b, 0xe9, 0xdb, 0xb0, 0x1a, 0xf3, 0x13, 0x97, 0x2b,
+ 0xae, 0x98, 0x2a, 0x47, 0x8f, 0xc1, 0x3b, 0xa4, 0x47, 0x7d, 0x4f, 0x98, 0x4b, 0x8c, 0x74, 0x63,
+ 0xd5, 0xca, 0x5d, 0x6e, 0x41, 0x73, 0xb9, 0xcf, 0xa1, 0xde, 0x71, 0xef, 0xf2, 0xd0, 0x51, 0x78,
+ 0xd5, 0x33, 0xd1, 0x2c, 0xe0, 0xf0, 0x02, 0x45, 0x8c, 0xf0, 0x97, 0xb0, 0x9e, 0x53, 0xb7, 0xd2,
+ 0x06, 0xdc, 0x83, 0x86, 0x44, 0xa1, 0xec, 0xc1, 0xaa, 0x70, 0x75, 0x39, 0xe7, 0x64, 0xd9, 0xf0,
+ 0x84, 0xf9, 0x7a, 0x7c, 0x1d, 0x10, 0x97, 0xa1, 0x48, 0x7c, 0x3d, 0x1b, 0x68, 0xad, 0x5c, 0xa0,
+ 0xdd, 0x86, 0x65, 0x3f, 0x1f, 0xa7, 0xfc, 0x29, 0xe3, 0xd4, 0x57, 0xdc, 0x21, 0x72, 0x72, 0x67,
+ 0xaa, 0x55, 0xa6, 0xce, 0xd7, 0x53, 0x76, 0xfc, 0x0f, 0x0b, 0x6e, 0x74, 0xbc, 0xcb, 0x61, 0x44,
+ 0x62, 0x64, 0xcf, 0x7d, 0x19, 0xa1, 0xaf, 0x8e, 0xc3, 0xc5, 0x97, 0x54, 0x7a, 0xd0, 0xae, 0x65,
+ 0x0e, 0xda, 0x77, 0x61, 0x8d, 0xcb, 0x52, 0x4f, 0x6b, 0x8d, 0x9d, 0xd6, 0xfc, 0x44, 0xe9, 0xa1,
+ 0xfb, 0xb5, 0x05, 0x2d, 0x03, 0xec, 0xff, 0xeb, 0xd1, 0xf1, 0xe0, 0x86, 0x4c, 0xca, 0x47, 0xa3,
+ 0x69, 0x9c, 0x75, 0xb6, 0x84, 0xf7, 0x0f, 0xca, 0xbd, 0xa4, 0x08, 0x7c, 0xaf, 0xf1, 0xea, 0x1b,
+ 0x0b, 0x96, 0xf6, 0xbb, 0xa7, 0x8c, 0x6d, 0xa6, 0x1a, 0xef, 0x0e, 0x34, 0xb9, 0xac, 0x1e, 0x8d,
+ 0x48, 0x78, 0xdc, 0x1b, 0x27, 0x69, 0x9f, 0x4e, 0x46, 0xb7, 0x45, 0x85, 0xca, 0x49, 0x1d, 0x57,
+ 0x98, 0x2a, 0x4b, 0x8c, 0xc3, 0xfb, 0x72, 0x62, 0xac, 0x78, 0x53, 0xb6, 0x04, 0x36, 0xf6, 0x65,
+ 0xbe, 0x2d, 0x29, 0x01, 0x1d, 0x00, 0xfc, 0xa4, 0x37, 0x18, 0x7a, 0xcc, 0xd4, 0xa2, 0x9f, 0x71,
+ 0xdb, 0x00, 0x5d, 0x64, 0xf7, 0x29, 0xaf, 0xa3, 0xac, 0x9b, 0x62, 0x0b, 0x5f, 0x5b, 0xb0, 0x92,
+ 0xa2, 0xa2, 0x01, 0xfa, 0x1e, 0xd4, 0x13, 0xf3, 0x51, 0xd1, 0x85, 0x69, 0x26, 0xd9, 0x89, 0xa0,
+ 0x3b, 0x29, 0xc7, 0x5b, 0xc2, 0x29, 0x6d, 0x31, 0x19, 0x53, 0x86, 0xb2, 0xe6, 0xa4, 0x04, 0x7c,
+ 0x99, 0x42, 0xa4, 0xb1, 0xe5, 0xb2, 0x32, 0xad, 0xb7, 0x63, 0x9b, 0x7c, 0x38, 0xc1, 0x7f, 0xb1,
+ 0xa0, 0xa1, 0x08, 0x7e, 0x5f, 0xc6, 0xb1, 0x61, 0x29, 0xb1, 0x85, 0xb0, 0x8d, 0x1c, 0xe3, 0x93,
+ 0xb4, 0xc7, 0x62, 0x70, 0x77, 0x37, 0xeb, 0xee, 0xee, 0x14, 0x3a, 0x9f, 0x43, 0x8b, 0x0f, 0x79,
+ 0xaf, 0xea, 0x34, 0xea, 0x45, 0x13, 0x5a, 0xfe, 0xd1, 0x0d, 0x58, 0xe0, 0x6c, 0xc9, 0x4d, 0xca,
+ 0x47, 0x53, 0x1c, 0xbe, 0x36, 0x6c, 0x98, 0x84, 0xf1, 0xca, 0x0c, 0x89, 0x29, 0x56, 0x4e, 0xfb,
+ 0x23, 0x72, 0x25, 0x08, 0x16, 0xb6, 0xdc, 0x24, 0xac, 0xf0, 0x51, 0xb6, 0x15, 0x39, 0xaf, 0xb5,
+ 0x22, 0xa7, 0x48, 0xca, 0x5a, 0xb0, 0x9e, 0xc3, 0x41, 0x03, 0xfc, 0x14, 0xae, 0x1f, 0x90, 0x11,
+ 0x51, 0x5a, 0x98, 0xb3, 0x18, 0x7d, 0x0d, 0x9a, 0x99, 0xaf, 0xd1, 0x00, 0x77, 0xa1, 0x99, 0x6c,
+ 0xec, 0xde, 0x2f, 0x3b, 0xee, 0xac, 0x12, 0xee, 0xa7, 0x0d, 0x40, 0xfe, 0x39, 0x1a, 0xa0, 0xef,
+ 0xa4, 0x81, 0x52, 0x38, 0x51, 0xee, 0x2c, 0x4b, 0x06, 0xfc, 0xcf, 0x5c, 0x09, 0x42, 0xf7, 0xbb,
+ 0xa7, 0xe5, 0xb0, 0x6c, 0x58, 0x8a, 0x8d, 0xa6, 0x84, 0x4e, 0x39, 0xd6, 0x5c, 0x63, 0xfe, 0xed,
+ 0xf8, 0xb0, 0x61, 0xff, 0xfe, 0x9d, 0xcf, 0xf3, 0x19, 0x6e, 0x1a, 0xa0, 0x1f, 0xc3, 0x22, 0xbf,
+ 0x37, 0x12, 0x57, 0x9e, 0xf6, 0xba, 0x49, 0x96, 0xa1, 0x43, 0x83, 0x7f, 0x7f, 0xcb, 0xa8, 0x04,
+ 0xaf, 0x55, 0x0b, 0xb4, 0xb8, 0x05, 0xc0, 0x25, 0x28, 0xe1, 0x4f, 0xa1, 0xe0, 0xdf, 0x59, 0xd0,
+ 0x76, 0xc8, 0xd8, 0xbf, 0x24, 0x6f, 0x64, 0xfe, 0x36, 0x2c, 0x72, 0x27, 0xa0, 0x22, 0xff, 0x4e,
+ 0x86, 0x6f, 0xd4, 0xef, 0x76, 0xb5, 0x7e, 0xb7, 0x8b, 0xbb, 0x70, 0xb3, 0x00, 0x0d, 0xbf, 0xf8,
+ 0xe9, 0xa4, 0xdf, 0x27, 0x94, 0x8a, 0x8e, 0x72, 0x32, 0x8c, 0x3d, 0xf4, 0xac, 0x37, 0x1c, 0x11,
+ 0x57, 0xa0, 0x11, 0x23, 0xfc, 0xb5, 0x05, 0xad, 0x07, 0xae, 0xfb, 0x2e, 0x54, 0x73, 0xf3, 0xaa,
+ 0xb9, 0xa5, 0xaa, 0x3d, 0x86, 0x0d, 0x13, 0x94, 0x4a, 0x7a, 0x0d, 0xa1, 0x79, 0x30, 0xa4, 0xe3,
+ 0x21, 0xa5, 0x32, 0x46, 0xd8, 0xb0, 0xe4, 0x6b, 0x3d, 0x59, 0x3f, 0x98, 0x3a, 0x7b, 0x6f, 0xc3,
+ 0xe2, 0x20, 0x9b, 0xdd, 0x8a, 0x21, 0x3e, 0x84, 0xd5, 0xac, 0x28, 0xde, 0x66, 0xe8, 0x4f, 0xd3,
+ 0x66, 0x48, 0x99, 0xf0, 0x5f, 0x2d, 0x40, 0xdd, 0x49, 0x44, 0xb4, 0xeb, 0xe4, 0x1d, 0xa1, 0x8e,
+ 0x0d, 0x37, 0x51, 0x9b, 0x46, 0x62, 0x84, 0x30, 0xac, 0x8c, 0x27, 0x11, 0x71, 0x4f, 0x49, 0xdf,
+ 0xf7, 0x5c, 0xca, 0xaa, 0xbf, 0x86, 0x93, 0xa1, 0xe1, 0x23, 0x58, 0xcf, 0x21, 0xad, 0xa6, 0xf4,
+ 0x6f, 0x2c, 0x68, 0xef, 0xf7, 0xbc, 0x3e, 0x19, 0xbd, 0x7f, 0xd5, 0xf1, 0x31, 0xdc, 0x2c, 0xc0,
+ 0x52, 0x4d, 0xb9, 0x33, 0x58, 0x91, 0x5f, 0x7a, 0x97, 0x07, 0x70, 0x0f, 0x1a, 0x8a, 0x9c, 0x6a,
+ 0x58, 0x47, 0x80, 0x34, 0xdd, 0xdf, 0x25, 0xe2, 0x23, 0x58, 0xcf, 0x49, 0xab, 0x84, 0xfb, 0xee,
+ 0x37, 0x6b, 0xc0, 0xdf, 0x61, 0xd1, 0x0f, 0x61, 0xb9, 0x9f, 0x3e, 0xf3, 0xa1, 0x56, 0xb2, 0x2e,
+ 0xf3, 0xd6, 0x69, 0x6f, 0x98, 0xc8, 0x34, 0x40, 0xf7, 0xa0, 0xfe, 0xf3, 0xa4, 0x07, 0x8c, 0xd6,
+ 0x05, 0x93, 0xda, 0x9d, 0xb6, 0x6f, 0xe4, 0x89, 0x7c, 0xdd, 0x45, 0xd2, 0x60, 0x94, 0xeb, 0xd4,
+ 0xd6, 0xa6, 0x5c, 0x97, 0xed, 0x43, 0xee, 0x41, 0x63, 0xa0, 0x3e, 0xcf, 0xa1, 0xcd, 0xe4, 0xb1,
+ 0x55, 0x7b, 0x29, 0xb4, 0xdb, 0xe6, 0x09, 0x1a, 0xa0, 0xfb, 0xb0, 0x42, 0x95, 0x97, 0x2c, 0x94,
+ 0xe8, 0xa6, 0xbd, 0xb5, 0xd9, 0x9b, 0x46, 0x3a, 0x0d, 0xd0, 0xcf, 0x60, 0x73, 0x60, 0x7e, 0x46,
+ 0x42, 0x1f, 0x6b, 0x52, 0xf3, 0xcf, 0x38, 0x36, 0xbe, 0x8a, 0x85, 0x06, 0xe8, 0x0c, 0x6e, 0x0e,
+ 0x8a, 0xde, 0x64, 0xd0, 0x27, 0xe9, 0x07, 0x0a, 0x1f, 0x8b, 0xec, 0xdb, 0x57, 0x33, 0xd1, 0x00,
+ 0x3d, 0x03, 0x14, 0xe5, 0x1e, 0x26, 0xd0, 0x96, 0x58, 0x6b, 0x7c, 0x74, 0xb1, 0x3f, 0x2c, 0x99,
+ 0xa5, 0x01, 0xea, 0x43, 0x7b, 0x50, 0xd0, 0xf5, 0x46, 0x38, 0xf3, 0x32, 0x6e, 0xec, 0xf8, 0xdb,
+ 0x9f, 0x5c, 0xc9, 0xc3, 0x71, 0x0f, 0x72, 0x6d, 0x5b, 0x89, 0xdb, 0xd8, 0x75, 0x96, 0xb8, 0x0b,
+ 0xfa, 0xbd, 0xcf, 0x61, 0x7d, 0x90, 0xef, 0x63, 0x22, 0xf3, 0x2a, 0x79, 0xca, 0x6e, 0x95, 0x4d,
+ 0xd3, 0x00, 0x1d, 0x41, 0xf3, 0x3c, 0xdb, 0x98, 0x43, 0xc9, 0xdf, 0x03, 0xf2, 0xfd, 0x49, 0xdb,
+ 0x2e, 0x9a, 0x92, 0x2a, 0x6b, 0x9d, 0x2e, 0x55, 0xe5, 0x7c, 0xf3, 0x4d, 0x55, 0xd9, 0xd4, 0x22,
+ 0x3b, 0x86, 0xb5, 0xa1, 0xde, 0xfc, 0x41, 0x1f, 0x24, 0xfd, 0x1a, 0x43, 0x37, 0xcb, 0xde, 0x2a,
+ 0x9e, 0xe4, 0xdf, 0x1b, 0xe8, 0x8d, 0x15, 0xf9, 0x3d, 0x53, 0x8f, 0xc7, 0xde, 0x2a, 0x9e, 0xe4,
+ 0x8e, 0xaa, 0xe6, 0xff, 0xd2, 0x51, 0xb5, 0x1a, 0xc3, 0xde, 0x34, 0xd2, 0x69, 0x80, 0x3e, 0x83,
+ 0xa5, 0x84, 0x86, 0x90, 0xc6, 0x14, 0x2f, 0x5c, 0xcf, 0xd1, 0x78, 0x68, 0x92, 0x31, 0x03, 0xe9,
+ 0x1c, 0x54, 0x0d, 0x4d, 0xd9, 0x32, 0xfb, 0x99, 0x2c, 0xfe, 0x94, 0xba, 0x50, 0x6e, 0x90, 0xb1,
+ 0x3e, 0x95, 0x1b, 0x64, 0x2e, 0x28, 0xe3, 0xd3, 0xa3, 0xd5, 0x71, 0xf2, 0xf4, 0xe4, 0xeb, 0x4c,
+ 0x79, 0x7a, 0x0c, 0xa5, 0x5f, 0x1c, 0xe5, 0x95, 0x62, 0x4d, 0x46, 0xf9, 0x6c, 0x39, 0x28, 0xa3,
+ 0xbc, 0x56, 0xd7, 0xc5, 0xaa, 0xe5, 0xcb, 0x91, 0x02, 0x77, 0x13, 0x79, 0x70, 0x81, 0xbb, 0xc9,
+ 0xd4, 0xf4, 0x05, 0xb4, 0x8c, 0xf9, 0x38, 0xfa, 0x48, 0xac, 0x2b, 0xaa, 0x1d, 0xec, 0xed, 0x72,
+ 0x06, 0x0e, 0x37, 0x9f, 0x10, 0x4b, 0xb8, 0xc6, 0xb4, 0x5d, 0xc2, 0x2d, 0xc8, 0xa4, 0xef, 0xc3,
+ 0x8a, 0x9a, 0xac, 0xca, 0xa3, 0xa8, 0x25, 0xcb, 0xf2, 0x28, 0xe6, 0x32, 0xdb, 0x23, 0x68, 0x6a,
+ 0xe9, 0x91, 0xdc, 0xca, 0x7c, 0x0a, 0x27, 0xb7, 0xd2, 0x94, 0x51, 0xbd, 0x80, 0x96, 0x31, 0xdd,
+ 0x92, 0x96, 0x2b, 0x4a, 0x0c, 0xa5, 0xe5, 0x8a, 0xb3, 0xb5, 0x7b, 0x50, 0x97, 0x64, 0x79, 0xf6,
+ 0xd5, 0xd4, 0x46, 0x9e, 0xfd, 0x6c, 0x06, 0x72, 0x04, 0x4d, 0xed, 0xa3, 0x52, 0xbb, 0x7c, 0x7a,
+ 0x24, 0xb5, 0x33, 0xe4, 0x32, 0x7b, 0xcd, 0x17, 0x8d, 0x1d, 0xfe, 0x77, 0xb1, 0xcf, 0xd9, 0xef,
+ 0x17, 0x0b, 0xec, 0xbf, 0x60, 0x9f, 0xfd, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x2b, 0x24, 0xa7,
+ 0x4a, 0x26, 0x00, 0x00,
}
diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto
index 62c845f1e..201bf6ef5 100644
--- a/pkg/proto/group/group.proto
+++ b/pkg/proto/group/group.proto
@@ -319,7 +319,7 @@ message AddGroupMembersCMSResp {
}
message DismissGroupReq{
- string opUserID = 1; //group member or app manager
+ string opUserID = 1; //group or app manager
string operationID = 2;
string groupID = 3;
}
@@ -328,6 +328,59 @@ message DismissGroupResp{
CommonResp commonResp = 1;
}
+
+message MuteGroupMemberReq{
+ string opUserID = 1; //group or app manager
+ string operationID = 2;
+ string groupID = 3;
+ string userID = 4;
+ uint32 mutedSeconds = 5;
+}
+
+message MuteGroupMemberResp{
+ CommonResp commonResp = 1;
+}
+
+
+
+message CancelMuteGroupMemberReq{
+ string opUserID = 1; //group or app manager
+ string operationID = 2;
+ string groupID = 3;
+ string userID = 4;
+}
+
+message CancelMuteGroupMemberResp{
+ CommonResp commonResp = 1;
+}
+
+
+message MuteGroupReq{
+ string opUserID = 1; //group or app manager
+ string operationID = 2;
+ string groupID = 3;
+}
+
+message MuteGroupResp{
+ CommonResp commonResp = 1;
+}
+
+
+
+message CancelMuteGroupReq{
+ string opUserID = 1; //group or app manager
+ string operationID = 2;
+ string groupID = 3;
+}
+
+message CancelMuteGroupResp{
+ CommonResp commonResp = 1;
+}
+
+
+
+
+
service group{
rpc createGroup(CreateGroupReq) returns(CreateGroupResp);
rpc joinGroup(JoinGroupReq) returns(JoinGroupResp);
@@ -356,6 +409,10 @@ service group{
rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp);
rpc DismissGroup(DismissGroupReq) returns(DismissGroupResp);
+ rpc MuteGroupMember(MuteGroupMemberReq) returns(MuteGroupMemberResp);
+ rpc CancelMuteGroupMember(CancelMuteGroupMemberReq) returns(CancelMuteGroupMemberResp);
+ rpc MuteGroup(MuteGroupReq) returns(MuteGroupResp);
+ rpc CancelMuteGroup(CancelMuteGroupReq) returns(CancelMuteGroupResp);
}
diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go
index 1675ad2bc..43fd488b8 100644
--- a/pkg/proto/sdk_ws/ws.pb.go
+++ b/pkg/proto/sdk_ws/ws.pb.go
@@ -40,7 +40,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} }
func (m *GroupInfo) String() string { return proto.CompactTextString(m) }
func (*GroupInfo) ProtoMessage() {}
func (*GroupInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{0}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{0}
}
func (m *GroupInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupInfo.Unmarshal(m, b)
@@ -155,6 +155,7 @@ type GroupMemberFullInfo struct {
JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"`
OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"`
Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"`
+ MuteEndTime uint32 `protobuf:"varint,11,opt,name=muteEndTime" json:"muteEndTime,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@@ -164,7 +165,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} }
func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) }
func (*GroupMemberFullInfo) ProtoMessage() {}
func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{1}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{1}
}
func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b)
@@ -254,6 +255,13 @@ func (m *GroupMemberFullInfo) GetEx() string {
return ""
}
+func (m *GroupMemberFullInfo) GetMuteEndTime() uint32 {
+ if m != nil {
+ return m.MuteEndTime
+ }
+ return 0
+}
+
type PublicUserInfo struct {
UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"`
Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"`
@@ -269,7 +277,7 @@ func (m *PublicUserInfo) Reset() { *m = PublicUserInfo{} }
func (m *PublicUserInfo) String() string { return proto.CompactTextString(m) }
func (*PublicUserInfo) ProtoMessage() {}
func (*PublicUserInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{2}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{2}
}
func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b)
@@ -344,7 +352,7 @@ func (m *UserInfo) Reset() { *m = UserInfo{} }
func (m *UserInfo) String() string { return proto.CompactTextString(m) }
func (*UserInfo) ProtoMessage() {}
func (*UserInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{3}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{3}
}
func (m *UserInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserInfo.Unmarshal(m, b)
@@ -451,7 +459,7 @@ func (m *FriendInfo) Reset() { *m = FriendInfo{} }
func (m *FriendInfo) String() string { return proto.CompactTextString(m) }
func (*FriendInfo) ProtoMessage() {}
func (*FriendInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{4}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{4}
}
func (m *FriendInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendInfo.Unmarshal(m, b)
@@ -536,7 +544,7 @@ func (m *BlackInfo) Reset() { *m = BlackInfo{} }
func (m *BlackInfo) String() string { return proto.CompactTextString(m) }
func (*BlackInfo) ProtoMessage() {}
func (*BlackInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{5}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{5}
}
func (m *BlackInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackInfo.Unmarshal(m, b)
@@ -617,7 +625,7 @@ func (m *GroupRequest) Reset() { *m = GroupRequest{} }
func (m *GroupRequest) String() string { return proto.CompactTextString(m) }
func (*GroupRequest) ProtoMessage() {}
func (*GroupRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{6}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{6}
}
func (m *GroupRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupRequest.Unmarshal(m, b)
@@ -725,7 +733,7 @@ func (m *FriendRequest) Reset() { *m = FriendRequest{} }
func (m *FriendRequest) String() string { return proto.CompactTextString(m) }
func (*FriendRequest) ProtoMessage() {}
func (*FriendRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{7}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{7}
}
func (m *FriendRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendRequest.Unmarshal(m, b)
@@ -863,7 +871,7 @@ func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListRe
func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListResp) ProtoMessage() {}
func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{8}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{8}
}
func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b)
@@ -917,7 +925,7 @@ func (m *PullMessageBySeqListReq) Reset() { *m = PullMessageBySeqListReq
func (m *PullMessageBySeqListReq) String() string { return proto.CompactTextString(m) }
func (*PullMessageBySeqListReq) ProtoMessage() {}
func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{9}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{9}
}
func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b)
@@ -968,7 +976,7 @@ func (m *GetMaxAndMinSeqReq) Reset() { *m = GetMaxAndMinSeqReq{} }
func (m *GetMaxAndMinSeqReq) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqReq) ProtoMessage() {}
func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{10}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{10}
}
func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b)
@@ -1000,7 +1008,7 @@ func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} }
func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) }
func (*GetMaxAndMinSeqResp) ProtoMessage() {}
func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{11}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{11}
}
func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b)
@@ -1047,7 +1055,7 @@ func (m *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} }
func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) }
func (*UserSendMsgResp) ProtoMessage() {}
func (*UserSendMsgResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{12}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{12}
}
func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b)
@@ -1116,7 +1124,7 @@ func (m *MsgData) Reset() { *m = MsgData{} }
func (m *MsgData) String() string { return proto.CompactTextString(m) }
func (*MsgData) ProtoMessage() {}
func (*MsgData) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{13}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{13}
}
func (m *MsgData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MsgData.Unmarshal(m, b)
@@ -1277,7 +1285,7 @@ func (m *OfflinePushInfo) Reset() { *m = OfflinePushInfo{} }
func (m *OfflinePushInfo) String() string { return proto.CompactTextString(m) }
func (*OfflinePushInfo) ProtoMessage() {}
func (*OfflinePushInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{14}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{14}
}
func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b)
@@ -1345,7 +1353,7 @@ func (m *TipsComm) Reset() { *m = TipsComm{} }
func (m *TipsComm) String() string { return proto.CompactTextString(m) }
func (*TipsComm) ProtoMessage() {}
func (*TipsComm) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{15}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{15}
}
func (m *TipsComm) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TipsComm.Unmarshal(m, b)
@@ -1402,7 +1410,7 @@ func (m *GroupCreatedTips) Reset() { *m = GroupCreatedTips{} }
func (m *GroupCreatedTips) String() string { return proto.CompactTextString(m) }
func (*GroupCreatedTips) ProtoMessage() {}
func (*GroupCreatedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{16}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{16}
}
func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b)
@@ -1471,7 +1479,7 @@ func (m *GroupInfoSetTips) Reset() { *m = GroupInfoSetTips{} }
func (m *GroupInfoSetTips) String() string { return proto.CompactTextString(m) }
func (*GroupInfoSetTips) ProtoMessage() {}
func (*GroupInfoSetTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{17}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{17}
}
func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b)
@@ -1526,7 +1534,7 @@ func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTi
func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) }
func (*JoinGroupApplicationTips) ProtoMessage() {}
func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{18}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{18}
}
func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b)
@@ -1582,7 +1590,7 @@ func (m *MemberQuitTips) Reset() { *m = MemberQuitTips{} }
func (m *MemberQuitTips) String() string { return proto.CompactTextString(m) }
func (*MemberQuitTips) ProtoMessage() {}
func (*MemberQuitTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{19}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{19}
}
func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b)
@@ -1637,7 +1645,7 @@ func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAc
func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationAcceptedTips) ProtoMessage() {}
func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{20}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{20}
}
func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b)
@@ -1692,7 +1700,7 @@ func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRe
func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) }
func (*GroupApplicationRejectedTips) ProtoMessage() {}
func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{21}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{21}
}
func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b)
@@ -1748,7 +1756,7 @@ func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferred
func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) }
func (*GroupOwnerTransferredTips) ProtoMessage() {}
func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{22}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{22}
}
func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b)
@@ -1811,7 +1819,7 @@ func (m *MemberKickedTips) Reset() { *m = MemberKickedTips{} }
func (m *MemberKickedTips) String() string { return proto.CompactTextString(m) }
func (*MemberKickedTips) ProtoMessage() {}
func (*MemberKickedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{23}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{23}
}
func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b)
@@ -1874,7 +1882,7 @@ func (m *MemberInvitedTips) Reset() { *m = MemberInvitedTips{} }
func (m *MemberInvitedTips) String() string { return proto.CompactTextString(m) }
func (*MemberInvitedTips) ProtoMessage() {}
func (*MemberInvitedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{24}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{24}
}
func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b)
@@ -1936,7 +1944,7 @@ func (m *MemberEnterTips) Reset() { *m = MemberEnterTips{} }
func (m *MemberEnterTips) String() string { return proto.CompactTextString(m) }
func (*MemberEnterTips) ProtoMessage() {}
func (*MemberEnterTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{25}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{25}
}
func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b)
@@ -1990,7 +1998,7 @@ func (m *GroupDismissedTips) Reset() { *m = GroupDismissedTips{} }
func (m *GroupDismissedTips) String() string { return proto.CompactTextString(m) }
func (*GroupDismissedTips) ProtoMessage() {}
func (*GroupDismissedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{26}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{26}
}
func (m *GroupDismissedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GroupDismissedTips.Unmarshal(m, b)
@@ -2031,6 +2039,246 @@ func (m *GroupDismissedTips) GetOperationTime() int64 {
return 0
}
+type GroupMemberMutedTips struct {
+ Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
+ OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
+ OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"`
+ MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"`
+ MutedSeconds uint32 `protobuf:"varint,5,opt,name=mutedSeconds" json:"mutedSeconds,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GroupMemberMutedTips) Reset() { *m = GroupMemberMutedTips{} }
+func (m *GroupMemberMutedTips) String() string { return proto.CompactTextString(m) }
+func (*GroupMemberMutedTips) ProtoMessage() {}
+func (*GroupMemberMutedTips) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{27}
+}
+func (m *GroupMemberMutedTips) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GroupMemberMutedTips.Unmarshal(m, b)
+}
+func (m *GroupMemberMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GroupMemberMutedTips.Marshal(b, m, deterministic)
+}
+func (dst *GroupMemberMutedTips) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupMemberMutedTips.Merge(dst, src)
+}
+func (m *GroupMemberMutedTips) XXX_Size() int {
+ return xxx_messageInfo_GroupMemberMutedTips.Size(m)
+}
+func (m *GroupMemberMutedTips) XXX_DiscardUnknown() {
+ xxx_messageInfo_GroupMemberMutedTips.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GroupMemberMutedTips proto.InternalMessageInfo
+
+func (m *GroupMemberMutedTips) GetGroup() *GroupInfo {
+ if m != nil {
+ return m.Group
+ }
+ return nil
+}
+
+func (m *GroupMemberMutedTips) GetOpUser() *GroupMemberFullInfo {
+ if m != nil {
+ return m.OpUser
+ }
+ return nil
+}
+
+func (m *GroupMemberMutedTips) GetOperationTime() int64 {
+ if m != nil {
+ return m.OperationTime
+ }
+ return 0
+}
+
+func (m *GroupMemberMutedTips) GetMutedUser() *GroupMemberFullInfo {
+ if m != nil {
+ return m.MutedUser
+ }
+ return nil
+}
+
+func (m *GroupMemberMutedTips) GetMutedSeconds() uint32 {
+ if m != nil {
+ return m.MutedSeconds
+ }
+ return 0
+}
+
+type GroupMemberCancelMutedTips struct {
+ Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
+ OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
+ OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"`
+ MutedUser *GroupMemberFullInfo `protobuf:"bytes,4,opt,name=mutedUser" json:"mutedUser,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GroupMemberCancelMutedTips) Reset() { *m = GroupMemberCancelMutedTips{} }
+func (m *GroupMemberCancelMutedTips) String() string { return proto.CompactTextString(m) }
+func (*GroupMemberCancelMutedTips) ProtoMessage() {}
+func (*GroupMemberCancelMutedTips) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{28}
+}
+func (m *GroupMemberCancelMutedTips) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GroupMemberCancelMutedTips.Unmarshal(m, b)
+}
+func (m *GroupMemberCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GroupMemberCancelMutedTips.Marshal(b, m, deterministic)
+}
+func (dst *GroupMemberCancelMutedTips) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupMemberCancelMutedTips.Merge(dst, src)
+}
+func (m *GroupMemberCancelMutedTips) XXX_Size() int {
+ return xxx_messageInfo_GroupMemberCancelMutedTips.Size(m)
+}
+func (m *GroupMemberCancelMutedTips) XXX_DiscardUnknown() {
+ xxx_messageInfo_GroupMemberCancelMutedTips.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GroupMemberCancelMutedTips proto.InternalMessageInfo
+
+func (m *GroupMemberCancelMutedTips) GetGroup() *GroupInfo {
+ if m != nil {
+ return m.Group
+ }
+ return nil
+}
+
+func (m *GroupMemberCancelMutedTips) GetOpUser() *GroupMemberFullInfo {
+ if m != nil {
+ return m.OpUser
+ }
+ return nil
+}
+
+func (m *GroupMemberCancelMutedTips) GetOperationTime() int64 {
+ if m != nil {
+ return m.OperationTime
+ }
+ return 0
+}
+
+func (m *GroupMemberCancelMutedTips) GetMutedUser() *GroupMemberFullInfo {
+ if m != nil {
+ return m.MutedUser
+ }
+ return nil
+}
+
+type GroupMutedTips struct {
+ Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
+ OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
+ OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GroupMutedTips) Reset() { *m = GroupMutedTips{} }
+func (m *GroupMutedTips) String() string { return proto.CompactTextString(m) }
+func (*GroupMutedTips) ProtoMessage() {}
+func (*GroupMutedTips) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{29}
+}
+func (m *GroupMutedTips) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GroupMutedTips.Unmarshal(m, b)
+}
+func (m *GroupMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GroupMutedTips.Marshal(b, m, deterministic)
+}
+func (dst *GroupMutedTips) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupMutedTips.Merge(dst, src)
+}
+func (m *GroupMutedTips) XXX_Size() int {
+ return xxx_messageInfo_GroupMutedTips.Size(m)
+}
+func (m *GroupMutedTips) XXX_DiscardUnknown() {
+ xxx_messageInfo_GroupMutedTips.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GroupMutedTips proto.InternalMessageInfo
+
+func (m *GroupMutedTips) GetGroup() *GroupInfo {
+ if m != nil {
+ return m.Group
+ }
+ return nil
+}
+
+func (m *GroupMutedTips) GetOpUser() *GroupMemberFullInfo {
+ if m != nil {
+ return m.OpUser
+ }
+ return nil
+}
+
+func (m *GroupMutedTips) GetOperationTime() int64 {
+ if m != nil {
+ return m.OperationTime
+ }
+ return 0
+}
+
+type GroupCancelMutedTips struct {
+ Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"`
+ OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"`
+ OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"`
+ XXX_NoUnkeyedLiteral struct{} `json:"-"`
+ XXX_unrecognized []byte `json:"-"`
+ XXX_sizecache int32 `json:"-"`
+}
+
+func (m *GroupCancelMutedTips) Reset() { *m = GroupCancelMutedTips{} }
+func (m *GroupCancelMutedTips) String() string { return proto.CompactTextString(m) }
+func (*GroupCancelMutedTips) ProtoMessage() {}
+func (*GroupCancelMutedTips) Descriptor() ([]byte, []int) {
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{30}
+}
+func (m *GroupCancelMutedTips) XXX_Unmarshal(b []byte) error {
+ return xxx_messageInfo_GroupCancelMutedTips.Unmarshal(m, b)
+}
+func (m *GroupCancelMutedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+ return xxx_messageInfo_GroupCancelMutedTips.Marshal(b, m, deterministic)
+}
+func (dst *GroupCancelMutedTips) XXX_Merge(src proto.Message) {
+ xxx_messageInfo_GroupCancelMutedTips.Merge(dst, src)
+}
+func (m *GroupCancelMutedTips) XXX_Size() int {
+ return xxx_messageInfo_GroupCancelMutedTips.Size(m)
+}
+func (m *GroupCancelMutedTips) XXX_DiscardUnknown() {
+ xxx_messageInfo_GroupCancelMutedTips.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GroupCancelMutedTips proto.InternalMessageInfo
+
+func (m *GroupCancelMutedTips) GetGroup() *GroupInfo {
+ if m != nil {
+ return m.Group
+ }
+ return nil
+}
+
+func (m *GroupCancelMutedTips) GetOpUser() *GroupMemberFullInfo {
+ if m != nil {
+ return m.OpUser
+ }
+ return nil
+}
+
+func (m *GroupCancelMutedTips) GetOperationTime() int64 {
+ if m != nil {
+ return m.OperationTime
+ }
+ return 0
+}
+
type FriendApplication struct {
AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"`
AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"`
@@ -2044,7 +2292,7 @@ func (m *FriendApplication) Reset() { *m = FriendApplication{} }
func (m *FriendApplication) String() string { return proto.CompactTextString(m) }
func (*FriendApplication) ProtoMessage() {}
func (*FriendApplication) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{27}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{31}
}
func (m *FriendApplication) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplication.Unmarshal(m, b)
@@ -2097,7 +2345,7 @@ func (m *FromToUserID) Reset() { *m = FromToUserID{} }
func (m *FromToUserID) String() string { return proto.CompactTextString(m) }
func (*FromToUserID) ProtoMessage() {}
func (*FromToUserID) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{28}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{32}
}
func (m *FromToUserID) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FromToUserID.Unmarshal(m, b)
@@ -2143,7 +2391,7 @@ func (m *FriendApplicationTips) Reset() { *m = FriendApplicationTips{} }
func (m *FriendApplicationTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationTips) ProtoMessage() {}
func (*FriendApplicationTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{29}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{33}
}
func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b)
@@ -2183,7 +2431,7 @@ func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplication
func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationApprovedTips) ProtoMessage() {}
func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{30}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{34}
}
func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b)
@@ -2230,7 +2478,7 @@ func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplication
func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) }
func (*FriendApplicationRejectedTips) ProtoMessage() {}
func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{31}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{35}
}
func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b)
@@ -2278,7 +2526,7 @@ func (m *FriendAddedTips) Reset() { *m = FriendAddedTips{} }
func (m *FriendAddedTips) String() string { return proto.CompactTextString(m) }
func (*FriendAddedTips) ProtoMessage() {}
func (*FriendAddedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{32}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{36}
}
func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b)
@@ -2331,7 +2579,7 @@ func (m *FriendDeletedTips) Reset() { *m = FriendDeletedTips{} }
func (m *FriendDeletedTips) String() string { return proto.CompactTextString(m) }
func (*FriendDeletedTips) ProtoMessage() {}
func (*FriendDeletedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{33}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{37}
}
func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b)
@@ -2369,7 +2617,7 @@ func (m *BlackAddedTips) Reset() { *m = BlackAddedTips{} }
func (m *BlackAddedTips) String() string { return proto.CompactTextString(m) }
func (*BlackAddedTips) ProtoMessage() {}
func (*BlackAddedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{34}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{38}
}
func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b)
@@ -2407,7 +2655,7 @@ func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} }
func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) }
func (*BlackDeletedTips) ProtoMessage() {}
func (*BlackDeletedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{35}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{39}
}
func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b)
@@ -2445,7 +2693,7 @@ func (m *FriendInfoChangedTips) Reset() { *m = FriendInfoChangedTips{} }
func (m *FriendInfoChangedTips) String() string { return proto.CompactTextString(m) }
func (*FriendInfoChangedTips) ProtoMessage() {}
func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{36}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{40}
}
func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b)
@@ -2484,7 +2732,7 @@ func (m *UserInfoUpdatedTips) Reset() { *m = UserInfoUpdatedTips{} }
func (m *UserInfoUpdatedTips) String() string { return proto.CompactTextString(m) }
func (*UserInfoUpdatedTips) ProtoMessage() {}
func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{37}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{41}
}
func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b)
@@ -2523,7 +2771,7 @@ func (m *ConversationUpdateTips) Reset() { *m = ConversationUpdateTips{}
func (m *ConversationUpdateTips) String() string { return proto.CompactTextString(m) }
func (*ConversationUpdateTips) ProtoMessage() {}
func (*ConversationUpdateTips) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{38}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{42}
}
func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b)
@@ -2563,7 +2811,7 @@ func (m *RequestPagination) Reset() { *m = RequestPagination{} }
func (m *RequestPagination) String() string { return proto.CompactTextString(m) }
func (*RequestPagination) ProtoMessage() {}
func (*RequestPagination) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{39}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{43}
}
func (m *RequestPagination) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RequestPagination.Unmarshal(m, b)
@@ -2609,7 +2857,7 @@ func (m *ResponsePagination) Reset() { *m = ResponsePagination{} }
func (m *ResponsePagination) String() string { return proto.CompactTextString(m) }
func (*ResponsePagination) ProtoMessage() {}
func (*ResponsePagination) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{40}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{44}
}
func (m *ResponsePagination) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResponsePagination.Unmarshal(m, b)
@@ -2662,7 +2910,7 @@ func (m *SignalReq) Reset() { *m = SignalReq{} }
func (m *SignalReq) String() string { return proto.CompactTextString(m) }
func (*SignalReq) ProtoMessage() {}
func (*SignalReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{41}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{45}
}
func (m *SignalReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalReq.Unmarshal(m, b)
@@ -2929,7 +3177,7 @@ func (m *SignalResp) Reset() { *m = SignalResp{} }
func (m *SignalResp) String() string { return proto.CompactTextString(m) }
func (*SignalResp) ProtoMessage() {}
func (*SignalResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{42}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{46}
}
func (m *SignalResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalResp.Unmarshal(m, b)
@@ -3197,7 +3445,7 @@ func (m *InvitationInfo) Reset() { *m = InvitationInfo{} }
func (m *InvitationInfo) String() string { return proto.CompactTextString(m) }
func (*InvitationInfo) ProtoMessage() {}
func (*InvitationInfo) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{43}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{47}
}
func (m *InvitationInfo) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_InvitationInfo.Unmarshal(m, b)
@@ -3293,7 +3541,7 @@ func (m *ParticipantMetaData) Reset() { *m = ParticipantMetaData{} }
func (m *ParticipantMetaData) String() string { return proto.CompactTextString(m) }
func (*ParticipantMetaData) ProtoMessage() {}
func (*ParticipantMetaData) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{44}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{48}
}
func (m *ParticipantMetaData) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ParticipantMetaData.Unmarshal(m, b)
@@ -3348,7 +3596,7 @@ func (m *SignalInviteReq) Reset() { *m = SignalInviteReq{} }
func (m *SignalInviteReq) String() string { return proto.CompactTextString(m) }
func (*SignalInviteReq) ProtoMessage() {}
func (*SignalInviteReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{45}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{49}
}
func (m *SignalInviteReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalInviteReq.Unmarshal(m, b)
@@ -3409,7 +3657,7 @@ func (m *SignalInviteReply) Reset() { *m = SignalInviteReply{} }
func (m *SignalInviteReply) String() string { return proto.CompactTextString(m) }
func (*SignalInviteReply) ProtoMessage() {}
func (*SignalInviteReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{46}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{50}
}
func (m *SignalInviteReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalInviteReply.Unmarshal(m, b)
@@ -3464,7 +3712,7 @@ func (m *SignalInviteInGroupReq) Reset() { *m = SignalInviteInGroupReq{}
func (m *SignalInviteInGroupReq) String() string { return proto.CompactTextString(m) }
func (*SignalInviteInGroupReq) ProtoMessage() {}
func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{47}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{51}
}
func (m *SignalInviteInGroupReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalInviteInGroupReq.Unmarshal(m, b)
@@ -3525,7 +3773,7 @@ func (m *SignalInviteInGroupReply) Reset() { *m = SignalInviteInGroupRep
func (m *SignalInviteInGroupReply) String() string { return proto.CompactTextString(m) }
func (*SignalInviteInGroupReply) ProtoMessage() {}
func (*SignalInviteInGroupReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{48}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{52}
}
func (m *SignalInviteInGroupReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalInviteInGroupReply.Unmarshal(m, b)
@@ -3580,7 +3828,7 @@ func (m *SignalCancelReq) Reset() { *m = SignalCancelReq{} }
func (m *SignalCancelReq) String() string { return proto.CompactTextString(m) }
func (*SignalCancelReq) ProtoMessage() {}
func (*SignalCancelReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{49}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{53}
}
func (m *SignalCancelReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalCancelReq.Unmarshal(m, b)
@@ -3638,7 +3886,7 @@ func (m *SignalCancelReply) Reset() { *m = SignalCancelReply{} }
func (m *SignalCancelReply) String() string { return proto.CompactTextString(m) }
func (*SignalCancelReply) ProtoMessage() {}
func (*SignalCancelReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{50}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{54}
}
func (m *SignalCancelReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalCancelReply.Unmarshal(m, b)
@@ -3673,7 +3921,7 @@ func (m *SignalAcceptReq) Reset() { *m = SignalAcceptReq{} }
func (m *SignalAcceptReq) String() string { return proto.CompactTextString(m) }
func (*SignalAcceptReq) ProtoMessage() {}
func (*SignalAcceptReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{51}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{55}
}
func (m *SignalAcceptReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalAcceptReq.Unmarshal(m, b)
@@ -3741,7 +3989,7 @@ func (m *SignalAcceptReply) Reset() { *m = SignalAcceptReply{} }
func (m *SignalAcceptReply) String() string { return proto.CompactTextString(m) }
func (*SignalAcceptReply) ProtoMessage() {}
func (*SignalAcceptReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{52}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{56}
}
func (m *SignalAcceptReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalAcceptReply.Unmarshal(m, b)
@@ -3795,7 +4043,7 @@ func (m *SignalHungUpReq) Reset() { *m = SignalHungUpReq{} }
func (m *SignalHungUpReq) String() string { return proto.CompactTextString(m) }
func (*SignalHungUpReq) ProtoMessage() {}
func (*SignalHungUpReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{53}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{57}
}
func (m *SignalHungUpReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalHungUpReq.Unmarshal(m, b)
@@ -3846,7 +4094,7 @@ func (m *SignalHungUpReply) Reset() { *m = SignalHungUpReply{} }
func (m *SignalHungUpReply) String() string { return proto.CompactTextString(m) }
func (*SignalHungUpReply) ProtoMessage() {}
func (*SignalHungUpReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{54}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{58}
}
func (m *SignalHungUpReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalHungUpReply.Unmarshal(m, b)
@@ -3881,7 +4129,7 @@ func (m *SignalRejectReq) Reset() { *m = SignalRejectReq{} }
func (m *SignalRejectReq) String() string { return proto.CompactTextString(m) }
func (*SignalRejectReq) ProtoMessage() {}
func (*SignalRejectReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{55}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{59}
}
func (m *SignalRejectReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalRejectReq.Unmarshal(m, b)
@@ -3946,7 +4194,7 @@ func (m *SignalRejectReply) Reset() { *m = SignalRejectReply{} }
func (m *SignalRejectReply) String() string { return proto.CompactTextString(m) }
func (*SignalRejectReply) ProtoMessage() {}
func (*SignalRejectReply) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{56}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{60}
}
func (m *SignalRejectReply) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SignalRejectReply.Unmarshal(m, b)
@@ -3980,7 +4228,7 @@ func (m *DelMsgListReq) Reset() { *m = DelMsgListReq{} }
func (m *DelMsgListReq) String() string { return proto.CompactTextString(m) }
func (*DelMsgListReq) ProtoMessage() {}
func (*DelMsgListReq) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{57}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{61}
}
func (m *DelMsgListReq) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelMsgListReq.Unmarshal(m, b)
@@ -4040,7 +4288,7 @@ func (m *DelMsgListResp) Reset() { *m = DelMsgListResp{} }
func (m *DelMsgListResp) String() string { return proto.CompactTextString(m) }
func (*DelMsgListResp) ProtoMessage() {}
func (*DelMsgListResp) Descriptor() ([]byte, []int) {
- return fileDescriptor_ws_489fb152692e30da, []int{58}
+ return fileDescriptor_ws_f1fa7995a968e7fe, []int{62}
}
func (m *DelMsgListResp) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DelMsgListResp.Unmarshal(m, b)
@@ -4103,6 +4351,10 @@ func init() {
proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips")
proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips")
proto.RegisterType((*GroupDismissedTips)(nil), "server_api_params.GroupDismissedTips")
+ proto.RegisterType((*GroupMemberMutedTips)(nil), "server_api_params.GroupMemberMutedTips")
+ proto.RegisterType((*GroupMemberCancelMutedTips)(nil), "server_api_params.GroupMemberCancelMutedTips")
+ proto.RegisterType((*GroupMutedTips)(nil), "server_api_params.GroupMutedTips")
+ proto.RegisterType((*GroupCancelMutedTips)(nil), "server_api_params.GroupCancelMutedTips")
proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication")
proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID")
proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips")
@@ -4137,170 +4389,176 @@ func init() {
proto.RegisterType((*DelMsgListResp)(nil), "server_api_params.DelMsgListResp")
}
-func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_489fb152692e30da) }
+func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f1fa7995a968e7fe) }
-var fileDescriptor_ws_489fb152692e30da = []byte{
- // 2589 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0xe4, 0x48,
- 0x15, 0xc7, 0xee, 0x74, 0x27, 0xfd, 0x92, 0x4e, 0x27, 0xce, 0x12, 0x9a, 0x61, 0x76, 0x08, 0x56,
- 0xb4, 0x0c, 0x0b, 0x64, 0xd1, 0x20, 0x24, 0xd8, 0x85, 0x41, 0xf9, 0x98, 0xaf, 0x25, 0x3d, 0x93,
- 0x75, 0xcf, 0xb0, 0x08, 0x90, 0x46, 0x95, 0x76, 0xa5, 0xe3, 0x8d, 0x5d, 0xe5, 0x76, 0xd9, 0x99,
- 0x89, 0x84, 0x84, 0x04, 0x12, 0xe2, 0xc6, 0x09, 0xae, 0x48, 0x5c, 0x10, 0x12, 0x5a, 0xed, 0x01,
- 0xc4, 0x05, 0x71, 0xe2, 0x1f, 0xe0, 0xcc, 0x8d, 0x33, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0xfa, 0xb0,
- 0x5d, 0x65, 0x77, 0x27, 0xbd, 0x51, 0xb4, 0x03, 0x1a, 0x6e, 0xfd, 0x9e, 0xeb, 0xbd, 0x7a, 0xf5,
- 0x7e, 0xef, 0xbd, 0x7a, 0x7e, 0x6e, 0xe8, 0x32, 0xff, 0xe4, 0xe9, 0x33, 0xf6, 0xc6, 0x33, 0xb6,
- 0x15, 0x27, 0x34, 0xa5, 0xce, 0x2a, 0xc3, 0xc9, 0x29, 0x4e, 0x9e, 0xa2, 0x38, 0x78, 0x1a, 0xa3,
- 0x04, 0x45, 0xcc, 0xfd, 0x87, 0x0d, 0xed, 0x7b, 0x09, 0xcd, 0xe2, 0x07, 0xe4, 0x88, 0x3a, 0x3d,
- 0x98, 0x1f, 0x09, 0x62, 0xaf, 0x67, 0x6d, 0x58, 0x37, 0xdb, 0x5e, 0x4e, 0x3a, 0xd7, 0xa1, 0x2d,
- 0x7e, 0x3e, 0x44, 0x11, 0xee, 0xd9, 0xe2, 0x59, 0xc9, 0x70, 0x5c, 0x58, 0x22, 0x34, 0x0d, 0x8e,
- 0x82, 0x21, 0x4a, 0x03, 0x4a, 0x7a, 0x0d, 0xb1, 0xc0, 0xe0, 0xf1, 0x35, 0x01, 0x49, 0x13, 0xea,
- 0x67, 0x43, 0xb1, 0x66, 0x4e, 0xae, 0xd1, 0x79, 0x7c, 0xff, 0x23, 0x34, 0xc4, 0x4f, 0xbc, 0xfd,
- 0x5e, 0x53, 0xee, 0xaf, 0x48, 0x67, 0x03, 0x16, 0xe9, 0x33, 0x82, 0x93, 0x27, 0x0c, 0x27, 0x0f,
- 0xf6, 0x7a, 0x2d, 0xf1, 0x54, 0x67, 0x39, 0x37, 0x00, 0x86, 0x09, 0x46, 0x29, 0x7e, 0x1c, 0x44,
- 0xb8, 0x37, 0xbf, 0x61, 0xdd, 0xec, 0x78, 0x1a, 0x87, 0x6b, 0x88, 0x70, 0x74, 0x88, 0x93, 0x5d,
- 0x9a, 0x91, 0xb4, 0xb7, 0x20, 0x16, 0xe8, 0x2c, 0x67, 0x19, 0x6c, 0xfc, 0xbc, 0xd7, 0x16, 0xaa,
- 0x6d, 0xfc, 0xdc, 0x59, 0x87, 0x16, 0x4b, 0x51, 0x9a, 0xb1, 0x1e, 0x6c, 0x58, 0x37, 0x9b, 0x9e,
- 0xa2, 0x9c, 0x4d, 0xe8, 0x08, 0xbd, 0x34, 0xb7, 0x66, 0x51, 0x88, 0x98, 0xcc, 0xc2, 0x63, 0x8f,
- 0xcf, 0x62, 0xdc, 0x5b, 0x12, 0x0a, 0x4a, 0x86, 0xfb, 0x07, 0x1b, 0xd6, 0x84, 0xdf, 0xfb, 0xc2,
- 0x80, 0xbb, 0x59, 0x18, 0x5e, 0x80, 0xc0, 0x3a, 0xb4, 0x32, 0xb9, 0x9d, 0x74, 0xbf, 0xa2, 0xf8,
- 0x3e, 0x09, 0x0d, 0xf1, 0x3e, 0x3e, 0xc5, 0xa1, 0x70, 0x7c, 0xd3, 0x2b, 0x19, 0xce, 0x35, 0x58,
- 0x78, 0x8f, 0x06, 0x44, 0xf8, 0x64, 0x4e, 0x3c, 0x2c, 0x68, 0xfe, 0x8c, 0x04, 0xc3, 0x13, 0xc2,
- 0x21, 0x95, 0xee, 0x2e, 0x68, 0x1d, 0x89, 0x96, 0x89, 0xc4, 0x6b, 0xb0, 0x8c, 0xe2, 0xb8, 0x8f,
- 0xc8, 0x08, 0x27, 0x72, 0xd3, 0x79, 0xa1, 0xb7, 0xc2, 0xe5, 0x78, 0xf0, 0x9d, 0x06, 0x34, 0x4b,
- 0x86, 0x58, 0xb8, 0xbb, 0xe9, 0x69, 0x1c, 0xae, 0x87, 0xc6, 0x38, 0xd1, 0xdc, 0x28, 0x3d, 0x5f,
- 0xe1, 0x2a, 0x54, 0x20, 0x47, 0xc5, 0xfd, 0x89, 0x05, 0xcb, 0x07, 0xd9, 0x61, 0x18, 0x0c, 0xc5,
- 0x02, 0xee, 0xb4, 0xd2, 0x35, 0x96, 0xe1, 0x1a, 0xfd, 0x80, 0xf6, 0xf4, 0x03, 0x36, 0xcc, 0x03,
- 0xae, 0x43, 0x6b, 0x84, 0x89, 0x8f, 0x13, 0xe5, 0x30, 0x45, 0x29, 0x43, 0x9a, 0x85, 0x21, 0xbf,
- 0xb0, 0x61, 0xe1, 0x23, 0x36, 0x61, 0x03, 0x16, 0xe3, 0x63, 0x4a, 0xf0, 0xc3, 0x8c, 0x07, 0x8d,
- 0xb2, 0x45, 0x67, 0x39, 0xaf, 0x40, 0xf3, 0x30, 0x48, 0xd2, 0x63, 0x81, 0x5a, 0xc7, 0x93, 0x04,
- 0xe7, 0xe2, 0x08, 0x05, 0x12, 0xaa, 0xb6, 0x27, 0x09, 0x75, 0xa0, 0x85, 0x22, 0xde, 0xcd, 0x0c,
- 0x6a, 0xd7, 0x32, 0xa8, 0x8e, 0x3c, 0x4c, 0x42, 0xde, 0xfd, 0xa7, 0x05, 0x70, 0x37, 0x09, 0x30,
- 0xf1, 0x85, 0x6b, 0x2a, 0xa9, 0x6b, 0xd5, 0x53, 0x77, 0x1d, 0x5a, 0x09, 0x8e, 0x50, 0x72, 0x92,
- 0x87, 0xb6, 0xa4, 0x2a, 0x06, 0x35, 0x6a, 0x06, 0xbd, 0x05, 0x70, 0x24, 0xf6, 0xe1, 0x7a, 0x84,
- 0xab, 0x16, 0x6f, 0x7d, 0x6a, 0xab, 0x56, 0xe4, 0xb6, 0x72, 0x94, 0x3c, 0x6d, 0x39, 0xcf, 0x1b,
- 0xe4, 0xfb, 0x2a, 0x3c, 0x9b, 0x32, 0x6f, 0x0a, 0xc6, 0x84, 0xe8, 0x6c, 0x9d, 0x13, 0x9d, 0xf3,
- 0x45, 0x50, 0xfc, 0xdd, 0x82, 0xf6, 0x4e, 0x88, 0x86, 0x27, 0x33, 0x1e, 0xdd, 0x3c, 0xa2, 0x5d,
- 0x3b, 0xe2, 0x3d, 0xe8, 0x1c, 0x72, 0x75, 0xf9, 0x11, 0x84, 0x17, 0x16, 0x6f, 0x7d, 0x66, 0xc2,
- 0x29, 0xcd, 0xa4, 0xf0, 0x4c, 0x39, 0xf3, 0xb8, 0x73, 0x17, 0x1f, 0xb7, 0x79, 0xce, 0x71, 0x5b,
- 0xc5, 0x71, 0xff, 0x62, 0xc3, 0x92, 0x28, 0x63, 0x1e, 0x1e, 0x67, 0x98, 0xa5, 0xce, 0x37, 0x60,
- 0x21, 0xcb, 0x4d, 0xb5, 0x66, 0x35, 0xb5, 0x10, 0x71, 0xde, 0x54, 0x45, 0x53, 0xc8, 0xdb, 0x42,
- 0xfe, 0xfa, 0x04, 0xf9, 0xe2, 0xc6, 0xf2, 0xca, 0xe5, 0xfc, 0x82, 0x39, 0x46, 0xc4, 0x0f, 0xb1,
- 0x87, 0x59, 0x16, 0xa6, 0xaa, 0x16, 0x1a, 0x3c, 0x19, 0x69, 0xe3, 0x3e, 0x1b, 0xa9, 0xeb, 0x47,
- 0x51, 0xdc, 0x3b, 0x72, 0x1d, 0x7f, 0x24, 0x8f, 0x5e, 0x32, 0x78, 0xa2, 0x26, 0x78, 0x2c, 0x10,
- 0x92, 0x69, 0x95, 0x93, 0xe5, 0x9e, 0xca, 0x6b, 0x32, 0x10, 0x0c, 0x1e, 0x87, 0x58, 0xd2, 0x42,
- 0x81, 0xbc, 0x77, 0x34, 0x4e, 0xf5, 0xda, 0x71, 0xff, 0xda, 0x80, 0x8e, 0x4c, 0x9f, 0xdc, 0xa9,
- 0x37, 0x78, 0x9c, 0xd3, 0xc8, 0x88, 0x22, 0x8d, 0xc3, 0xad, 0xe0, 0xd4, 0x43, 0xb3, 0xd0, 0x18,
- 0x3c, 0x1e, 0x8a, 0x9c, 0xbe, 0x6b, 0x14, 0x1c, 0x9d, 0x95, 0xef, 0x72, 0x4f, 0x2f, 0x3c, 0x1a,
- 0x87, 0x97, 0xb2, 0x94, 0x1a, 0xd1, 0x51, 0xd0, 0x5c, 0x36, 0xa5, 0xc5, 0xfe, 0x32, 0x3e, 0x34,
- 0x0e, 0xf7, 0x6f, 0x4a, 0xf3, 0xbd, 0xa5, 0x93, 0x4a, 0x86, 0xd4, 0xac, 0xf6, 0x95, 0x17, 0x45,
- 0x41, 0xd7, 0x50, 0x6d, 0x9f, 0x8b, 0x2a, 0x18, 0xa8, 0x9a, 0xc9, 0xb5, 0x58, 0x4b, 0xae, 0x4d,
- 0xe8, 0x48, 0x3d, 0x79, 0xd0, 0x2f, 0xc9, 0x8b, 0xdc, 0x60, 0x9a, 0xb1, 0xd1, 0xa9, 0xc6, 0x86,
- 0x89, 0xee, 0xf2, 0x14, 0x74, 0xbb, 0x05, 0xba, 0x3f, 0x80, 0xde, 0x41, 0x16, 0x86, 0x7d, 0xcc,
- 0x18, 0x1a, 0xe1, 0x9d, 0xb3, 0x01, 0x1e, 0xef, 0x07, 0x2c, 0xf5, 0x30, 0x8b, 0x79, 0x9c, 0xe1,
- 0x24, 0xd9, 0xa5, 0x3e, 0x16, 0x20, 0x37, 0xbd, 0x9c, 0xe4, 0x27, 0xc4, 0x49, 0xc2, 0x0d, 0x50,
- 0x15, 0x52, 0x52, 0xce, 0x16, 0xcc, 0x85, 0x01, 0xe3, 0xb1, 0xde, 0xb8, 0xb9, 0x78, 0xeb, 0xda,
- 0x84, 0x54, 0xe9, 0xb3, 0xd1, 0x1e, 0x4a, 0x91, 0x27, 0xd6, 0xb9, 0x11, 0x7c, 0x62, 0xf2, 0xee,
- 0xe3, 0xa9, 0x37, 0x18, 0xaf, 0x61, 0xa2, 0x08, 0x04, 0x94, 0x14, 0xcd, 0x87, 0xce, 0xe2, 0x66,
- 0x33, 0xa9, 0x47, 0xd8, 0xd1, 0xf1, 0x72, 0xd2, 0x7d, 0x05, 0x9c, 0x7b, 0x38, 0xed, 0xa3, 0xe7,
- 0xdb, 0xc4, 0xef, 0x07, 0x64, 0x80, 0xc7, 0x1e, 0x1e, 0xbb, 0x77, 0x60, 0xad, 0xc6, 0x65, 0x31,
- 0x37, 0x20, 0x42, 0xcf, 0x07, 0x78, 0x2c, 0x0c, 0xe8, 0x78, 0x8a, 0x12, 0x7c, 0xb1, 0x4a, 0x95,
- 0x47, 0x45, 0xb9, 0x63, 0xe8, 0x72, 0x84, 0x06, 0x98, 0xf8, 0x7d, 0x36, 0x12, 0x2a, 0x36, 0x60,
- 0x51, 0x7a, 0xa0, 0xcf, 0x46, 0x65, 0xbd, 0xd5, 0x58, 0x7c, 0xc5, 0x30, 0x0c, 0x30, 0x49, 0xe5,
- 0x0a, 0x75, 0x1a, 0x8d, 0xc5, 0x83, 0x91, 0x61, 0xe2, 0x17, 0x57, 0x4e, 0xc3, 0x2b, 0x68, 0xf7,
- 0x8f, 0x4d, 0x98, 0x57, 0x0e, 0x15, 0xdd, 0x21, 0xbf, 0xe2, 0x0a, 0x7f, 0x49, 0x4a, 0x06, 0xe3,
- 0xf0, 0xb4, 0xec, 0xd3, 0x24, 0xa5, 0x77, 0x76, 0x0d, 0xb3, 0xb3, 0xab, 0xd8, 0x34, 0x57, 0xb7,
- 0xa9, 0x72, 0xae, 0x66, 0xfd, 0x5c, 0xaf, 0xc3, 0x0a, 0x13, 0x09, 0x73, 0x10, 0xa2, 0xf4, 0x88,
- 0x26, 0x91, 0xba, 0xb1, 0x9a, 0x5e, 0x8d, 0xcf, 0x8b, 0xbd, 0xe4, 0x15, 0x09, 0x2b, 0x33, 0xb2,
- 0xc2, 0xe5, 0xe9, 0x21, 0x39, 0x79, 0xe2, 0xca, 0x56, 0xc1, 0x64, 0x4a, 0xdb, 0x18, 0x0b, 0x28,
- 0x11, 0x9d, 0xae, 0xcc, 0x4f, 0x9d, 0xc5, 0x4f, 0x1e, 0xb1, 0xd1, 0xdd, 0x84, 0x46, 0xaa, 0x61,
- 0xc8, 0x49, 0x71, 0x72, 0x4a, 0x52, 0x4c, 0x52, 0x21, 0xbb, 0x28, 0x65, 0x35, 0x16, 0x97, 0x55,
- 0xa4, 0x48, 0xce, 0x25, 0x2f, 0x27, 0x9d, 0x15, 0x68, 0x30, 0x3c, 0x56, 0x19, 0xc7, 0x7f, 0x1a,
- 0xc8, 0x75, 0x4d, 0xe4, 0x2a, 0xa5, 0x60, 0x45, 0x3c, 0xd5, 0x4b, 0x41, 0xd9, 0xeb, 0xaf, 0x1a,
- 0xbd, 0xfe, 0x36, 0xcc, 0xd3, 0x98, 0xc7, 0x39, 0xeb, 0x39, 0x22, 0xc7, 0x3e, 0x3b, 0x3d, 0xc7,
- 0xb6, 0x1e, 0xc9, 0x95, 0x77, 0x48, 0x9a, 0x9c, 0x79, 0xb9, 0x9c, 0xb3, 0x0f, 0x5d, 0x7a, 0x74,
- 0x14, 0x06, 0x04, 0x1f, 0x64, 0xec, 0x58, 0xdc, 0x6c, 0x6b, 0xe2, 0x66, 0x73, 0x27, 0xa8, 0x7a,
- 0x64, 0xae, 0xf4, 0xaa, 0xa2, 0xd7, 0xde, 0x84, 0x25, 0x7d, 0x1b, 0xee, 0x86, 0x13, 0x7c, 0xa6,
- 0x62, 0x90, 0xff, 0xe4, 0xcd, 0xde, 0x29, 0x0a, 0x33, 0x79, 0x0d, 0x2c, 0x78, 0x92, 0x78, 0xd3,
- 0xfe, 0xaa, 0xe5, 0xfe, 0xdc, 0x82, 0x6e, 0x65, 0x03, 0xbe, 0x3a, 0x0d, 0xd2, 0x10, 0x2b, 0x0d,
- 0x92, 0x70, 0x1c, 0x98, 0xf3, 0x31, 0x1b, 0xaa, 0x10, 0x16, 0xbf, 0x55, 0x25, 0x6b, 0x14, 0xed,
- 0x22, 0x7f, 0xa1, 0x7b, 0x34, 0xe0, 0x8a, 0x06, 0x34, 0x23, 0x7e, 0xf1, 0x42, 0xa7, 0xf1, 0x78,
- 0x08, 0x05, 0x8f, 0x06, 0x3b, 0xc8, 0x1f, 0x61, 0xf9, 0xda, 0xd5, 0x14, 0x36, 0x99, 0x4c, 0xd7,
- 0x87, 0x85, 0xc7, 0x41, 0xcc, 0x76, 0x69, 0x14, 0x71, 0x20, 0x7c, 0x9c, 0xf2, 0x5e, 0xd5, 0x12,
- 0x78, 0x2b, 0x8a, 0x87, 0x8a, 0x8f, 0x8f, 0x50, 0x16, 0xa6, 0x7c, 0x69, 0x9e, 0xb8, 0x1a, 0x4b,
- 0xbc, 0x70, 0x30, 0x4a, 0xf6, 0xa4, 0xb4, 0xb4, 0x53, 0xe3, 0xb8, 0x7f, 0xb6, 0x61, 0x45, 0x34,
- 0x0e, 0xbb, 0x02, 0x76, 0x5f, 0x08, 0xdd, 0x82, 0xa6, 0x48, 0x43, 0xd5, 0xac, 0x9c, 0xdf, 0x6c,
- 0xc8, 0xa5, 0xce, 0x6d, 0x68, 0xd1, 0x58, 0xb4, 0x9c, 0xb2, 0x43, 0x79, 0x6d, 0x9a, 0x90, 0xf9,
- 0x6e, 0xe7, 0x29, 0x29, 0xe7, 0x2e, 0x80, 0x7c, 0xed, 0xdc, 0x2f, 0x4b, 0xf7, 0xac, 0x3a, 0x34,
- 0x49, 0xee, 0xdc, 0xa2, 0x0c, 0x17, 0x2f, 0x78, 0x0d, 0xcf, 0x64, 0x3a, 0x0f, 0x61, 0x59, 0x98,
- 0xfd, 0x28, 0xef, 0x3a, 0x05, 0x06, 0xb3, 0xef, 0x58, 0x91, 0x76, 0x7f, 0x65, 0x29, 0x37, 0xf2,
- 0xa7, 0x03, 0x2c, 0x7d, 0x5f, 0xba, 0xc4, 0xba, 0x94, 0x4b, 0xae, 0xc1, 0x42, 0x94, 0x69, 0x4d,
- 0x70, 0xc3, 0x2b, 0xe8, 0x12, 0xa2, 0xc6, 0xcc, 0x10, 0xb9, 0xbf, 0xb6, 0xa0, 0xf7, 0x36, 0x0d,
- 0x88, 0x78, 0xb0, 0x1d, 0xc7, 0xa1, 0x9a, 0x42, 0x5c, 0x1a, 0xf3, 0x6f, 0x42, 0x1b, 0x49, 0x35,
- 0x24, 0x55, 0xb0, 0xcf, 0xd0, 0xd8, 0x96, 0x32, 0x5a, 0x8f, 0xd2, 0xd0, 0x7b, 0x14, 0xf7, 0x7d,
- 0x0b, 0x96, 0xa5, 0x53, 0xde, 0xc9, 0x82, 0xf4, 0xd2, 0xf6, 0xed, 0xc0, 0xc2, 0x38, 0x0b, 0xd2,
- 0x4b, 0x44, 0x65, 0x21, 0x57, 0x8f, 0xa7, 0xc6, 0x84, 0x78, 0x72, 0x3f, 0xb0, 0xe0, 0x7a, 0xd5,
- 0xad, 0xdb, 0xc3, 0x21, 0x8e, 0x5f, 0x64, 0x4a, 0x19, 0x3d, 0xda, 0x5c, 0xa5, 0x47, 0x9b, 0x68,
- 0xb2, 0x87, 0xdf, 0xc3, 0xc3, 0xff, 0x5e, 0x93, 0x7f, 0x6c, 0xc3, 0x27, 0xef, 0x15, 0x89, 0xf7,
- 0x38, 0x41, 0x84, 0x1d, 0xe1, 0x24, 0x79, 0x81, 0xf6, 0xee, 0x43, 0x87, 0xe0, 0x67, 0xa5, 0x4d,
- 0x2a, 0x1d, 0x67, 0x55, 0x63, 0x0a, 0xcf, 0x56, 0xbb, 0xdc, 0x7f, 0x59, 0xb0, 0x22, 0xf5, 0x7c,
- 0x2b, 0x18, 0x9e, 0xbc, 0xc0, 0xc3, 0x3f, 0x84, 0xe5, 0x13, 0x61, 0x01, 0xa7, 0x2e, 0x51, 0xb6,
- 0x2b, 0xd2, 0x33, 0x1e, 0xff, 0xdf, 0x16, 0xac, 0x4a, 0x45, 0x0f, 0xc8, 0x69, 0xf0, 0x22, 0x83,
- 0xf5, 0x00, 0xba, 0x81, 0x34, 0xe1, 0x92, 0x0e, 0xa8, 0x8a, 0xcf, 0xe8, 0x81, 0xdf, 0x5b, 0xd0,
- 0x95, 0x9a, 0xee, 0x90, 0x14, 0x27, 0x97, 0x3e, 0xff, 0x7d, 0x58, 0xc4, 0x24, 0x4d, 0x10, 0xb9,
- 0x4c, 0x85, 0xd4, 0x45, 0x67, 0x2c, 0x92, 0xef, 0x5b, 0xe0, 0x08, 0x55, 0x7b, 0x01, 0x8b, 0x02,
- 0xc6, 0x5e, 0x20, 0x74, 0xb3, 0x19, 0x7c, 0x02, 0xab, 0x72, 0xe6, 0xa0, 0x95, 0x48, 0xde, 0x7c,
- 0x23, 0x5f, 0xf6, 0xd3, 0x96, 0x10, 0xca, 0x49, 0x73, 0x9a, 0xa4, 0x3e, 0x07, 0x94, 0xd3, 0xa4,
- 0x1b, 0x00, 0xc8, 0xf7, 0xdf, 0xa5, 0x89, 0x1f, 0x90, 0xfc, 0xbe, 0xd3, 0x38, 0xee, 0xdb, 0xb0,
- 0xc4, 0xdb, 0xff, 0xc7, 0xda, 0xf4, 0xe0, 0xdc, 0xf9, 0x86, 0x3e, 0x79, 0xb0, 0xcd, 0xc9, 0x83,
- 0xfb, 0x7d, 0xf8, 0x78, 0xcd, 0x70, 0xe1, 0xeb, 0x5d, 0x39, 0x14, 0xc9, 0x37, 0x51, 0x2e, 0xff,
- 0xf4, 0x04, 0xef, 0xe9, 0xb6, 0x78, 0x86, 0x90, 0xfb, 0x23, 0x0b, 0x5e, 0xad, 0xa9, 0xdf, 0x8e,
- 0xe3, 0x84, 0x9e, 0x2a, 0x48, 0xaf, 0x62, 0x1b, 0xf3, 0x2e, 0xb0, 0xab, 0x77, 0xc1, 0x44, 0x23,
- 0x8c, 0xfb, 0xeb, 0x23, 0x30, 0xe2, 0x37, 0x16, 0x74, 0x95, 0x11, 0xbe, 0xaf, 0xb6, 0xfd, 0x0a,
- 0xb4, 0xe4, 0x40, 0x55, 0x6d, 0xf8, 0xea, 0xc4, 0x0d, 0xf3, 0x41, 0xb0, 0xa7, 0x16, 0xd7, 0x23,
- 0xd2, 0x9e, 0xd4, 0xb7, 0x7e, 0xad, 0x88, 0xfb, 0x99, 0x47, 0x9e, 0x4a, 0xc0, 0xfd, 0x4e, 0x1e,
- 0xcc, 0x7b, 0x38, 0xc4, 0x57, 0xe9, 0x23, 0xf7, 0x09, 0x2c, 0x8b, 0xe9, 0x6e, 0xe9, 0x83, 0x2b,
- 0x51, 0xfb, 0x2e, 0xac, 0x08, 0xb5, 0x57, 0x6e, 0x6f, 0x91, 0x1d, 0xdc, 0x3f, 0xbb, 0xc7, 0x88,
- 0x8c, 0xae, 0x52, 0xfb, 0x17, 0x61, 0x2d, 0xf7, 0xfd, 0x93, 0xd8, 0x2f, 0xde, 0xa9, 0xa6, 0x4c,
- 0x92, 0xdc, 0x2f, 0xc1, 0xfa, 0x2e, 0x25, 0xa7, 0x38, 0x61, 0x02, 0x65, 0x29, 0x92, 0x4b, 0x18,
- 0xc9, 0xaf, 0x28, 0x77, 0x00, 0xab, 0x6a, 0x06, 0x7a, 0x80, 0x46, 0x01, 0x91, 0x55, 0xe9, 0x06,
- 0x40, 0x8c, 0x46, 0xf9, 0x37, 0x10, 0x39, 0x28, 0xd3, 0x38, 0xfc, 0x39, 0x3b, 0xa6, 0xcf, 0xd4,
- 0x73, 0x5b, 0x3e, 0x2f, 0x39, 0xee, 0xb7, 0xc1, 0xf1, 0x30, 0x8b, 0x29, 0x61, 0x58, 0xd3, 0xba,
- 0x01, 0x8b, 0xbb, 0x59, 0x92, 0x60, 0xc2, 0xb7, 0xca, 0x3f, 0x08, 0xe8, 0x2c, 0xae, 0x77, 0x50,
- 0xea, 0x95, 0xc3, 0x15, 0x8d, 0xe3, 0xfe, 0xb2, 0x01, 0xed, 0x41, 0x30, 0x22, 0x28, 0xf4, 0xf0,
- 0xd8, 0xf9, 0x3a, 0xb4, 0xe4, 0x95, 0xa7, 0x5c, 0x3b, 0xe9, 0x65, 0x5f, 0xae, 0x96, 0x77, 0xbb,
- 0x87, 0xc7, 0xf7, 0x3f, 0xe6, 0x29, 0x19, 0xe7, 0x1d, 0xe8, 0xc8, 0x5f, 0x0f, 0xe4, 0x2b, 0x8c,
- 0xaa, 0xfd, 0x9f, 0xbb, 0x40, 0x89, 0x5a, 0x2d, 0x75, 0x99, 0x1a, 0xb8, 0x41, 0x43, 0x44, 0x86,
- 0xea, 0x23, 0xe1, 0x79, 0x06, 0xed, 0x8a, 0x65, 0xca, 0x20, 0x29, 0xc3, 0xa5, 0x91, 0x68, 0xf2,
- 0xd5, 0x67, 0x96, 0xe9, 0xd2, 0xf2, 0x5d, 0x40, 0x49, 0x4b, 0x19, 0x2e, 0x7d, 0x9c, 0x91, 0xd1,
- 0x93, 0x58, 0xbd, 0x7b, 0x4e, 0x97, 0xbe, 0x2f, 0x96, 0x29, 0x69, 0x29, 0xc3, 0xa5, 0x13, 0x51,
- 0xed, 0x84, 0xd3, 0xcf, 0x93, 0x96, 0x45, 0x51, 0x49, 0x4b, 0x99, 0x9d, 0x36, 0xcc, 0xc7, 0xe8,
- 0x2c, 0xa4, 0xc8, 0x77, 0x7f, 0xdb, 0x00, 0xc8, 0x17, 0x32, 0x71, 0xb3, 0x1a, 0x10, 0x6d, 0x5e,
- 0x08, 0x51, 0x1c, 0x9e, 0x69, 0x20, 0x0d, 0x26, 0x83, 0xf4, 0xf9, 0x59, 0x41, 0x92, 0xda, 0x2a,
- 0x30, 0xdd, 0xae, 0xc0, 0xb4, 0x79, 0x21, 0x4c, 0xca, 0x28, 0x05, 0xd4, 0xed, 0x0a, 0x50, 0x9b,
- 0x17, 0x02, 0xa5, 0xe4, 0x15, 0x54, 0xb7, 0x2b, 0x50, 0x6d, 0x5e, 0x08, 0x95, 0x92, 0x57, 0x60,
- 0xdd, 0xae, 0x80, 0xb5, 0x79, 0x21, 0x58, 0x4a, 0xbe, 0x0e, 0xd7, 0x07, 0x36, 0x2c, 0x0b, 0x97,
- 0xc9, 0x41, 0x33, 0x39, 0xa2, 0x62, 0x9e, 0x24, 0xdc, 0x65, 0x7e, 0x52, 0x33, 0x99, 0xce, 0x17,
- 0x60, 0x55, 0x32, 0xd4, 0x27, 0x18, 0xd1, 0xaf, 0xda, 0x1b, 0x8d, 0x9b, 0x6d, 0xaf, 0xfe, 0x40,
- 0x8c, 0x06, 0x33, 0x96, 0xd2, 0x68, 0x0f, 0xa5, 0x28, 0xef, 0x56, 0x4a, 0x8e, 0x3e, 0xb8, 0x9d,
- 0xab, 0x7d, 0x92, 0x4f, 0x28, 0x8d, 0x8a, 0x89, 0xac, 0xa2, 0xb8, 0x44, 0x1a, 0x44, 0x98, 0x66,
- 0xa9, 0x2a, 0x13, 0x39, 0xc9, 0xef, 0xd8, 0x08, 0xfb, 0x01, 0x12, 0xe3, 0x4e, 0xf5, 0x1d, 0xa4,
- 0x60, 0x88, 0xca, 0x56, 0x8e, 0x6f, 0xd5, 0x27, 0xf3, 0x92, 0x73, 0xf1, 0xa8, 0xd5, 0xfd, 0x9b,
- 0x05, 0x6b, 0x07, 0x28, 0x49, 0x83, 0x61, 0x10, 0x23, 0x92, 0xf6, 0x71, 0x8a, 0xc4, 0x19, 0x8c,
- 0xef, 0x6a, 0xd6, 0x87, 0xfb, 0xae, 0x76, 0x00, 0xdd, 0x51, 0xd9, 0x5f, 0x6a, 0x5f, 0xe6, 0x66,
- 0xee, 0xfd, 0x2b, 0xe2, 0xc6, 0x47, 0xc2, 0xc6, 0x87, 0xfe, 0x48, 0xe8, 0xfe, 0xd4, 0x86, 0x6e,
- 0xa5, 0x74, 0xf2, 0x16, 0x51, 0x5e, 0xfe, 0x45, 0x4c, 0x14, 0xb4, 0xb3, 0x0d, 0x10, 0x14, 0x61,
- 0x74, 0xce, 0xf0, 0xc6, 0x8c, 0x35, 0x4f, 0x13, 0x9a, 0x34, 0xc3, 0x6d, 0x5c, 0x7a, 0x86, 0xcb,
- 0xdf, 0x46, 0xe2, 0x12, 0x24, 0x95, 0xa8, 0x93, 0xbc, 0x39, 0x01, 0x4a, 0x4f, 0x17, 0x75, 0xbf,
- 0x07, 0xab, 0xb5, 0x0a, 0x25, 0x46, 0xba, 0xf4, 0x04, 0x93, 0x62, 0xa4, 0xcb, 0x09, 0x2d, 0x58,
- 0xed, 0x6a, 0xb0, 0x86, 0xc1, 0xa9, 0xfe, 0x2f, 0x04, 0x45, 0xba, 0x3f, 0xb3, 0x61, 0x7d, 0xf2,
- 0xed, 0xf2, 0xb2, 0xba, 0xfb, 0x10, 0x7a, 0xd3, 0x2a, 0xf9, 0x95, 0x79, 0xbd, 0x8c, 0xee, 0xe2,
- 0x1e, 0x7e, 0x59, 0xdd, 0xbd, 0x96, 0x47, 0xb7, 0x76, 0xd5, 0xb9, 0xbf, 0x2b, 0xfc, 0x53, 0x74,
- 0x1a, 0x2f, 0xa9, 0x7f, 0x9c, 0xd7, 0x61, 0x45, 0x1e, 0x53, 0xfb, 0xe8, 0x27, 0x1b, 0xd7, 0x1a,
- 0xbf, 0xac, 0x14, 0xda, 0xb5, 0x7f, 0x65, 0x31, 0xfb, 0x27, 0x2b, 0xc7, 0xa4, 0xe8, 0xdf, 0xfe,
- 0xa7, 0x30, 0x29, 0x23, 0x4d, 0x6b, 0x6a, 0xb4, 0x48, 0x2b, 0xfa, 0xca, 0xff, 0x47, 0xda, 0xc5,
- 0x91, 0x56, 0xf8, 0x52, 0x6b, 0xf0, 0xdc, 0x1f, 0x42, 0x67, 0x0f, 0x87, 0x7d, 0x36, 0xca, 0xff,
- 0x6e, 0x70, 0x9e, 0x23, 0xa7, 0xfd, 0xd5, 0x71, 0xea, 0x1f, 0x0d, 0xaa, 0x7f, 0x52, 0x98, 0xab,
- 0xfd, 0x49, 0xc1, 0xdd, 0x81, 0x65, 0xdd, 0x80, 0xcb, 0xfc, 0xdb, 0x62, 0xe7, 0xfa, 0x77, 0xaf,
- 0x6d, 0xbd, 0x21, 0xff, 0x54, 0xfb, 0x56, 0xcd, 0x89, 0x87, 0x2d, 0xf1, 0x27, 0xdb, 0x2f, 0xff,
- 0x27, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x98, 0x6b, 0xf4, 0x77, 0x2b, 0x00, 0x00,
+var fileDescriptor_ws_f1fa7995a968e7fe = []byte{
+ // 2676 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcd, 0x6f, 0x23, 0x49,
+ 0x15, 0xa7, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0x59, 0x82, 0x09, 0xb3, 0x43, 0x68, 0x45,
+ 0xcb, 0xb0, 0x40, 0x16, 0x0d, 0x42, 0x82, 0x5d, 0x18, 0x94, 0x8f, 0xf9, 0x5a, 0xe2, 0x99, 0x6c,
+ 0x7b, 0x86, 0x45, 0x80, 0xb4, 0xea, 0xb8, 0x2b, 0x4e, 0x6f, 0xda, 0x55, 0xed, 0xfe, 0xc8, 0x4c,
+ 0x24, 0x24, 0x24, 0x90, 0x10, 0x37, 0x4e, 0x70, 0xe0, 0x82, 0xc4, 0x05, 0x81, 0xd0, 0x6a, 0x0f,
+ 0x70, 0x43, 0x9c, 0xf8, 0x07, 0x38, 0x22, 0x6e, 0x9c, 0xb9, 0x72, 0x40, 0x42, 0x02, 0x55, 0xbd,
+ 0xea, 0xee, 0xaa, 0x6e, 0x3b, 0xf1, 0x46, 0xd1, 0xce, 0xac, 0x86, 0x9b, 0xdf, 0xeb, 0x7a, 0xaf,
+ 0x5e, 0xbd, 0xdf, 0x7b, 0xaf, 0x5e, 0x55, 0x19, 0x3a, 0xb1, 0x77, 0xf2, 0xce, 0x93, 0xf8, 0xb5,
+ 0x27, 0xf1, 0x56, 0x18, 0xb1, 0x84, 0x59, 0x2b, 0x31, 0x89, 0x4e, 0x49, 0xf4, 0x8e, 0x1b, 0xfa,
+ 0xef, 0x84, 0x6e, 0xe4, 0x8e, 0x62, 0xfb, 0x5f, 0x26, 0x34, 0xef, 0x46, 0x2c, 0x0d, 0xef, 0xd3,
+ 0x23, 0x66, 0x75, 0x61, 0x7e, 0x28, 0x88, 0xbd, 0xae, 0xb1, 0x61, 0xdc, 0x68, 0x3a, 0x19, 0x69,
+ 0x5d, 0x83, 0xa6, 0xf8, 0xf9, 0xc0, 0x1d, 0x91, 0xae, 0x29, 0xbe, 0x15, 0x0c, 0xcb, 0x86, 0x45,
+ 0xca, 0x12, 0xff, 0xc8, 0x1f, 0xb8, 0x89, 0xcf, 0x68, 0xb7, 0x26, 0x06, 0x68, 0x3c, 0x3e, 0xc6,
+ 0xa7, 0x49, 0xc4, 0xbc, 0x74, 0x20, 0xc6, 0xcc, 0xe1, 0x18, 0x95, 0xc7, 0xe7, 0x3f, 0x72, 0x07,
+ 0xe4, 0xb1, 0xb3, 0xdf, 0xad, 0xe3, 0xfc, 0x92, 0xb4, 0x36, 0xa0, 0xc5, 0x9e, 0x50, 0x12, 0x3d,
+ 0x8e, 0x49, 0x74, 0x7f, 0xaf, 0xdb, 0x10, 0x5f, 0x55, 0x96, 0x75, 0x1d, 0x60, 0x10, 0x11, 0x37,
+ 0x21, 0x8f, 0xfc, 0x11, 0xe9, 0xce, 0x6f, 0x18, 0x37, 0xda, 0x8e, 0xc2, 0xe1, 0x1a, 0x46, 0x64,
+ 0x74, 0x48, 0xa2, 0x5d, 0x96, 0xd2, 0xa4, 0xbb, 0x20, 0x06, 0xa8, 0x2c, 0x6b, 0x09, 0x4c, 0xf2,
+ 0xb4, 0xdb, 0x14, 0xaa, 0x4d, 0xf2, 0xd4, 0x5a, 0x83, 0x46, 0x9c, 0xb8, 0x49, 0x1a, 0x77, 0x61,
+ 0xc3, 0xb8, 0x51, 0x77, 0x24, 0x65, 0x6d, 0x42, 0x5b, 0xe8, 0x65, 0x99, 0x35, 0x2d, 0x21, 0xa2,
+ 0x33, 0x73, 0x8f, 0x3d, 0x3a, 0x0b, 0x49, 0x77, 0x51, 0x28, 0x28, 0x18, 0xf6, 0xdf, 0x4c, 0x58,
+ 0x15, 0x7e, 0xef, 0x09, 0x03, 0xee, 0xa4, 0x41, 0x70, 0x01, 0x02, 0x6b, 0xd0, 0x48, 0x71, 0x3a,
+ 0x74, 0xbf, 0xa4, 0xf8, 0x3c, 0x11, 0x0b, 0xc8, 0x3e, 0x39, 0x25, 0x81, 0x70, 0x7c, 0xdd, 0x29,
+ 0x18, 0xd6, 0x3a, 0x2c, 0xbc, 0xcb, 0x7c, 0x2a, 0x7c, 0x32, 0x27, 0x3e, 0xe6, 0x34, 0xff, 0x46,
+ 0xfd, 0xc1, 0x09, 0xe5, 0x90, 0xa2, 0xbb, 0x73, 0x5a, 0x45, 0xa2, 0xa1, 0x23, 0xf1, 0x0a, 0x2c,
+ 0xb9, 0x61, 0xd8, 0x73, 0xe9, 0x90, 0x44, 0x38, 0xe9, 0xbc, 0xd0, 0x5b, 0xe2, 0x72, 0x3c, 0xf8,
+ 0x4c, 0x7d, 0x96, 0x46, 0x03, 0x22, 0xdc, 0x5d, 0x77, 0x14, 0x0e, 0xd7, 0xc3, 0x42, 0x12, 0x29,
+ 0x6e, 0x44, 0xcf, 0x97, 0xb8, 0x12, 0x15, 0xc8, 0x51, 0xe1, 0x38, 0xa6, 0x09, 0xb9, 0x4d, 0x3d,
+ 0xb1, 0xa8, 0x96, 0xc4, 0xb1, 0x60, 0xd9, 0x3f, 0x31, 0x60, 0xe9, 0x20, 0x3d, 0x0c, 0xfc, 0x81,
+ 0x50, 0xc1, 0xdd, 0x5a, 0x38, 0xcf, 0xd0, 0x9c, 0xa7, 0xba, 0xc0, 0x9c, 0xee, 0x82, 0x9a, 0xee,
+ 0x82, 0x35, 0x68, 0x0c, 0x09, 0xf5, 0x48, 0x24, 0x5d, 0x2a, 0x29, 0x69, 0x6a, 0x3d, 0x33, 0xd5,
+ 0xfe, 0x85, 0x09, 0x0b, 0x1f, 0xb2, 0x09, 0x1b, 0xd0, 0x0a, 0x8f, 0x19, 0x25, 0x0f, 0x52, 0x1e,
+ 0x56, 0xd2, 0x16, 0x95, 0x65, 0xbd, 0x04, 0xf5, 0x43, 0x3f, 0x4a, 0x8e, 0x05, 0xae, 0x6d, 0x07,
+ 0x09, 0xce, 0x25, 0x23, 0xd7, 0x47, 0x30, 0x9b, 0x0e, 0x12, 0x72, 0x41, 0x0b, 0xb9, 0xef, 0xf5,
+ 0x1c, 0x6b, 0x56, 0x72, 0xac, 0x1a, 0x1b, 0x30, 0x29, 0x36, 0xec, 0x7f, 0x1b, 0x00, 0x77, 0x22,
+ 0x9f, 0x50, 0x4f, 0xb8, 0xa6, 0x94, 0xdc, 0x46, 0x35, 0xb9, 0xd7, 0xa0, 0x11, 0x91, 0x91, 0x1b,
+ 0x9d, 0x64, 0xc1, 0x8f, 0x54, 0xc9, 0xa0, 0x5a, 0xc5, 0xa0, 0x37, 0x00, 0x8e, 0xc4, 0x3c, 0x5c,
+ 0x8f, 0x70, 0x55, 0xeb, 0xe6, 0xa7, 0xb6, 0x2a, 0x65, 0x70, 0x2b, 0x43, 0xc9, 0x51, 0x86, 0xf3,
+ 0xcc, 0x72, 0x3d, 0x4f, 0x06, 0x70, 0x1d, 0x33, 0x2b, 0x67, 0x4c, 0x88, 0xdf, 0xc6, 0x39, 0xf1,
+ 0x3b, 0x9f, 0x07, 0xc5, 0x3f, 0x0d, 0x68, 0xee, 0x04, 0xee, 0xe0, 0x64, 0xc6, 0xa5, 0xeb, 0x4b,
+ 0x34, 0x2b, 0x4b, 0xbc, 0x0b, 0xed, 0x43, 0xae, 0x2e, 0x5b, 0x82, 0xf0, 0x42, 0xeb, 0xe6, 0x67,
+ 0x26, 0xac, 0x52, 0x4f, 0x0a, 0x47, 0x97, 0xd3, 0x97, 0x3b, 0x77, 0xf1, 0x72, 0xeb, 0xe7, 0x2c,
+ 0xb7, 0x91, 0x2f, 0xf7, 0xaf, 0x26, 0x2c, 0x8a, 0x42, 0xe7, 0x90, 0x71, 0x4a, 0xe2, 0xc4, 0xfa,
+ 0x06, 0x2c, 0xa4, 0x99, 0xa9, 0xc6, 0xac, 0xa6, 0xe6, 0x22, 0xd6, 0xeb, 0xb2, 0xac, 0x0a, 0x79,
+ 0x53, 0xc8, 0x5f, 0x9b, 0x20, 0x9f, 0xef, 0x69, 0x4e, 0x31, 0x9c, 0x6f, 0x41, 0xc7, 0x2e, 0xf5,
+ 0x02, 0xe2, 0x90, 0x38, 0x0d, 0x12, 0x59, 0x2d, 0x35, 0x1e, 0x46, 0xda, 0xb8, 0x17, 0x0f, 0xe5,
+ 0x06, 0x25, 0x29, 0xee, 0x1d, 0x1c, 0xc7, 0x3f, 0xe1, 0xd2, 0x0b, 0x06, 0x4f, 0xd4, 0x88, 0x8c,
+ 0x05, 0x42, 0x98, 0x56, 0x19, 0x59, 0xcc, 0x29, 0xbd, 0x86, 0x81, 0xa0, 0xf1, 0x38, 0xc4, 0x48,
+ 0x0b, 0x05, 0xb8, 0x33, 0x29, 0x9c, 0xf2, 0xc6, 0x64, 0xff, 0xbd, 0x06, 0x6d, 0x4c, 0x9f, 0xcc,
+ 0xa9, 0xd7, 0x79, 0x9c, 0xb3, 0x91, 0x16, 0x45, 0x0a, 0x87, 0x5b, 0xc1, 0xa9, 0x07, 0x7a, 0xa1,
+ 0xd1, 0x78, 0x3c, 0x14, 0x39, 0x7d, 0x47, 0x2b, 0x38, 0x2a, 0x2b, 0x9b, 0xe5, 0xae, 0x5a, 0x78,
+ 0x14, 0x0e, 0x2f, 0x65, 0x09, 0xd3, 0xa2, 0x23, 0xa7, 0xb9, 0x6c, 0xc2, 0xf2, 0xf9, 0x31, 0x3e,
+ 0x14, 0x0e, 0xf7, 0x6f, 0xc2, 0xb2, 0xb9, 0xd1, 0x49, 0x05, 0x03, 0x35, 0xcb, 0x79, 0x71, 0x2b,
+ 0xc9, 0xe9, 0x0a, 0xaa, 0xcd, 0x73, 0x51, 0x05, 0x0d, 0x55, 0x3d, 0xb9, 0x5a, 0x95, 0xe4, 0xda,
+ 0x84, 0x36, 0xea, 0xc9, 0x82, 0x7e, 0x11, 0xb7, 0x7a, 0x8d, 0xa9, 0xc7, 0x46, 0xbb, 0x1c, 0x1b,
+ 0x3a, 0xba, 0x4b, 0x53, 0xd0, 0xed, 0xe4, 0xe8, 0xfe, 0x00, 0xba, 0x07, 0x69, 0x10, 0xf4, 0x48,
+ 0x1c, 0xbb, 0x43, 0xb2, 0x73, 0xd6, 0x27, 0xe3, 0x7d, 0x3f, 0x4e, 0x1c, 0x12, 0x87, 0x3c, 0xce,
+ 0x48, 0x14, 0xed, 0x32, 0x8f, 0x08, 0x90, 0xeb, 0x4e, 0x46, 0xf2, 0x15, 0x92, 0x28, 0xe2, 0x06,
+ 0xc8, 0x0a, 0x89, 0x94, 0xb5, 0x05, 0x73, 0x81, 0x1f, 0xf3, 0x58, 0xaf, 0xdd, 0x68, 0xdd, 0x5c,
+ 0x9f, 0x90, 0x2a, 0xbd, 0x78, 0xb8, 0xe7, 0x26, 0xae, 0x23, 0xc6, 0xd9, 0x23, 0xf8, 0xc4, 0xe4,
+ 0xd9, 0xc7, 0x53, 0x77, 0x30, 0x5e, 0xc3, 0x44, 0x11, 0xf0, 0x19, 0xcd, 0xdb, 0x13, 0x95, 0xc5,
+ 0xcd, 0x8e, 0x51, 0x8f, 0xb0, 0xa3, 0xed, 0x64, 0xa4, 0xfd, 0x12, 0x58, 0x77, 0x49, 0xd2, 0x73,
+ 0x9f, 0x6e, 0x53, 0xaf, 0xe7, 0xd3, 0x3e, 0x19, 0x3b, 0x64, 0x6c, 0xdf, 0x86, 0xd5, 0x0a, 0x37,
+ 0x0e, 0xb9, 0x01, 0x23, 0xf7, 0x69, 0x9f, 0x8c, 0x85, 0x01, 0x6d, 0x47, 0x52, 0x82, 0x2f, 0x46,
+ 0xc9, 0xf2, 0x28, 0x29, 0x7b, 0x0c, 0x1d, 0x8e, 0x50, 0x9f, 0x50, 0xaf, 0x17, 0x0f, 0x85, 0x8a,
+ 0x0d, 0x68, 0xa1, 0x07, 0x7a, 0xf1, 0xb0, 0xa8, 0xb7, 0x0a, 0x8b, 0x8f, 0x18, 0x04, 0x3e, 0xa1,
+ 0x09, 0x8e, 0x90, 0xab, 0x51, 0x58, 0x3c, 0x18, 0x63, 0x22, 0xdb, 0x0f, 0x9e, 0x25, 0x35, 0x27,
+ 0xa7, 0xed, 0x3f, 0xd5, 0x61, 0x5e, 0x3a, 0x54, 0xf4, 0x8f, 0x7c, 0x8b, 0xcb, 0xfd, 0x85, 0x14,
+ 0x06, 0xe3, 0xe0, 0xb4, 0xe8, 0xe4, 0x90, 0x52, 0x7b, 0xbf, 0x9a, 0xde, 0xfb, 0x95, 0x6c, 0x9a,
+ 0xab, 0xda, 0x54, 0x5a, 0x57, 0xbd, 0xba, 0xae, 0x57, 0x61, 0x39, 0x16, 0x09, 0x73, 0x10, 0xb8,
+ 0xc9, 0x11, 0x8b, 0x46, 0x72, 0xc7, 0xaa, 0x3b, 0x15, 0x3e, 0x2f, 0xf6, 0xc8, 0xcb, 0x13, 0x16,
+ 0x33, 0xb2, 0xc4, 0xe5, 0xe9, 0x81, 0x9c, 0x2c, 0x71, 0xb1, 0x55, 0xd0, 0x99, 0x68, 0x5b, 0x1c,
+ 0xfb, 0x8c, 0x8a, 0x5e, 0x18, 0xf3, 0x53, 0x65, 0xf1, 0x95, 0x8f, 0xe2, 0xe1, 0x9d, 0x88, 0x8d,
+ 0x64, 0xc3, 0x90, 0x91, 0x62, 0xe5, 0x8c, 0x26, 0x84, 0x26, 0x42, 0xb6, 0x85, 0xb2, 0x0a, 0x8b,
+ 0xcb, 0x4a, 0x52, 0x24, 0xe7, 0xa2, 0x93, 0x91, 0xd6, 0x32, 0xd4, 0x62, 0x32, 0x96, 0x19, 0xc7,
+ 0x7f, 0x6a, 0xc8, 0x75, 0x74, 0xe4, 0x4a, 0xa5, 0x60, 0x59, 0x7c, 0x55, 0x4b, 0x41, 0x71, 0x1a,
+ 0x58, 0xd1, 0x4e, 0x03, 0xdb, 0x30, 0xcf, 0x42, 0x1e, 0xe7, 0x71, 0xd7, 0x12, 0x39, 0xf6, 0xd9,
+ 0xe9, 0x39, 0xb6, 0xf5, 0x10, 0x47, 0xde, 0xa6, 0x49, 0x74, 0xe6, 0x64, 0x72, 0xd6, 0x3e, 0x74,
+ 0xd8, 0xd1, 0x51, 0xe0, 0x53, 0x72, 0x90, 0xc6, 0xc7, 0x62, 0x67, 0x5b, 0x15, 0x3b, 0x9b, 0x3d,
+ 0x41, 0xd5, 0x43, 0x7d, 0xa4, 0x53, 0x16, 0x5d, 0x7f, 0x1d, 0x16, 0xd5, 0x69, 0xb8, 0x1b, 0x4e,
+ 0xc8, 0x99, 0x8c, 0x41, 0xfe, 0x93, 0x37, 0x7b, 0xa7, 0x6e, 0x90, 0xe2, 0x36, 0xb0, 0xe0, 0x20,
+ 0xf1, 0xba, 0xf9, 0x55, 0xc3, 0xfe, 0xb9, 0x01, 0x9d, 0xd2, 0x04, 0x7c, 0x74, 0xe2, 0x27, 0x01,
+ 0x91, 0x1a, 0x90, 0xb0, 0x2c, 0x98, 0xf3, 0x48, 0x3c, 0x90, 0x21, 0x2c, 0x7e, 0xcb, 0x4a, 0x56,
+ 0xcb, 0xdb, 0x45, 0x7e, 0xe4, 0x7b, 0xd8, 0xe7, 0x8a, 0xfa, 0x2c, 0xa5, 0x5e, 0x7e, 0xe4, 0x53,
+ 0x78, 0x3c, 0x84, 0xfc, 0x87, 0xfd, 0x1d, 0xd7, 0x1b, 0x12, 0x3c, 0x98, 0xd5, 0x85, 0x4d, 0x3a,
+ 0xd3, 0xf6, 0x60, 0xe1, 0x91, 0x1f, 0xc6, 0xbb, 0x6c, 0x34, 0xe2, 0x40, 0x78, 0x24, 0xe1, 0xbd,
+ 0xaa, 0x21, 0xf0, 0x96, 0x14, 0x0f, 0x15, 0x8f, 0x1c, 0xb9, 0x69, 0x90, 0xf0, 0xa1, 0x59, 0xe2,
+ 0x2a, 0x2c, 0x71, 0x24, 0x89, 0x19, 0xdd, 0x43, 0x69, 0xb4, 0x53, 0xe1, 0xd8, 0x7f, 0x31, 0x61,
+ 0x59, 0x34, 0x0e, 0xbb, 0x02, 0x76, 0x4f, 0x08, 0xdd, 0x84, 0xba, 0x48, 0x43, 0xd9, 0xac, 0x9c,
+ 0xdf, 0x6c, 0xe0, 0x50, 0xeb, 0x16, 0x34, 0x58, 0x28, 0x5a, 0x4e, 0xec, 0x50, 0x5e, 0x99, 0x26,
+ 0xa4, 0x9f, 0xfe, 0x1c, 0x29, 0x65, 0xdd, 0x01, 0xc0, 0x83, 0xe9, 0x7e, 0x51, 0xba, 0x67, 0xd5,
+ 0xa1, 0x48, 0x72, 0xe7, 0xe6, 0x65, 0x38, 0x3f, 0x02, 0xd6, 0x1c, 0x9d, 0x69, 0x3d, 0x80, 0x25,
+ 0x61, 0xf6, 0xc3, 0xac, 0xeb, 0x14, 0x18, 0xcc, 0x3e, 0x63, 0x49, 0xda, 0xfe, 0xb5, 0x21, 0xdd,
+ 0xc8, 0xbf, 0xf6, 0x09, 0xfa, 0xbe, 0x70, 0x89, 0x71, 0x29, 0x97, 0xac, 0xc3, 0x02, 0x3f, 0xe3,
+ 0xe5, 0x4d, 0x70, 0xcd, 0xc9, 0xe9, 0x02, 0xa2, 0xda, 0xcc, 0x10, 0xd9, 0xbf, 0x31, 0xa0, 0xfb,
+ 0x26, 0xf3, 0xa9, 0xf8, 0xb0, 0x1d, 0x86, 0x81, 0xbc, 0xa7, 0xb8, 0x34, 0xe6, 0xdf, 0x84, 0xa6,
+ 0x8b, 0x6a, 0x68, 0x22, 0x61, 0x9f, 0xa1, 0xb1, 0x2d, 0x64, 0x94, 0x1e, 0xa5, 0xa6, 0xf6, 0x28,
+ 0xf6, 0x7b, 0x06, 0x2c, 0xa1, 0x53, 0xde, 0x4a, 0xfd, 0xe4, 0xd2, 0xf6, 0xed, 0xc0, 0xc2, 0x38,
+ 0xf5, 0x93, 0x4b, 0x44, 0x65, 0x2e, 0x57, 0x8d, 0xa7, 0xda, 0x84, 0x78, 0xb2, 0xdf, 0x37, 0xe0,
+ 0x5a, 0xd9, 0xad, 0xdb, 0x83, 0x01, 0x09, 0x9f, 0x65, 0x4a, 0x69, 0x3d, 0xda, 0x5c, 0xa9, 0x47,
+ 0x9b, 0x68, 0xb2, 0x43, 0xde, 0x25, 0x83, 0xe7, 0xd7, 0xe4, 0x1f, 0x9b, 0xf0, 0xc9, 0xbb, 0x79,
+ 0xe2, 0x3d, 0x8a, 0x5c, 0x1a, 0x1f, 0x91, 0x28, 0x7a, 0x86, 0xf6, 0xee, 0x43, 0x9b, 0x92, 0x27,
+ 0x85, 0x4d, 0x32, 0x1d, 0x67, 0x55, 0xa3, 0x0b, 0xcf, 0x56, 0xbb, 0xec, 0xff, 0x18, 0xb0, 0x8c,
+ 0x7a, 0xbe, 0xe5, 0x0f, 0x4e, 0x9e, 0xe1, 0xe2, 0x1f, 0xc0, 0xd2, 0x89, 0xb0, 0x80, 0x53, 0x97,
+ 0x28, 0xdb, 0x25, 0xe9, 0x19, 0x97, 0xff, 0x5f, 0x03, 0x56, 0x50, 0xd1, 0x7d, 0x7a, 0xea, 0x3f,
+ 0xcb, 0x60, 0x3d, 0x80, 0x8e, 0x8f, 0x26, 0x5c, 0xd2, 0x01, 0x65, 0xf1, 0x19, 0x3d, 0xf0, 0x47,
+ 0x03, 0x3a, 0xa8, 0xe9, 0x36, 0x4d, 0x48, 0x74, 0xe9, 0xf5, 0xdf, 0x83, 0x16, 0xa1, 0x49, 0xe4,
+ 0xd2, 0xcb, 0x54, 0x48, 0x55, 0x74, 0xc6, 0x22, 0xf9, 0x9e, 0x01, 0x96, 0x50, 0xb5, 0xe7, 0xc7,
+ 0x23, 0x3f, 0x8e, 0x9f, 0x21, 0x74, 0xb3, 0x19, 0xfc, 0x4b, 0x13, 0x5e, 0x52, 0xb4, 0xf4, 0xd2,
+ 0xe4, 0x79, 0x37, 0xd9, 0xda, 0x83, 0x26, 0xef, 0x11, 0xd4, 0xcb, 0xbf, 0x59, 0x27, 0x2a, 0x04,
+ 0x79, 0x17, 0x2b, 0x88, 0x3e, 0x19, 0x30, 0xea, 0xc5, 0xa2, 0x39, 0x6a, 0x3b, 0x1a, 0x8f, 0x97,
+ 0xa1, 0x75, 0x45, 0xcd, 0xae, 0x4b, 0x07, 0x24, 0x78, 0x61, 0x5c, 0x64, 0xff, 0xce, 0x80, 0x25,
+ 0x1c, 0xf2, 0xfc, 0x2f, 0x99, 0xef, 0xf5, 0x18, 0xc8, 0x1f, 0x19, 0x94, 0xec, 0x13, 0x58, 0xc1,
+ 0xfb, 0x3e, 0xa5, 0x3d, 0xe1, 0x07, 0x5f, 0xd7, 0xc3, 0xb3, 0xac, 0x21, 0x84, 0x32, 0x52, 0xbf,
+ 0xc9, 0x95, 0x8f, 0x75, 0xc5, 0x4d, 0xee, 0x75, 0x00, 0xd7, 0xf3, 0xde, 0x66, 0x91, 0xe7, 0xd3,
+ 0xac, 0xd7, 0x54, 0x38, 0xf6, 0x9b, 0xb0, 0xc8, 0x8f, 0xde, 0x8f, 0x94, 0x9b, 0xbb, 0x73, 0xef,
+ 0x16, 0xd5, 0x5b, 0x3f, 0x53, 0xbf, 0xf5, 0xb3, 0xbf, 0x0f, 0x1f, 0xaf, 0x18, 0x2e, 0x7c, 0xbd,
+ 0x8b, 0x17, 0x92, 0xd9, 0x24, 0xd2, 0xe5, 0x9f, 0x9e, 0xe0, 0x3d, 0xd5, 0x16, 0x47, 0x13, 0xb2,
+ 0x7f, 0x64, 0xc0, 0xcb, 0x15, 0xf5, 0xdb, 0x61, 0x18, 0xb1, 0x53, 0x09, 0xe9, 0x55, 0x4c, 0xa3,
+ 0xf7, 0x61, 0x66, 0xb9, 0x0f, 0x9b, 0x68, 0x84, 0xd6, 0x3b, 0x7e, 0x08, 0x46, 0xfc, 0xd6, 0x80,
+ 0x8e, 0x34, 0xc2, 0xf3, 0xe4, 0xb4, 0x5f, 0x81, 0x06, 0x3e, 0x66, 0xc8, 0x09, 0x5f, 0x9e, 0x38,
+ 0x61, 0xf6, 0x08, 0xe3, 0xc8, 0xc1, 0xd5, 0x88, 0x34, 0x27, 0xd5, 0x8d, 0xaf, 0xe5, 0x71, 0x3f,
+ 0xf3, 0x73, 0x83, 0x14, 0xb0, 0xbf, 0x93, 0x05, 0xf3, 0x1e, 0x09, 0xc8, 0x55, 0xfa, 0xc8, 0x7e,
+ 0x0c, 0x4b, 0xe2, 0x65, 0xa5, 0xf0, 0xc1, 0x95, 0xa8, 0x7d, 0x1b, 0x96, 0x85, 0xda, 0x2b, 0xb7,
+ 0x37, 0xcf, 0x0e, 0xee, 0x9f, 0xdd, 0x63, 0x97, 0x0e, 0xaf, 0x52, 0xfb, 0x17, 0x61, 0x35, 0xf3,
+ 0xfd, 0xe3, 0xd0, 0xcb, 0xef, 0x33, 0xa6, 0xdc, 0xe2, 0xda, 0x5f, 0x82, 0xb5, 0x5d, 0x46, 0x4f,
+ 0x49, 0x14, 0x0b, 0x94, 0x51, 0x24, 0x93, 0xd0, 0x92, 0x5f, 0x52, 0x76, 0x1f, 0x56, 0xe4, 0xfb,
+ 0xc3, 0x81, 0x3b, 0xf4, 0x29, 0x56, 0xa5, 0xeb, 0x00, 0xa1, 0x3b, 0xcc, 0xde, 0x1f, 0xf1, 0x92,
+ 0x5a, 0xe1, 0xf0, 0xef, 0xf1, 0x31, 0x7b, 0x22, 0xbf, 0x9b, 0xf8, 0xbd, 0xe0, 0xd8, 0xdf, 0x06,
+ 0xcb, 0x21, 0x71, 0xc8, 0x68, 0x4c, 0x14, 0xad, 0x1b, 0xd0, 0xda, 0x4d, 0xa3, 0x88, 0x50, 0x3e,
+ 0x55, 0xf6, 0x18, 0xa7, 0xb2, 0xb8, 0xde, 0x7e, 0xa1, 0x17, 0x2f, 0x36, 0x15, 0x8e, 0xfd, 0xab,
+ 0x1a, 0x34, 0xfb, 0xfe, 0x90, 0xba, 0x81, 0x43, 0xc6, 0xd6, 0xd7, 0xa1, 0x81, 0xed, 0xa6, 0x74,
+ 0xed, 0xa4, 0x8b, 0x36, 0x1c, 0x8d, 0x7d, 0xb5, 0x43, 0xc6, 0xf7, 0x3e, 0xe6, 0x48, 0x19, 0xeb,
+ 0x2d, 0x68, 0xe3, 0xaf, 0xfb, 0x78, 0x7d, 0x20, 0x6b, 0xff, 0xe7, 0x2e, 0x50, 0x22, 0x47, 0xa3,
+ 0x2e, 0x5d, 0x03, 0x37, 0x68, 0x20, 0xb6, 0x23, 0x99, 0x4f, 0xd3, 0x0d, 0xc2, 0x5d, 0x4b, 0x1a,
+ 0x84, 0x32, 0x5c, 0xda, 0x15, 0x07, 0x6c, 0xb9, 0x85, 0x4f, 0x97, 0xc6, 0x73, 0xb8, 0x94, 0x46,
+ 0x19, 0x2e, 0x7d, 0x9c, 0xd2, 0xe1, 0xe3, 0x50, 0xde, 0xfb, 0x4c, 0x97, 0xbe, 0x27, 0x86, 0x49,
+ 0x69, 0x94, 0xe1, 0xd2, 0x91, 0xa8, 0x76, 0xc2, 0xe9, 0xe7, 0x49, 0x63, 0x51, 0x94, 0xd2, 0x28,
+ 0xb3, 0xd3, 0x84, 0xf9, 0xd0, 0x3d, 0x0b, 0x98, 0xeb, 0xd9, 0xbf, 0xaf, 0x01, 0x64, 0x03, 0x63,
+ 0xb1, 0xb3, 0x6a, 0x10, 0x6d, 0x5e, 0x08, 0x51, 0x18, 0x9c, 0x29, 0x20, 0xf5, 0x27, 0x83, 0xf4,
+ 0xf9, 0x59, 0x41, 0x42, 0x6d, 0x25, 0x98, 0x6e, 0x95, 0x60, 0xda, 0xbc, 0x10, 0x26, 0x69, 0x94,
+ 0x04, 0xea, 0x56, 0x09, 0xa8, 0xcd, 0x0b, 0x81, 0x92, 0xf2, 0x12, 0xaa, 0x5b, 0x25, 0xa8, 0x36,
+ 0x2f, 0x84, 0x4a, 0xca, 0x4b, 0xb0, 0x6e, 0x95, 0xc0, 0xda, 0xbc, 0x10, 0x2c, 0x29, 0x5f, 0x85,
+ 0xeb, 0x7d, 0x13, 0x96, 0x84, 0xcb, 0xf0, 0x91, 0x87, 0x1e, 0x31, 0x71, 0x97, 0x2b, 0xdc, 0xa5,
+ 0x3f, 0x67, 0xeb, 0x4c, 0xeb, 0x0b, 0xb0, 0x82, 0x0c, 0xf9, 0xfc, 0x29, 0xce, 0x8a, 0xe6, 0x46,
+ 0xed, 0x46, 0xd3, 0xa9, 0x7e, 0x10, 0xd7, 0xf2, 0x69, 0x9c, 0xb0, 0xd1, 0x9e, 0x9b, 0xb8, 0x59,
+ 0xb7, 0x52, 0x70, 0xd4, 0x47, 0x93, 0xb9, 0xca, 0x1f, 0x66, 0x22, 0xc6, 0x46, 0xf9, 0x6b, 0x88,
+ 0xa4, 0xb8, 0x44, 0xe2, 0x8f, 0x08, 0x4b, 0x13, 0x59, 0x26, 0x32, 0x92, 0xef, 0xb1, 0x23, 0xe2,
+ 0xf9, 0xae, 0x78, 0x6a, 0x90, 0x6f, 0x90, 0x39, 0x43, 0x54, 0xb6, 0xe2, 0xe9, 0x44, 0xfe, 0xa1,
+ 0xa5, 0xe0, 0x5c, 0xfc, 0xcc, 0x61, 0xff, 0xc3, 0x80, 0xd5, 0x03, 0x37, 0x4a, 0xfc, 0x81, 0x1f,
+ 0xba, 0x34, 0xe9, 0x91, 0xc4, 0x15, 0x6b, 0xd0, 0xde, 0xb4, 0x8d, 0x0f, 0xf6, 0xa6, 0x7d, 0x00,
+ 0x9d, 0x61, 0xd1, 0x5f, 0x2a, 0xaf, 0xe2, 0x33, 0x9f, 0xbb, 0x4b, 0xe2, 0xda, 0x03, 0x7d, 0xed,
+ 0x03, 0x3f, 0xd0, 0xdb, 0x3f, 0x35, 0xa1, 0x53, 0x2a, 0x9d, 0xbc, 0x45, 0xc4, 0xcd, 0x3f, 0x8f,
+ 0x89, 0x9c, 0xb6, 0xb6, 0x01, 0xfc, 0x3c, 0x8c, 0xce, 0xb9, 0x38, 0xd5, 0x63, 0xcd, 0x51, 0x84,
+ 0x26, 0xbd, 0x9f, 0xd4, 0x2e, 0xfd, 0x7e, 0x62, 0xdd, 0x83, 0x56, 0x58, 0x80, 0x74, 0xce, 0xa1,
+ 0x68, 0x02, 0x94, 0x8e, 0x2a, 0x6a, 0x7f, 0x0f, 0x56, 0x2a, 0x15, 0x4a, 0x3c, 0xa7, 0xb0, 0x13,
+ 0x42, 0xf3, 0xe7, 0x14, 0x4e, 0x28, 0xc1, 0x6a, 0x96, 0x83, 0x35, 0xf0, 0x4f, 0xd5, 0x7f, 0x00,
+ 0x49, 0xd2, 0xfe, 0x99, 0x09, 0x6b, 0x93, 0x77, 0x97, 0x17, 0xd5, 0xdd, 0x87, 0xd0, 0x9d, 0x56,
+ 0xc9, 0xaf, 0xcc, 0xeb, 0x45, 0x74, 0xe7, 0xfb, 0xf0, 0x8b, 0xea, 0xee, 0xd5, 0x2c, 0xba, 0x95,
+ 0xad, 0xce, 0xfe, 0x43, 0xee, 0x9f, 0xbc, 0xd3, 0x78, 0x41, 0xfd, 0x63, 0xbd, 0x0a, 0xcb, 0xb8,
+ 0x4c, 0xe5, 0xc1, 0x1d, 0x1b, 0xd7, 0x0a, 0xbf, 0xa8, 0x14, 0xca, 0xb6, 0x7f, 0x65, 0x31, 0xfb,
+ 0x67, 0x23, 0xc3, 0x24, 0xef, 0xdf, 0x3e, 0x52, 0x98, 0x14, 0x91, 0xa6, 0x34, 0x35, 0x4a, 0xa4,
+ 0xe5, 0x7d, 0xe5, 0xff, 0x23, 0xed, 0xe2, 0x48, 0xcb, 0x7d, 0xa9, 0x34, 0x78, 0xf6, 0x0f, 0xa1,
+ 0xbd, 0x47, 0x82, 0x5e, 0x3c, 0xcc, 0xfe, 0xea, 0x73, 0x9e, 0x23, 0xa7, 0xfd, 0x11, 0x79, 0xea,
+ 0x9f, 0x7c, 0xca, 0x7f, 0x10, 0x9a, 0xab, 0xfc, 0x41, 0xc8, 0xde, 0x81, 0x25, 0xd5, 0x80, 0xcb,
+ 0xfc, 0xd3, 0x69, 0xe7, 0xda, 0x77, 0xd7, 0xb7, 0x5e, 0xc3, 0xbf, 0xbc, 0xbf, 0x51, 0x71, 0xe2,
+ 0x61, 0x43, 0xfc, 0x05, 0xfe, 0xcb, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x93, 0x6d, 0x96, 0x68,
+ 0x15, 0x2f, 0x00, 0x00,
}
diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto
index 5c54da954..a1cc2ce63 100644
--- a/pkg/proto/sdk_ws/ws.proto
+++ b/pkg/proto/sdk_ws/ws.proto
@@ -32,6 +32,7 @@ message GroupMemberFullInfo {
int32 joinSource = 8;
string operatorUserID = 9;
string ex = 10;
+ uint32 muteEndTime = 11;
}
message PublicUserInfo{
@@ -260,6 +261,33 @@ message GroupDismissedTips{
int64 operationTime = 3;
}
+message GroupMemberMutedTips{
+ GroupInfo group = 1;
+ GroupMemberFullInfo opUser = 2;
+ int64 operationTime = 3;
+ GroupMemberFullInfo mutedUser = 4;
+ uint32 mutedSeconds = 5;
+}
+
+message GroupMemberCancelMutedTips{
+ GroupInfo group = 1;
+ GroupMemberFullInfo opUser = 2;
+ int64 operationTime = 3;
+ GroupMemberFullInfo mutedUser = 4;
+}
+
+message GroupMutedTips{
+ GroupInfo group = 1;
+ GroupMemberFullInfo opUser = 2;
+ int64 operationTime = 3;
+}
+
+message GroupCancelMutedTips{
+ GroupInfo group = 1;
+ GroupMemberFullInfo opUser = 2;
+ int64 operationTime = 3;
+}
+
//////////////////////friend/////////////////////
//message FriendInfo{
diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh
index 55aaa88b1..85b36ab25 100644
--- a/script/demo_svr_start.sh
+++ b/script/demo_svr_start.sh
@@ -44,4 +44,4 @@ if [ $check -ge 1 ]; then
echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX}
else
echo -e ${YELLOW_PREFIX}${demo_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX}
-fi
+fi
\ No newline at end of file
diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh
index 6579d400c..6236712ba 100644
--- a/script/docker_check_service.sh
+++ b/script/docker_check_service.sh
@@ -8,3 +8,4 @@ sleep 30
echo "check OpenIM................................"
./check_all.sh
+
diff --git a/script/env_check.sh b/script/env_check.sh
index 6af30a37b..a3a9857f6 100644
--- a/script/env_check.sh
+++ b/script/env_check.sh
@@ -17,4 +17,3 @@ if [ $available -lt 2000 ] ; then
else
echo -e ${GREEN_PREFIX} "Memory is ok, available is: "$available"m${COLOR_SUFFIX}"
fi
-
diff --git a/script/path_info.cfg b/script/path_info.cfg
index f9038d11f..84e81adfd 100644
--- a/script/path_info.cfg
+++ b/script/path_info.cfg
@@ -80,4 +80,3 @@ service_names=(
-
diff --git a/script/start_all.sh b/script/start_all.sh
index 4354eace9..4125ca50a 100644
--- a/script/start_all.sh
+++ b/script/start_all.sh
@@ -16,4 +16,3 @@ for i in ${need_to_start_server_shell[*]}; do
chmod +x $i
./$i
done
-
diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh
index 8cf9bb6df..0b54493c2 100644
--- a/script/start_rpc_service.sh
+++ b/script/start_rpc_service.sh
@@ -65,4 +65,4 @@ for ((i = 0; i < ${#service_filename[*]}; i++)); do
pid="netstat -ntlp|grep $j |awk '{printf \$7}'|cut -d/ -f1"
echo -e "${RED_PREFIX}${service_filename[$i]} Service is started,port number:$j pid:$(eval $pid)$COLOR_SUFFIX"
done
-done
+done
\ No newline at end of file