From 00b0e0100082fc05e0f671c6cdd0fc323ce4a521 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 21 Aug 2024 10:46:45 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E6=AF=94=E8=B5=9B=E8=A7=82=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/action_tournament.go | 8 ++-- worldsrv/tmmatch.go | 8 +++- worldsrv/tournament.go | 78 ++++++++++++++++++++++++++++++++--- 3 files changed, 84 insertions(+), 10 deletions(-) diff --git a/worldsrv/action_tournament.go b/worldsrv/action_tournament.go index bcebbf6..dbbbf14 100644 --- a/worldsrv/action_tournament.go +++ b/worldsrv/action_tournament.go @@ -199,13 +199,15 @@ func CSRoomList(s *netlib.Session, packetId int, data interface{}, sid int64) er if v.matchCtx == nil { continue } + + p := PlayerMgrSington.GetPlayerBySnId(v.matchCtx.copySnid) + d := &tournament.MatchPlayer{ SnId: v.matchCtx.copySnid, - Name: v.Name, - HeadUrl: v.HeadUrl, + Name: p.GetName(), UseRoleId: v.matchCtx.copyRoleId, UseSkinId: v.matchCtx.copySkinId, - Rank: v.matchCtx.rank, + Rank: TournamentMgr.GetRank(tm.SortId, v.matchCtx.copySnid), Score: v.matchCtx.grade, } room.Players = append(room.Players, d) diff --git a/worldsrv/tmmatch.go b/worldsrv/tmmatch.go index 482162c..bc23dc5 100644 --- a/worldsrv/tmmatch.go +++ b/worldsrv/tmmatch.go @@ -19,6 +19,10 @@ import ( "mongo.games.com/game/srvdata" ) +func getSortId() int64 { + return time.Now().UnixMilli() +} + type TmPlayer struct { SnId int32 seq int // 报名序号(第几个报名的) @@ -30,6 +34,7 @@ type TmGradeInfo struct { copyLv int32 copyRoleId int32 CopySkinId int32 + rank int32 } type TmMatch struct { @@ -48,7 +53,7 @@ type TmMatch struct { func NewTmMatch(platform string, match *webapi_proto.GameMatchDate, players map[int32]*TmPlayer) *TmMatch { ret := &TmMatch{ - SortId: time.Now().UnixNano(), + SortId: getSortId(), TMId: match.Id, TmPlayer: make(map[int32]*TmPlayer), Platform: platform, @@ -307,6 +312,7 @@ func (tm *TmMatch) RobotGradesDecline(round int) { copyLv: info.copyLv, copyRoleId: info.copyRoleId, CopySkinId: info.CopySkinId, + rank: info.rank, } tm.robotGrades[lastRound][i] = gradeInfo if info.copySnid != 0 { diff --git a/worldsrv/tournament.go b/worldsrv/tournament.go index 02bf60e..8519cf2 100644 --- a/worldsrv/tournament.go +++ b/worldsrv/tournament.go @@ -154,8 +154,8 @@ func (this *Tournament) addFinalPlayer(sortId int64, p *PerRankInfo) { this.finalPerRank[sortId] = append(this.finalPerRank[sortId], p) } -// 查询一场比赛某轮的历史数据 -func (this *Tournament) getRoundPlayer(sortId int64, round int32) *PlayerRoundInfo { +// GetRoundPlayer 查询一场比赛某轮的历史数据 +func (this *Tournament) GetRoundPlayer(sortId int64, round int32) *PlayerRoundInfo { _, ok := this.roundPlayers[sortId] if !ok { return nil @@ -923,6 +923,59 @@ func (this *Tournament) getRank(sortId int64, round, snid int32, isFinals bool) return 0 } +// GetRank 获取排名 +func (this *Tournament) GetRank(sortId int64, snid int32) int32 { + tm := this.GetTm(sortId) + if tm == nil { + return 0 + } + round := this.GetRound(sortId) + useRobot := this.IsRobotOn(tm.gmd) + + robotRankFunc := func(n int, snid int32) int32 { + rank := int32(0) + for _, v := range tm.robotGrades[n] { + if v.copySnid == snid { + return v.rank + } + if v.copySnid == 0 { + rank = v.rank + } + } + return rank + } + + playerRankFunc := func(n int, snid int32) int32 { + d := this.GetRoundPlayer(sortId, int32(n)) + if d != nil { + for _, v := range d.players { + if v.p.SnId == snid { + return v.rank + } + } + } + d = this.GetRoundPlayer(sortId, int32(n-1)) + if d != nil { + for _, v := range d.players { + if v.p.SnId == snid { + return v.rank + } + } + } + return 0 + } + + if round <= 1 { + return 0 + } else { + if useRobot { + return robotRankFunc(int(round-1), snid) + } else { + return playerRankFunc(int(round-1), snid) + } + } +} + // UpdateMatchInfo 玩家比赛结束 更新积分 func (this *Tournament) UpdateMatchInfo(p *Player, sortId int64, grade, isWin int32, matchRobotGrades map[int32]int32) { logger.Logger.Tracef("UpdateMatchInfo: sortId:%v, grade:%v, isWin: %v, matchRobotGrades:%v", sortId, grade, isWin, matchRobotGrades) @@ -999,7 +1052,7 @@ func (this *Tournament) stopMatch(matchId int32, sortId int64) (isOver bool) { // 开启机器人时使用 func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatchContext, matchRobotGrades map[int32]int32) { logger.Logger.Tracef("NextRoundStartSingle 当前第 %v 轮", playerCtx.round) - info := this.getRoundPlayer(sortId, playerCtx.round) + info := this.GetRoundPlayer(sortId, playerCtx.round) if info == nil { return } @@ -1042,11 +1095,24 @@ func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatc } sort.Slice(arr, func(i, j int) bool { + if arr[i].grade == arr[j].grade { // 真人在前 + if arr[i].copySnid == 0 { + return true + } + if arr[j].copySnid == 0 { + return false + } + } return arr[i].grade > arr[j].grade }) + for k, v := range arr { + v.rank = int32(k + 1) + } + playerCtx.tm.robotGrades[int(round)] = arr for _, info := range arr { - logger.Logger.Tracef("NextRoundStart_Single 本轮积分排名 Snid:%v Grade:%v copyLv:%v copyRoleId:%v", info.copySnid, info.grade, info.copyLv, info.copyRoleId) + logger.Logger.Tracef("NextRoundStart_Single 本轮积分排名 round:%v Snid:%v Grade:%v copyLv:%v copyRoleId:%v rank:%v", + playerCtx.round, info.copySnid, info.grade, info.copyLv, info.copyRoleId, info.rank) } // 获取排名 @@ -1117,7 +1183,7 @@ func (this *Tournament) NextRoundStartSingle(sortId int64, playerCtx *PlayerMatc // 关闭机器时使用 func (this *Tournament) NextRoundStart(sortId int64, playerCtx *PlayerMatchContext) { logger.Logger.Tracef("NextRoundStart 当前第 %v 轮", playerCtx.round) - info := this.getRoundPlayer(sortId, playerCtx.round) + info := this.GetRoundPlayer(sortId, playerCtx.round) if info == nil { return } @@ -1158,7 +1224,7 @@ func (this *Tournament) NextRoundStart(sortId int64, playerCtx *PlayerMatchConte info.players = info.players[len(ps):] willOut := false - if promotionNum1 == this.getRoundPlayer(sortId, playerCtx.round-1).num { + if promotionNum1 == this.GetRoundPlayer(sortId, playerCtx.round-1).num { // 最后一个人打完了,确定要淘汰的人 willOut = true } else { From 71655d81266b603b76cc20da9e36edbde02743f7 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Wed, 21 Aug 2024 17:22:58 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E6=AF=94=E8=B5=9B=E8=A7=82=E6=88=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/base/scene.go | 2 +- gamesrv/tienlen/scenepolicy_tienlen.go | 2 +- worldsrv/action_game.go | 182 +++++----- worldsrv/action_server.go | 9 +- worldsrv/action_tournament.go | 6 + worldsrv/coinscenepool.go | 4 +- worldsrv/gamesess.go | 18 +- worldsrv/hundredscenemgr.go | 2 +- worldsrv/matchscenemgr.go | 14 +- worldsrv/player.go | 2 +- worldsrv/scene.go | 461 ++++++++----------------- worldsrv/scenemgr.go | 12 +- worldsrv/trascate_webapi.go | 18 +- 13 files changed, 283 insertions(+), 449 deletions(-) diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index 9d4bd8c..704027a 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -699,7 +699,7 @@ func (this *Scene) AudienceLeave(p *Player, reason int) { //当前状态不能离场 if !this.CanChangeCoinScene(p) { pack := &gamehall.SCLeaveRoom{ - OpRetCode: (gamehall.OpResultCode_Game(p.OpCode)), //protocol.OpResultCode_OPRC_Hundred_YouHadBetCannotLeave, + OpRetCode: gamehall.OpResultCode_Game(p.OpCode), //protocol.OpResultCode_OPRC_Hundred_YouHadBetCannotLeave, RoomId: proto.Int(this.SceneId), } proto.SetDefaults(pack) diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index aa163e9..57ed170 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -517,7 +517,7 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen //手牌 for j := int32(0); j < rule.HandCardNum; j++ { if nowPlayer.cards[j] != rule.InvalideCard { - if s.GetSceneState().GetState() == rule.TienLenSceneStateBilled { //结算状态显示用 + if s.GetSceneState().GetState() == rule.TienLenSceneStateBilled || p.IsMarkFlag(base.PlayerState_Audience) { //结算状态显示用 pd1.Cards = append(pd1.Cards, nowPlayer.cards[j]) } else { pd1.Cards = append(pd1.Cards, rule.InvalideCard) diff --git a/worldsrv/action_game.go b/worldsrv/action_game.go index 282ea93..db1b05b 100644 --- a/worldsrv/action_game.go +++ b/worldsrv/action_game.go @@ -183,94 +183,6 @@ failed: return nil } -type CSAudienceEnterRoomHandler struct { -} - -func (this *CSAudienceEnterRoomHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { - logger.Logger.Trace("CSAudienceEnterRoomHandler Process recv ", data) - if msg, ok := data.(*gamehall.CSEnterRoom); ok { - p := PlayerMgrSington.GetPlayer(sid) - if p == nil { - return nil - } - var code = gamehall.OpResultCode_Game_OPRC_Sucess_Game - var sp ScenePolicy - var dbGameFree *server.DB_GameFree - var cfg *webapiproto.GameFree - scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId())) - if scene == nil { - code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game - logger.Logger.Trace("CSAudienceEnterRoomHandler scene == nil") - goto failed - } - if !scene.CanAudience() { - code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game - logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.CanAudience() %v", scene.sceneId) - goto failed - } - - if scene.IsMatchScene() && !PlatformMgrSingleton.IsMatchAudience(p.Platform, p.SnId) { - code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game - logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.IsMatchAudience() %v", scene.sceneId) - goto failed - } - if p.scene != nil { - code = gamehall.OpResultCode_Game_OPRC_CannotWatchReasonInOther_Game - logger.Logger.Trace("CSAudienceEnterRoomHandler p.scene != nil") - goto failed - } - cfg = PlatformMgrSingleton.GetGameFree(p.Platform, scene.dbGameFree.Id) - if cfg != nil && (cfg.GroupId != scene.groupId || cfg.GroupId == 0) { - if scene.limitPlatform != nil { - if scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.IdStr { - code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game - logger.Logger.Tracef("CSEnterRoomHandler ScenePolicy(gameid:%v mode:%v) scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.Name", scene.gameId, scene.gameMode) - goto failed - } - } - } - //if !scene.starting { - // code = gamehall.OpResultCode_Game_OPRC_CannotWatchReasonRoomNotStart_Game - // logger.Logger.Trace("CSAudienceEnterRoomHandler !scene.starting") - // goto failed - //} - if scene.deleting { - code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game - logger.Logger.Trace("CSAudienceEnterRoomHandler scene is deleting") - goto failed - } - if scene.closed { - code = gamehall.OpResultCode_Game_OPRC_RoomHadClosed_Game - logger.Logger.Trace("CSAudienceEnterRoomHandler scene is closed") - goto failed - } - //if scene.IsCoinScene() || scene.IsHundredScene() { - // code = gamehall.OpResultCode_Game_OPRC_Error_Game - // logger.Logger.Trace("CSAudienceEnterRoomHandler scene is IsCoinScene IsHundredScene") - // goto failed - //} - - sp = GetScenePolicy(scene.gameId, scene.gameMode) - if sp == nil { - code = gamehall.OpResultCode_Game_OPRC_GameNotExist_Game - logger.Logger.Tracef("CSAudienceEnterRoomHandler ScenePolicy(gameid:%v mode:%v) not registe", scene.gameId, scene.gameMode) - goto failed - } - dbGameFree = scene.dbGameFree - code = gamehall.OpResultCode_Game(CoinSceneMgrSingleton.AudienceEnter(p, dbGameFree.GetId(), msg.GetRoomId(), nil, true)) - - failed: - if code != gamehall.OpResultCode_Game_OPRC_Sucess_Game { - resp := &gamehall.SCEnterRoom{ - OpRetCode: code, - } - proto.SetDefaults(resp) - p.SendToClient(int(gamehall.GameHallPacketID_PACKET_SC_ENTERROOM), resp) - } - } - return nil -} - type CSReturnRoomPacketFactory struct { } type CSReturnRoomHandler struct { @@ -1235,10 +1147,95 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d return nil } +func CSAudienceEnterRoomHandler(s *netlib.Session, packetId int, data interface{}, sid int64) error { + logger.Logger.Trace("CSAudienceEnterRoomHandler Process recv ", data) + msg, ok := data.(*gamehall.CSEnterRoom) + if !ok { + return nil + } + + p := PlayerMgrSington.GetPlayer(sid) + if p == nil { + return nil + } + + var code = gamehall.OpResultCode_Game_OPRC_Error_Game + var sp ScenePolicy + var cfg *webapiproto.GameFree + + // 房间是否存在 + scene := SceneMgrSingleton.GetScene(int(msg.GetRoomId())) + if scene == nil { + code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game + logger.Logger.Trace("CSAudienceEnterRoomHandler scene == nil") + goto failed + } + // 房间是否正在销毁 + if scene.deleting { + code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game + logger.Logger.Trace("CSAudienceEnterRoomHandler scene is deleting") + goto failed + } + // 房间是否已经关闭 + if scene.closed { + code = gamehall.OpResultCode_Game_OPRC_RoomHadClosed_Game + logger.Logger.Trace("CSAudienceEnterRoomHandler scene is closed") + goto failed + } + // 玩家没有在房间中 + if p.scene != nil { + code = gamehall.OpResultCode_Game_OPRC_CannotWatchReasonInOther_Game + logger.Logger.Trace("CSAudienceEnterRoomHandler p.scene != nil") + goto failed + } + // 房间是否可以观战 + if !scene.CanAudience() { + code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game + logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.CanAudience() %v", scene.sceneId) + goto failed + } + // 比赛场白名单观众 + if scene.IsMatchScene() && !PlatformMgrSingleton.IsMatchAudience(p.Platform, p.SnId) { + code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game + logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.IsMatchAudience() %v", scene.sceneId) + goto failed + } + // 是不是相同平台 + cfg = PlatformMgrSingleton.GetGameFree(p.Platform, scene.dbGameFree.Id) + if cfg == nil || (scene.limitPlatform != nil && scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.IdStr) { + code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game + logger.Logger.Tracef("CSEnterRoomHandler ScenePolicy(gameid:%v mode:%v) scene.limitPlatform.Isolated && p.Platform != scene.limitPlatform.Name", scene.gameId, scene.gameMode) + goto failed + } + // 游戏规则是否存在 + sp = GetScenePolicy(scene.gameId, scene.gameMode) + if sp == nil { + code = gamehall.OpResultCode_Game_OPRC_GameNotExist_Game + logger.Logger.Tracef("CSAudienceEnterRoomHandler ScenePolicy(gameid:%v mode:%v) not registe", scene.gameId, scene.gameMode) + goto failed + } + + switch { + case scene.IsCoinScene(): + code = gamehall.OpResultCode_Game(CoinSceneMgrSingleton.AudienceEnter(p, cfg.GetDbGameFree().GetId(), msg.GetRoomId(), nil, true)) + case scene.IsHundredScene(): + + case scene.IsMatchScene(): + code = gamehall.OpResultCode_Game(MatchSceneMgrSingleton.AudienceEnter(p, cfg.GetDbGameFree().GetId(), int(msg.GetRoomId()), nil, true)) + } + +failed: + if code != gamehall.OpResultCode_Game_OPRC_Sucess_Game { + resp := &gamehall.SCEnterRoom{ + OpRetCode: code, + } + p.SendToClient(int(gamehall.GameHallPacketID_PACKET_SC_ENTERROOM), resp) + } + + return nil +} + func init() { - // 观众进入房间 - common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSAudienceEnterRoomHandler{}) - netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &CSEnterRoomPacketFactory{}) // 返回房间 common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomHandler{}) netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_RETURNROOM), &CSReturnRoomPacketFactory{}) @@ -1266,4 +1263,7 @@ func init() { //我的游戏信息及平台公告 common.RegisterHandler(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticeHandler{}) netlib.RegisterFactory(int(gamehall.GameHallPacketID_PACKET_CS_COMNOTICE), &CSRecordAndNoticePacketFactory{}) + + // 观众进入房间 + common.Register(int(gamehall.GameHallPacketID_PACKET_CS_AUDIENCE_ENTERROOM), &gamehall.CSEnterRoom{}, CSAudienceEnterRoomHandler) } diff --git a/worldsrv/action_server.go b/worldsrv/action_server.go index 28e1e1a..6728c10 100644 --- a/worldsrv/action_server.go +++ b/worldsrv/action_server.go @@ -253,8 +253,11 @@ func init() { p.GameCoinTs = gameCoinTs p.dirty = true } - - CoinSceneMgrSingleton.PlayerLeave(p, int(msg.GetReason())) + if scene.IsMatchScene() { + scene.AudienceLeave(p, int(msg.GetReason())) + } else { + CoinSceneMgrSingleton.PlayerLeave(p, int(msg.GetReason())) + } //变化金币 p.dirty = true @@ -639,7 +642,7 @@ func init() { if msg, ok := pack.(*serverproto.GWChangeSceneEvent); ok { scene := SceneMgrSingleton.GetScene(int(msg.GetSceneId())) if scene != nil { - scene.PlayerTryChange() + //scene.PlayerTryChange() } } return nil diff --git a/worldsrv/action_tournament.go b/worldsrv/action_tournament.go index dbbbf14..4da5495 100644 --- a/worldsrv/action_tournament.go +++ b/worldsrv/action_tournament.go @@ -212,6 +212,12 @@ func CSRoomList(s *netlib.Session, packetId int, data interface{}, sid int64) er } room.Players = append(room.Players, d) } + sort.Slice(room.Players, func(i, j int) bool { + if room.Players[i].Rank == room.Players[j].Rank { + return room.Players[i].SnId < room.Players[j].SnId + } + return room.Players[i].Rank < room.Players[j].Rank + }) pack.List = append(pack.List, room) } p.SendToClient(int(tournament.TOURNAMENTID_PACKET_TM_SCRoomList), pack) diff --git a/worldsrv/coinscenepool.go b/worldsrv/coinscenepool.go index 6045eac..fb6ac10 100644 --- a/worldsrv/coinscenepool.go +++ b/worldsrv/coinscenepool.go @@ -330,7 +330,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) { // 玩家离开结算空房间的私人房 if s.IsPrivateScene() { if s.IsEmpty() { - s.DoDelete(false) + s.SendGameDelete(false) } return } @@ -345,7 +345,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) { } } if hasCnt > int(csp.dbGameFree.GetCreateRoomNum()) { - s.DoDelete(false) + s.SendGameDelete(false) } } } diff --git a/worldsrv/gamesess.go b/worldsrv/gamesess.go index eb7339a..2d28dd5 100644 --- a/worldsrv/gamesess.go +++ b/worldsrv/gamesess.go @@ -80,18 +80,14 @@ func (this *GameSession) GetSrvId() int32 { // 关闭其上的所有场景 func (this *GameSession) CloseAllScene() { for sceneId, scene := range this.scenes { - if scene.IsMiniGameScene() { - - } else { - scDestroyRoom := &gamehall_proto.SCDestroyRoom{ - RoomId: proto.Int(sceneId), - OpRetCode: gamehall_proto.OpResultCode_Game_OPRC_Sucess_Game, - IsForce: proto.Int(1), - } - proto.SetDefaults(scDestroyRoom) - scene.Broadcast(int(gamehall_proto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0) - SceneMgrSingleton.DestroyScene(sceneId, true) + scDestroyRoom := &gamehall_proto.SCDestroyRoom{ + RoomId: proto.Int(sceneId), + OpRetCode: gamehall_proto.OpResultCode_Game_OPRC_Sucess_Game, + IsForce: proto.Int(1), } + proto.SetDefaults(scDestroyRoom) + scene.Broadcast(int(gamehall_proto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0) + SceneMgrSingleton.DestroyScene(sceneId, true) } this.scenes = nil this.players = nil diff --git a/worldsrv/hundredscenemgr.go b/worldsrv/hundredscenemgr.go index 2726c9d..fed9fe0 100644 --- a/worldsrv/hundredscenemgr.go +++ b/worldsrv/hundredscenemgr.go @@ -392,7 +392,7 @@ func (this *HundredSceneMgr) OnPlatformGameFreeUpdate(p *Platform, oldCfg, newCf } if scenes, exist := this.scenesOfPlatform[p.IdStr]; exist { if s, ok := scenes[newCfg.DbGameFree.Id]; ok { - s.DoDelete(false) + s.SendGameDelete(false) } } } diff --git a/worldsrv/matchscenemgr.go b/worldsrv/matchscenemgr.go index 1675d58..9367be7 100644 --- a/worldsrv/matchscenemgr.go +++ b/worldsrv/matchscenemgr.go @@ -5,6 +5,7 @@ import ( "mongo.games.com/game/common" "mongo.games.com/game/proto" + hallproto "mongo.games.com/game/protocol/gamehall" "mongo.games.com/game/protocol/server" ) @@ -172,11 +173,22 @@ func (ms *MatchSceneMgr) OnDestroyScene(sceneId int) { delete(ms.scenes, sceneId) } +func (ms *MatchSceneMgr) AudienceEnter(p *Player, id int32, roomId int, exclude []int32, ischangeroom bool) hallproto.OpResultCode { + scene, ok := ms.scenes[roomId] + if !ok { + return hallproto.OpResultCode_OPRC_RoomHadClosed + } + if !scene.AudienceEnter(p, ischangeroom) { + return hallproto.OpResultCode_OPRC_RoomHadClosed + } + return hallproto.OpResultCode_OPRC_Sucess +} + func (ms *MatchSceneMgr) MatchStop(tm *TmMatch) { if SceneMgrSingleton.scenes != nil && tm != nil { for _, scene := range SceneMgrSingleton.scenes { if scene.IsMatchScene() && scene.matchId == tm.SortId { - scene.DoDelete(false) + scene.SendGameDelete(false) } } } diff --git a/worldsrv/player.go b/worldsrv/player.go index 1e405c5..b7959ed 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -1662,7 +1662,7 @@ func (this *Player) OnLogouted() { this.Save(true) } -func (this *Player) MarshalData(gameid int) (d []byte, e error) { +func (this *Player) MarshalData() (d []byte, e error) { d, e = netlib.Gob.Marshal(this.PlayerData) return } diff --git a/worldsrv/scene.go b/worldsrv/scene.go index 407af35..4429361 100644 --- a/worldsrv/scene.go +++ b/worldsrv/scene.go @@ -18,7 +18,6 @@ import ( "mongo.games.com/game/model" "mongo.games.com/game/proto" hallproto "mongo.games.com/game/protocol/gamehall" - playerproto "mongo.games.com/game/protocol/player" serverproto "mongo.games.com/game/protocol/server" "mongo.games.com/game/srvdata" ) @@ -50,11 +49,11 @@ type PlayerGameCtx struct { type Scene struct { sceneId int //场景id gameId int //游戏id - gameMode int //游戏模式 + gameMode int //游戏模式(玩法) sceneMode int //房间模式,参考common.SceneMode_XXX params []int64 //场景参数 paramsEx []int32 //其他扩展参数 - playerNum int //人数 + playerNum int //房间最大人数 robotNum int //机器人数量 robotLimit int //最大限制机器人数量 preInviteRobNum int //准备邀请机器人的数量 @@ -145,7 +144,7 @@ func NewScene(agentor, creator int32, id, gameId, gameMode, sceneMode int, clycl s.playerNum = int(sp.GetPlayerNum(s)) s.lastTime = s.createTime - if s.IsHallScene() || s.IsCoinScene() { + if s.IsCoinScene() { code := SceneMgrSingleton.AllocReplayCode() s.replayCode = code } @@ -228,6 +227,13 @@ func (this *Scene) RobotIsLimit() bool { return false } +func (this *Scene) GetPlayerGameCtx(snid int32) *PlayerGameCtx { + if ctx, exist := this.gameCtx[snid]; exist { + return ctx + } + return nil +} + func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool { logger.Logger.Infof("(this *Scene:%v) PlayerEnter(%v, %v) ", this.sceneId, p.SnId, pos) @@ -273,15 +279,6 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool { this.players[p.SnId] = p this.gameSess.AddPlayer(p) - switch { - case this.IsCoinScene(): - - case this.IsHundredScene(): - - case this.IsMatchScene(): - - } - // 如果正在等待比赛,退赛 if !this.IsMatchScene() { isWaiting, tmid := TournamentMgr.IsMatchWaiting(p.Platform, p.SnId) @@ -458,8 +455,7 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool { logger.Logger.Tracef("(this *Scene) PlayerEnter(%v) robot(%v) robotlimit(%v)", name, this.robotNum, this.robotLimit) } - //todo:send add msg to gamesrv - data, err := p.MarshalData(this.gameId) + data, err := p.MarshalData() if err == nil { var gateSid int64 if p.gateSess != nil { @@ -563,158 +559,111 @@ func (this *Scene) PlayerEnter(p *Player, pos int, ischangeroom bool) bool { } } -func ExePMCmd(s *netlib.Session, cmd string) { - CSPMCmd := &playerproto.CSPMCmd{ - Cmd: proto.String(cmd), +func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool { + logger.Logger.Infof("(this *Scene:%v) AudienceEnter(%v) ", this.sceneId, p.SnId) + p.scene = this + takeCoin := p.Coin + p.takeCoin = takeCoin + this.audiences[p.SnId] = p + this.gameSess.AddPlayer(p) + + data, err := p.MarshalData() + if err != nil { + return false } - proto.SetDefaults(CSPMCmd) - logger.Logger.Trace("CSPMCmd:", CSPMCmd) - s.Send(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), CSPMCmd) -} -func (this *Scene) GetPlayerGameCtx(snid int32) *PlayerGameCtx { - if ctx, exist := this.gameCtx[snid]; exist { - return ctx + var gateSid int64 + if p.gateSess != nil { + if srvInfo, ok := p.gateSess.GetAttribute(srvlib.SessionAttributeServerInfo).(*srvlibproto.SSSrvRegiste); ok && srvInfo != nil { + sessionId := srvlib.NewSessionIdEx(srvInfo.GetAreaId(), srvInfo.GetType(), srvInfo.GetId(), 0) + gateSid = sessionId.Get() + } } - return nil -} -func (this *Scene) PlayerLeave(p *Player, reason int) { - logger.Logger.Infof("(this *Scene:%v) PlayerLeave(%v, %v) ", this.sceneId, p.SnId, reason) - //if !this.IsMatchScene() { - //pack := &hall_proto.SCLeaveRoom{ - // Reason: proto.Int(reason), - // OpRetCode: hall_proto.OpResultCode_Game_OPRC_Sucess_Game, - // Mode: proto.Int(0), - // RoomId: proto.Int(this.sceneId), - //} - //proto.SetDefaults(pack) - //p.SendToClient(int(hall_proto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack) - pack := &hallproto.SCQuitGame{ - Id: int32(this.dbGameFree.Id), - Reason: proto.Int(reason), + msg := &serverproto.WGPlayerEnter{ + Sid: proto.Int64(p.sid), + SnId: proto.Int32(p.SnId), + GateSid: proto.Int64(gateSid), + SceneId: proto.Int(this.sceneId), + PlayerData: data, + TakeCoin: takeCoin, + IsLoaded: proto.Bool(ischangeroom), + IsQM: false, + IParams: p.MarshalIParam(), + SParams: p.MarshalSParam(), + CParams: p.MarshalCParam(), } - pack.OpCode = hallproto.OpResultCode_Game_OPRC_Sucess_Game - proto.SetDefaults(pack) - p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_QUITGAME), pack) - //} - //其他人直接从房间退出来 - this.DelPlayer(p) - - // 玩家最后所在游戏 - p.LastGameId = int(this.dbGameFree.GetGameId()) - if !p.IsRob { + if !p.IsRob { //保存下进入时的环境 + p.enterts = time.Now() + this.gameCtx[p.SnId] = &PlayerGameCtx{ + takeCoin: p.takeCoin, + enterTs: p.enterts.Unix(), + } this.lastTime = time.Now() } + this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCEENTER), msg) + return true } func (this *Scene) DelPlayer(p *Player) bool { if p.scene != this { - inroomid := 0 + roomId := 0 if p.scene != nil { - inroomid = p.scene.sceneId + roomId = p.scene.sceneId } - logger.Logger.Warnf("(this *Scene) DelPlayer found player:%v in room:%v but room:%v", p.SnId, inroomid, this.sceneId) + logger.Logger.Errorf("DelPlayer found player:%v in room:%v but room:%v", p.SnId, roomId, this.sceneId) } + if this.gameSess != nil { this.gameSess.DelPlayer(p) } - delete(this.players, p.SnId) + // 玩家离开游戏 + if _, ok := this.players[p.SnId]; ok { + delete(this.players, p.SnId) + if p.IsRobot() { + this.robotNum-- + } + // 记录玩家最近玩游戏的房间 + SceneMgrSingleton.OnPlayerLeaveScene(this, p) + // 玩家最后所在游戏 + p.LastGameId = int(this.dbGameFree.GetGameId()) + } + // 观众离开游戏 + if _, ok := this.audiences[p.SnId]; ok { + delete(this.audiences, p.SnId) + } + for k, v := range this.seats { + if v != nil && v.SnId == p.SnId { + p.pos = -1 + this.seats[k] = nil + break + } + } if !p.IsRob { delete(this.gameCtx, p.SnId) } - p.scene = nil - SceneMgrSingleton.OnPlayerLeaveScene(this, p) - - switch { - case this.IsHundredScene(): - //case this.IsHallScene(): - // PlatformMgrSingleton.OnPlayerLeaveScene(this, p) - // for i := 0; i < this.playerNum; i++ { - // if this.seats[i] == p { - // p.pos = -1 - // this.seats[i] = nil - // break - // } - // } - case this.IsCoinScene() || this.IsMatchScene(): - for i := 0; i < this.playerNum; i++ { - if this.seats[i] == p { - p.pos = -1 - this.seats[i] = nil - break - } - } + if !p.IsRob { + this.lastTime = time.Now() } - - if p.IsRob { - this.robotNum-- - name := this.GetSceneName() - logger.Logger.Tracef("(this *Scene) PlayerLeave(%v) robot(%v) robotlimit(%v)", name, this.robotNum, this.robotLimit) - } - //from gameserver, so don't need send msg return true } -func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool { - logger.Logger.Infof("(this *Scene:%v) AudienceEnter(%v) ", this.sceneId, p.SnId) - p.scene = this - this.audiences[p.SnId] = p - this.gameSess.AddPlayer(p) - - //todo:send add msg to gamesrv - data, err := p.MarshalData(this.gameId) - if err == nil { - var gateSid int64 - if p.gateSess != nil { - if srvInfo, ok := p.gateSess.GetAttribute(srvlib.SessionAttributeServerInfo).(*srvlibproto.SSSrvRegiste); ok && srvInfo != nil { - sessionId := srvlib.NewSessionIdEx(srvInfo.GetAreaId(), srvInfo.GetType(), srvInfo.GetId(), 0) - gateSid = sessionId.Get() - } - } - isQuMin := false - //if !p.IsRob { - // pt := PlatformMgrSingleton.GetPackageTag(p.PackageID) - // if pt != nil && pt.SpreadTag == 1 { - // isQuMin = true - // } - //} - msg := &serverproto.WGPlayerEnter{ - Sid: proto.Int64(p.sid), - SnId: proto.Int32(p.SnId), - GateSid: proto.Int64(gateSid), - SceneId: proto.Int(this.sceneId), - PlayerData: data, - IsLoaded: proto.Bool(ischangeroom), - IsQM: proto.Bool(isQuMin), - IParams: p.MarshalIParam(), - SParams: p.MarshalSParam(), - CParams: p.MarshalCParam(), - } - - if !p.IsRob { //保存下进入时的环境 - this.gameCtx[p.SnId] = &PlayerGameCtx{ - takeCoin: p.takeCoin, - enterTs: p.enterts.Unix(), - totalConvertibleFlow: p.TotalConvertibleFlow, - } - this.lastTime = time.Now() - } - - takeCoin := p.Coin - p.takeCoin = takeCoin - msg.TakeCoin = proto.Int64(takeCoin) - proto.SetDefaults(msg) - this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCEENTER), msg) - p.enterts = time.Now() - return true +// PlayerLeave 玩家离开 +func (this *Scene) PlayerLeave(p *Player, reason int) { + logger.Logger.Infof("(this *Scene:%v) PlayerLeave(%v, %v) ", this.sceneId, p.SnId, reason) + pack := &hallproto.SCQuitGame{ + Id: this.dbGameFree.Id, + Reason: proto.Int(reason), } - - return false + pack.OpCode = hallproto.OpResultCode_Game_OPRC_Sucess_Game + p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_QUITGAME), pack) + logger.Logger.Tracef("SCQuitGame: %v, %v", p.SnId, pack) + this.DelPlayer(p) } +// AudienceLeave 观众离开 func (this *Scene) AudienceLeave(p *Player, reason int) { logger.Logger.Infof("(this *Scene:%v) AudienceLeave(%v, %v) ", this.sceneId, p.SnId, reason) pack := &hallproto.SCLeaveRoom{ @@ -723,97 +672,25 @@ func (this *Scene) AudienceLeave(p *Player, reason int) { Mode: proto.Int(0), RoomId: proto.Int(this.sceneId), } - proto.SetDefaults(pack) p.SendToClient(int(hallproto.GameHallPacketID_PACKET_SC_LEAVEROOM), pack) - //观众直接从房间退出来 - this.DelAudience(p) - if !p.IsRob { - this.lastTime = time.Now() - } + logger.Logger.Tracef("AudienceLeave SCLeaveRoom: %v, %v", p.SnId, pack) + this.DelPlayer(p) } -func (this *Scene) DelAudience(p *Player) bool { - logger.Logger.Infof("(this *Scene:%v) DelAudience(%v) ", this.sceneId, p.SnId) - if p.scene != this { - return false - } - if this.gameSess != nil { - this.gameSess.DelPlayer(p) - } - delete(this.audiences, p.SnId) - if !p.IsRob { - delete(this.gameCtx, p.SnId) - } - p.scene = nil - SceneMgrSingleton.OnPlayerLeaveScene(this, p) - //from gameserver, so don't need send msg - return true -} - -//观众坐下 -//func (this *Scene) AudienceSit(p *Player, pos int) bool { -// logger.Logger.Infof("(this *Scene:%v) AudienceSit(%v, %v, %v) ", this.sceneId, p.SnId, pos) -// if _, exist := this.audiences[p.SnId]; exist { -// if pos == -1 && !this.IsHundredScene() { //自动匹配;百人场没座位概念 -// for i := 0; i < this.playerNum; i++ { -// if this.seats[i] == nil { -// pos = i -// break -// } -// } -// } -// if pos != -1 || this.IsHundredScene() { -// if !this.IsHundredScene() { -// if this.seats[pos] != nil { -// return false -// } -// p.pos = pos -// p.applyPos = -1 -// this.seats[pos] = p -// } -// delete(this.audiences, p.SnId) -// } -// -// p.scene = this -// this.players[p.SnId] = p -// -// NpcServerAgentSington.OnPlayerEnterScene(this, p) -// if this.IsCoinScene() { -// CoinSceneMgrSingleton.OnPlayerEnter(p, int32(this.sceneId)) -// } else if this.IsHallScene() { -// PlatformMgrSingleton.OnPlayerEnterScene(this, p) -// } -// -// msg := &protocol.WGAudienceSit{ -// SnId: proto.Int32(p.SnId), -// SceneId: proto.Int(this.sceneId), -// Pos: proto.Int(pos), -// } -// p.takeCoin = p.Coin -// msg.TakeCoin = proto.Int64(p.Coin) -// proto.SetDefaults(msg) -// this.SendToGame(int(protocol.MmoPacketID_PACKET_WG_AUDIENCESIT), msg) -// this.lastTime = time.Now() -// return true -// } -// return false -//} - +// AudienceSit 观众坐下 func (this *Scene) AudienceSit(p *Player, pos int) bool { logger.Logger.Infof("(this *Scene:%v) AudienceSit(%v, %v, %v) ", this.sceneId, p.SnId, pos, this.dbGameFree.GetId()) if _, exist := this.audiences[p.SnId]; exist { delete(this.audiences, p.SnId) p.scene = this - this.players[p.SnId] = p - - msg := &serverproto.WGAudienceSit{ - SnId: proto.Int32(p.SnId), - SceneId: proto.Int(this.sceneId), - Pos: proto.Int(pos), - } p.takeCoin = p.Coin - msg.TakeCoin = proto.Int64(p.Coin) - proto.SetDefaults(msg) + this.players[p.SnId] = p + msg := &serverproto.WGAudienceSit{ + SnId: proto.Int32(p.SnId), + TakeCoin: p.Coin, + SceneId: proto.Int(this.sceneId), + Pos: proto.Int(pos), + } this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_AUDIENCESIT), msg) if !p.IsRob { this.lastTime = time.Now() @@ -871,6 +748,8 @@ func (this *Scene) GetAudienceCnt() int { return len(this.audiences) } +// IsFull 是否满人 +// 不包含观众 func (this *Scene) IsFull() bool { return this.GetPlayerCnt() >= this.playerNum } @@ -883,23 +762,24 @@ func (this *Scene) AllIsRobot() bool { return len(this.players) == this.robotNum } +// OnClose 房间销毁 func (this *Scene) OnClose() { scDestroyRoom := &hallproto.SCDestroyRoom{ RoomId: proto.Int(this.sceneId), OpRetCode: hallproto.OpResultCode_Game_OPRC_Sucess_Game, IsForce: proto.Int(1), } - proto.SetDefaults(scDestroyRoom) this.Broadcast(int(hallproto.GameHallPacketID_PACKET_SC_DESTROYROOM), scDestroyRoom, 0) + this.deleting = true this.closed = true this.sp.OnStop(this) - //NpcServerAgentSington.OnSceneClose(this) + for _, p := range this.players { this.DelPlayer(p) } for _, p := range this.audiences { - this.DelAudience(p) + this.DelPlayer(p) } this.players = nil this.audiences = nil @@ -913,17 +793,13 @@ func (this *Scene) SendToGame(packetId int, pack interface{}) bool { } return false } -func (this *Scene) SendToClient(packetid int, rawpack interface{}, excludeId int32) { - for snid, value := range this.players { - if snid == excludeId { + +func (this *Scene) SendToClient(packetId int, pack interface{}, excludeId int32) { + for v, value := range this.players { + if v == excludeId { continue } - value.SendToClient(packetid, rawpack) - } -} -func (this *Scene) BilledRoomCard(snid []int32) { - if this.sp != nil { - this.sp.BilledRoomCard(this, snid) + value.SendToClient(packetId, pack) } } @@ -936,7 +812,7 @@ func (this *Scene) IsLongTimeInactive() bool { return false } -func (this *Scene) DoDelete(isGrace bool) { +func (this *Scene) SendGameDelete(isGrace bool) { if !isGrace { this.deleting = true this.force = true @@ -949,46 +825,32 @@ func (this *Scene) DoDelete(isGrace bool) { logger.Logger.Tracef("WG_DESTROYSCENE: %v", pack) } -func (this *Scene) Shutdown() { - if this.hadCost && this.sp != nil { - this.sp.OnShutdown(this) - } -} - -// 小游戏场 -func (this *Scene) IsMiniGameScene() bool { - return this.sceneId >= common.MiniGameSceneStartId && this.sceneId < common.MiniGameSceneMaxId -} - -// 比赛场 +// IsMatchScene 比赛场 func (this *Scene) IsMatchScene() bool { return this.sceneId >= common.MatchSceneStartId && this.sceneId < common.MatchSceneMaxId } -// 大厅场 -func (this *Scene) IsHallScene() bool { - return this.sceneId >= common.HallSceneStartId && this.sceneId < common.HallSceneMaxId -} - -// 金币场 +// IsCoinScene 金币场 func (this *Scene) IsCoinScene() bool { return this.sceneId >= common.CoinSceneStartId && this.sceneId < common.CoinSceneMaxId } -// 百人场 +// IsHundredScene 百人场 func (this *Scene) IsHundredScene() bool { return this.sceneId >= common.HundredSceneStartId && this.sceneId < common.HundredSceneMaxId } -// 私人房间 +// IsPrivateScene 私人房间 func (this *Scene) IsPrivateScene() bool { return this.sceneId >= common.PrivateSceneStartId && this.sceneId < common.PrivateSceneMaxId || this.sceneMode == common.SceneMode_Private } +// IsSceneMode 房间模式 func (this *Scene) IsSceneMode(mode int) bool { return this.sceneMode == mode } +// IsRankMatch 排位赛 func (this *Scene) IsRankMatch() bool { if this.dbGameFree == nil { return false @@ -996,6 +858,7 @@ func (this *Scene) IsRankMatch() bool { return this.dbGameFree.RankType > 0 } +// IsTestScene 试玩场 func (this *Scene) IsTestScene() bool { if this.dbGameFree != nil { return this.dbGameFree.GetSceneType() == -1 @@ -1010,6 +873,9 @@ func (this *Scene) IsTestScene() bool { } func (this *Scene) GetSceneName() string { + if this.dbGameFree != nil { + return this.dbGameFree.GetName() + this.dbGameFree.GetTitle() + } if len(this.paramsEx) > 0 { dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(this.paramsEx[0]) if dbGameFree != nil { @@ -1020,6 +886,21 @@ func (this *Scene) GetSceneName() string { } func (this *Scene) RandRobotCnt() { + if this.dbGameFree != nil { + numrng := this.dbGameFree.GetRobotNumRng() + if len(numrng) >= 2 { + if numrng[1] == numrng[0] { + this.robotLimit = int(numrng[0]) + } else { + if numrng[1] < numrng[0] { + numrng[1], numrng[0] = numrng[0], numrng[1] + } + this.robotLimit = int(numrng[1]) //int(numrng[0] + rand.Int31n(numrng[1]-numrng[0]) + 1) + } + } + return + } + if len(this.paramsEx) > 0 { gps := PlatformMgrSingleton.GetGameFree(this.limitPlatform.IdStr, this.paramsEx[0]) if gps != nil { @@ -1045,7 +926,7 @@ func (this *Scene) RandRobotCnt() { } } -func (this *Scene) isPlatform(platform string) bool { +func (this *Scene) IsPlatform(platform string) bool { if platform == "0" || platform == this.limitPlatform.IdStr { return true } @@ -1106,31 +987,7 @@ func (this *Scene) GetTruePlayerCnt() int { return len(this.players) - this.robotNum } -func (this *Scene) GetPlayerType(gameid, gamefreeid int32) (types []int32) { - for _, p := range this.players { - t := int32(0) - if p.IsRob { - t = common.PlayerType_Rob - } else if p.WBLevel < 0 { - t = common.PlayerType_Black - } else if p.WBLevel > 0 { - t = common.PlayerType_White - } else { - pt := p.CheckType(gameid, gamefreeid) - if pt != nil { - t = pt.GetId() - } else { - t = common.PlayerType_Undefine - } - } - if !common.InSliceInt32(types, t) { - types = append(types, t) - } - } - return -} - -func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int64) { +func (this *Scene) Broadcast(packetId int, msg rawproto.Message, excludeSid int64) { mgs := make(map[*netlib.Session][]*srvlibproto.MCSessionUnion) for _, p := range this.players { if p != nil { @@ -1159,7 +1016,7 @@ func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int6 for gateSess, v := range mgs { if gateSess != nil && len(v) != 0 { - pack, err := common.CreateMulticastPacket(packetid, msg, v...) + pack, err := common.CreateMulticastPacket(packetId, msg, v...) if err == nil { proto.SetDefaults(pack) gateSess.Send(int(srvlibproto.SrvlibPacketID_PACKET_SS_MULTICAST), pack) @@ -1171,12 +1028,11 @@ func (this *Scene) Broadcast(packetid int, msg rawproto.Message, excludeSid int6 func (this *Scene) HasSameIp(ip string) bool { for _, p := range this.players { if !p.IsRob { - if p.GMLevel == 0 && p.Ip == ip { + if p.Ip == ip { return true } } } - return false } @@ -1184,45 +1040,6 @@ func (this *Scene) IsPreCreateScene() bool { return this.dbGameFree.GetCreateRoomNum() > 0 } -func (this *Scene) PlayerTryChange() { - var member []*Player - var player *Player - for _, value := range this.players { - if !value.IsRob { - member = append(member, value) - player = value - } - } - if len(member) <= 1 { - return - } - gameFreeId := this.dbGameFree.GetId() - gameConfig := PlatformMgrSingleton.GetGameFree(player.Platform, gameFreeId) - if gameConfig != nil && gameConfig.DbGameFree.GetMatchMode() == 1 { - return - } - for i := 0; i < len(member)-1; i++ { - p := member[i] - other := member[i+1:] - if this.dbGameFree.GetSamePlaceLimit() > 0 && sceneLimitMgr.LimitSamePlaceBySnid(other, p, - this.dbGameFree.GetGameId(), this.dbGameFree.GetSamePlaceLimit()) { - if p.scene.IsPrivateScene() { - //if ClubSceneMgrSington.PlayerInChanging(p) { - // continue - //} - //ClubSceneMgrSington.PlayerTryChange(p, gameFreeId, []int32{int32(this.sceneId)}, false) - } else { - if CoinSceneMgrSingleton.PlayerInChanging(p) { - continue - } - excludeSceneIds := p.lastSceneId[gameFreeId] - CoinSceneMgrSingleton.PlayerTryChange(p, gameFreeId, excludeSceneIds, false) - } - } - - } -} - func (this *Scene) GetParamEx(idx int) int32 { if idx < 0 || idx > len(this.paramsEx) { return -1 @@ -1238,7 +1055,7 @@ func (this *Scene) SetParamEx(idx int, val int32) { } } -func (this *Scene) TryForceDelectMatchInfo() { +func (this *Scene) TryForceDeleteMatchInfo() { if !this.IsMatchScene() { return } diff --git a/worldsrv/scenemgr.go b/worldsrv/scenemgr.go index 9b6b36f..bf4bb2b 100644 --- a/worldsrv/scenemgr.go +++ b/worldsrv/scenemgr.go @@ -435,18 +435,18 @@ func (m *SceneMgr) OnMiniTimer() { case s.IsCoinScene(): if s.IsLongTimeInactive() { if s.dbGameFree.GetCreateRoomNum() == 0 { - logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene DoDelete scene:%v IsLongTimeInactive", s.sceneId) - s.DoDelete(false) + logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDelete scene:%v IsLongTimeInactive", s.sceneId) + s.SendGameDelete(false) } if s.dbGameFree.GetCreateRoomNum() > 0 && s.csp != nil && s.csp.GetRoomNum() > int(s.dbGameFree.GetCreateRoomNum()) { - logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene DoDelete scene:%v IsLongTimeInactive", s.sceneId) - s.DoDelete(false) + logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDelete scene:%v IsLongTimeInactive", s.sceneId) + s.SendGameDelete(false) } } case s.IsPrivateScene(): if s.IsLongTimeInactive() { - logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene DoDelete scene:%v IsLongTimeInactive", s.sceneId) - s.DoDelete(false) + logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene SendGameDelete scene:%v IsLongTimeInactive", s.sceneId) + s.SendGameDelete(false) } } } diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 1620b44..2b39fb5 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -1747,24 +1747,24 @@ func init() { switch msg.DestroyType { case 1: //删除所有空房间 for _, s := range SceneMgrSingleton.scenes { - if !s.isPlatform(platform) { + if !s.IsPlatform(platform) { continue } if s != nil && !s.deleting && len(s.players) == 0 { logger.Logger.Warnf("WebService SpecailEmptySceneId destroyroom scene:%v", s.sceneId) - s.TryForceDelectMatchInfo() - s.DoDelete(false) + s.TryForceDeleteMatchInfo() + s.SendGameDelete(false) } } case 2: //删除所有未开始的房间 for _, s := range SceneMgrSingleton.scenes { - if !s.isPlatform(platform) { + if !s.IsPlatform(platform) { continue } if s != nil && !s.deleting && !s.starting && !s.IsHundredScene() { logger.Logger.Warnf("WebService SpecailUnstartSceneId destroyroom scene:%v", s.sceneId) - s.TryForceDelectMatchInfo() - s.DoDelete(false) + s.TryForceDeleteMatchInfo() + s.SendGameDelete(false) } } default: //删除指定房间 @@ -1780,14 +1780,14 @@ func init() { pack.Msg = "the sceneid is nil" return common.ResponseTag_NoFindRoom, pack } - if !s.isPlatform(platform) { + if !s.IsPlatform(platform) { pack.Tag = webapiproto.TagCode_FAILED pack.Msg = "the sceneid is not ower platform" return common.ResponseTag_NoFindRoom, pack } logger.Logger.Warnf("WebService destroyroom scene:%v", s.sceneId) - s.TryForceDelectMatchInfo() - s.DoDelete(false) + s.TryForceDeleteMatchInfo() + s.SendGameDelete(false) } } return common.ResponseTag_Ok, pack From 18e3e5cd7dabbf570a0dc051c780988604823ecf Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 22 Aug 2024 13:49:33 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E6=AF=94=E8=B5=9B=E8=A7=82=E6=88=98?= =?UTF-8?q?=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 6 +++ model/config.go | 2 +- protocol/player/player.pb.go | 2 +- protocol/player/player.proto | 2 +- public | 2 +- worldsrv/etcd.go | 22 ++++++----- worldsrv/player.go | 76 +++++++++++++++++++++++++++++------- worldsrv/playermgr.go | 16 ++++++++ 8 files changed, 100 insertions(+), 28 deletions(-) diff --git a/common/constant.go b/common/constant.go index 8e66d95..f5b3613 100644 --- a/common/constant.go +++ b/common/constant.go @@ -853,3 +853,9 @@ const ( On = 1 // 开启 Off = 2 // 关闭 ) + +const ( + DataConfigAll = 0 // 全部配置 + DataConfigSprite = 1 // 精灵配置 + DataConfigMatchAudience = 2 // 赛事观战开关 +) diff --git a/model/config.go b/model/config.go index cce71af..f3336f8 100644 --- a/model/config.go +++ b/model/config.go @@ -135,7 +135,7 @@ type AllConfig struct { *webapi.AwardLogConfig // 新手引导配置 *webapi.GuideConfig - MatchAudience map[int32]*webapi.MatchAudience // 比赛观众列表 + MatchAudience map[int32]*webapi.MatchAudience // 比赛观众列表 key: 玩家id // 小精灵配置 *webapi.SpiritConfig } diff --git a/protocol/player/player.pb.go b/protocol/player/player.pb.go index d6670e6..ada7556 100644 --- a/protocol/player/player.pb.go +++ b/protocol/player/player.pb.go @@ -10903,7 +10903,7 @@ type Config struct { // Tp 类型: // 1:小精灵快捷入口 On开关 Value地址 - // 2: ... + // 2:比赛观战开关 On开关 // ... Tp int32 `protobuf:"varint,1,opt,name=Tp,proto3" json:"Tp,omitempty"` On bool `protobuf:"varint,2,opt,name=On,proto3" json:"On,omitempty"` diff --git a/protocol/player/player.proto b/protocol/player/player.proto index 4b45515..d336347 100644 --- a/protocol/player/player.proto +++ b/protocol/player/player.proto @@ -1351,7 +1351,7 @@ message SCGuideConfig{ message Config{ // Tp 类型: // 1:小精灵快捷入口 On开关 Value地址 - // 2: ... + // 2:比赛观战开关 On开关 // ... int32 Tp = 1; bool On = 2; diff --git a/public b/public index 5436469..e754bb1 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 5436469c04056f83ab69b52b7cdeb5d21832fa94 +Subproject commit e754bb123f44b0f524ec9dd6d67a1e9d2803a7c5 diff --git a/worldsrv/etcd.go b/worldsrv/etcd.go index a3bf947..ba725f7 100644 --- a/worldsrv/etcd.go +++ b/worldsrv/etcd.go @@ -323,15 +323,7 @@ func platformConfigEvent(ctx context.Context, completeKey string, isInit bool, e case *webapi.SpiritConfig: PlatformMgrSingleton.GetConfig(config.Platform).SpiritConfig = config if !isInit { - PlayerMgrSington.BroadcastMessageToPlatform(config.Platform, int(playerproto.PlayerPacketID_PACKET_SCDataConfig), &playerproto.SCDataConfig{ - Cfg: []*playerproto.Config{ - { - Tp: 1, - On: config.GetOn() == 1, - Value: config.GetUrl(), - }, - }, - }) + PlayerMgrSington.BroadcastDataConfigToPlatform(config.Platform, common.DataConfigSprite) } default: logger.Logger.Errorf("etcd completeKey:%s, Not processed", completeKey) @@ -404,8 +396,20 @@ func handlerEvent(ctx context.Context, completeKey string, isInit bool, event *c switch event.Type { case clientv3.EventTypePut: PlatformMgrSingleton.AddMatchAudience(config) + if !isInit { + p := PlayerMgrSington.GetPlayerBySnId(config.GetSnId()) + if p != nil { + p.SCDataConfig(common.DataConfigMatchAudience) + } + } case clientv3.EventTypeDelete: PlatformMgrSingleton.DelMatchAudience(config) + if !isInit { + p := PlayerMgrSington.GetPlayerBySnId(config.GetSnId()) + if p != nil { + p.SCDataConfig(common.DataConfigMatchAudience) + } + } } default: diff --git a/worldsrv/player.go b/worldsrv/player.go index b7959ed..b02c455 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -3101,8 +3101,8 @@ func (this *Player) SendPlayerInfo() { this.SCItems() // 引导配置 this.SCGuide() - // 小精灵配置 - this.SCSpirit() + // 其它配置 + this.SCDataConfig(common.DataConfigAll) } //func (this *Player) SendJackpotInfo() { @@ -4951,20 +4951,66 @@ func (this *Player) SCGuide() { logger.Logger.Tracef("SCGuideConfig: %v", pack) } -func (this *Player) SCSpirit() { - cfg := PlatformMgrSingleton.GetConfig(this.Platform).SpiritConfig - if cfg == nil { +// DataConfigFuncMap 配置查询方法 +var DataConfigFuncMap = map[int]func(platform string, p *Player) *playerproto.Config{ + common.DataConfigSprite: func(platform string, p *Player) *playerproto.Config { + cfg := PlatformMgrSingleton.GetConfig(platform).SpiritConfig + if cfg == nil { + return nil + } + return &playerproto.Config{ + Tp: common.DataConfigSprite, + On: cfg.On == 1, + Value: cfg.Url, + } + }, + common.DataConfigMatchAudience: func(platform string, p *Player) *playerproto.Config { + if p == nil { + return nil + } + cfg := PlatformMgrSingleton.GetConfig(platform).MatchAudience + if cfg == nil { + return nil + } + d, ok := cfg[p.GetSnId()] + if !ok || d == nil { + return &playerproto.Config{ + Tp: common.DataConfigMatchAudience, + On: false, + } + } + return &playerproto.Config{ + Tp: common.DataConfigMatchAudience, + On: true, + } + }, +} + +// SCDataConfig 通知配置 +// tp 类型 0所有 1小精灵 2比赛观众开关 +func (this *Player) SCDataConfig(tp int) { + if this == nil { return } - pack := &playerproto.SCDataConfig{ - Cfg: []*playerproto.Config{ - { - Tp: 1, - On: cfg.On == 1, - Value: cfg.Url, - }, - }, + pack := &playerproto.SCDataConfig{} + if tp == common.DataConfigAll { + for _, f := range DataConfigFuncMap { + d := f(this.Platform, this) + if d != nil { + pack.Cfg = append(pack.Cfg, d) + } + } + } else { + f, ok := DataConfigFuncMap[tp] + if ok { + d := f(this.Platform, this) + if d != nil { + pack.Cfg = append(pack.Cfg, d) + } + } + } + if len(pack.Cfg) > 0 { + this.SendToClient(int(playerproto.PlayerPacketID_PACKET_SCDataConfig), pack) + logger.Logger.Tracef("SCDataConfig: %v", pack) } - this.SendToClient(int(playerproto.PlayerPacketID_PACKET_SCDataConfig), pack) - logger.Logger.Tracef("SCDataConfig: %v", pack) } diff --git a/worldsrv/playermgr.go b/worldsrv/playermgr.go index 7d76256..9ee00c9 100644 --- a/worldsrv/playermgr.go +++ b/worldsrv/playermgr.go @@ -15,6 +15,7 @@ import ( "mongo.games.com/game/common" "mongo.games.com/game/model" "mongo.games.com/game/proto" + playerproto "mongo.games.com/game/protocol/player" serverproto "mongo.games.com/game/protocol/server" "mongo.games.com/game/worldsrv/internal" ) @@ -328,6 +329,21 @@ func (this *PlayerMgr) BroadcastMessageToPlatform(platform string, packetid int, } } +func (this *PlayerMgr) BroadcastDataConfigToPlatform(platform string, tp int) { + packetId := int(playerproto.PlayerPacketID_PACKET_SCDataConfig) + pack := &playerproto.SCDataConfig{} + f, ok := DataConfigFuncMap[tp] + if ok { + d := f(platform, nil) + if d != nil { + pack.Cfg = append(pack.Cfg, d) + } + } + if len(pack.Cfg) > 0 { + this.BroadcastMessageToPlatform(platform, packetId, pack) + } +} + func (this *PlayerMgr) BroadcastMessageToPlatformByFunc(platform string, packetid int, rawpack interface{}, f func(p *Player) bool) { if platform == "" { this.BroadcastMessage(packetid, rawpack) From 7ebe12c3dea3517b2102835d05fb2fb4ae780dbb Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 22 Aug 2024 14:48:06 +0800 Subject: [PATCH 04/13] review --- worldsrv/coinscenemgr.go | 6 +- worldsrv/coinscenepool.go | 4 +- worldsrv/hundredscenemgr.go | 6 +- worldsrv/matchscenemgr.go | 2 +- worldsrv/player.go | 15 ----- worldsrv/scene.go | 39 +++++++++++- worldsrv/scenemgr.go | 123 ++++++++++-------------------------- worldsrv/scenepolicydata.go | 4 -- worldsrv/trascate_webapi.go | 6 +- 9 files changed, 82 insertions(+), 123 deletions(-) diff --git a/worldsrv/coinscenemgr.go b/worldsrv/coinscenemgr.go index 8f25966..007922f 100644 --- a/worldsrv/coinscenemgr.go +++ b/worldsrv/coinscenemgr.go @@ -370,7 +370,7 @@ func (m *CoinSceneMgr) OnPlatformDestroy(p *Platform) { } } } - SceneMgrSingleton.DoDelete(ids, true) + SceneMgrSingleton.SendGameDestroy(ids, true) } func (m *CoinSceneMgr) OnPlatformChangeDisabled(p *Platform, disabled bool) { @@ -395,7 +395,7 @@ func (m *CoinSceneMgr) OnPlatformGameFreeUpdate(p *Platform, oldCfg, newCfg *web for _, scene := range cps.scenes { ids = append(ids, scene.sceneId) } - SceneMgrSingleton.DoDelete(ids, true) + SceneMgrSingleton.SendGameDestroy(ids, true) m.TouchCreateRoom(p.IdStr, newCfg.DbGameFree.Id) } } @@ -414,7 +414,7 @@ func (m *CoinSceneMgr) OnPlatformDestroyByGameFreeId(p *Platform, gameFreeId int } } } - SceneMgrSingleton.DoDelete(ids, true) + SceneMgrSingleton.SendGameDestroy(ids, true) } //=========================PlatformGameGroupObserver============================== diff --git a/worldsrv/coinscenepool.go b/worldsrv/coinscenepool.go index fb6ac10..c4782fb 100644 --- a/worldsrv/coinscenepool.go +++ b/worldsrv/coinscenepool.go @@ -330,7 +330,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) { // 玩家离开结算空房间的私人房 if s.IsPrivateScene() { if s.IsEmpty() { - s.SendGameDelete(false) + s.SendGameDestroy(false) } return } @@ -345,7 +345,7 @@ func (csp *CoinScenePool) onPlayerLeave(s *Scene, p *Player) { } } if hasCnt > int(csp.dbGameFree.GetCreateRoomNum()) { - s.SendGameDelete(false) + s.SendGameDestroy(false) } } } diff --git a/worldsrv/hundredscenemgr.go b/worldsrv/hundredscenemgr.go index fed9fe0..aaedd3c 100644 --- a/worldsrv/hundredscenemgr.go +++ b/worldsrv/hundredscenemgr.go @@ -373,7 +373,7 @@ func (this *HundredSceneMgr) OnPlatformDestroy(p *Platform) { for _, scene := range ss { ids = append(ids, scene.sceneId) } - SceneMgrSingleton.DoDelete(ids, true) + SceneMgrSingleton.SendGameDestroy(ids, true) } } @@ -392,7 +392,7 @@ func (this *HundredSceneMgr) OnPlatformGameFreeUpdate(p *Platform, oldCfg, newCf } if scenes, exist := this.scenesOfPlatform[p.IdStr]; exist { if s, ok := scenes[newCfg.DbGameFree.Id]; ok { - s.SendGameDelete(false) + s.SendGameDestroy(false) } } } @@ -412,7 +412,7 @@ func (this *HundredSceneMgr) OnPlatformDestroyByGameFreeId(p *Platform, gameFree ids = append(ids, scene.sceneId) } } - SceneMgrSingleton.DoDelete(ids, true) + SceneMgrSingleton.SendGameDestroy(ids, true) } } diff --git a/worldsrv/matchscenemgr.go b/worldsrv/matchscenemgr.go index 9367be7..1016408 100644 --- a/worldsrv/matchscenemgr.go +++ b/worldsrv/matchscenemgr.go @@ -188,7 +188,7 @@ func (ms *MatchSceneMgr) MatchStop(tm *TmMatch) { if SceneMgrSingleton.scenes != nil && tm != nil { for _, scene := range SceneMgrSingleton.scenes { if scene.IsMatchScene() && scene.matchId == tm.SortId { - scene.SendGameDelete(false) + scene.SendGameDestroy(false) } } } diff --git a/worldsrv/player.go b/worldsrv/player.go index b7959ed..517bfb3 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -2415,21 +2415,6 @@ func (this *Player) GetIP() string { return this.Ip } -func (this *Player) CreateScene(sceneId, gameId, gameMode, sceneMode int, numOfGames int32, params []int64, dbGameFree *serverproto.DB_GameFree) (*Scene, hallproto.OpResultCode_Game) { - gs := GameSessMgrSington.GetMinLoadSess(gameId) - if gs == nil { - logger.Logger.Warnf("(this *Player) EnterScene %v, %v GameSessMgrSington.GetMinLoadSess() = nil ", this.SnId, gameId) - return nil, hallproto.OpResultCode_Game_OPRC_SceneServerMaintain_Game - } - - s := SceneMgrSingleton.CreateScene(0, this.SnId, sceneId, gameId, gameMode, sceneMode, 1, numOfGames, params, gs, this.GetPlatform(), 0, dbGameFree, dbGameFree.GetId()) - if s == nil { - logger.Logger.Tracef("(this *Player) EnterScene %v, SceneMgrSingleton.CreateScene() = nil ", this.SnId) - return nil, hallproto.OpResultCode_Game_OPRC_Error_Game - } - return s, hallproto.OpResultCode_Game_OPRC_Sucess_Game -} - func (this *Player) CreateLocalGameScene(sceneId, gameId, gameSite, sceneMode, playerNum int, params []int64, dbGameFree *serverproto.DB_GameFree, baseScore, groupId int32) (*Scene, hallproto.OpResultCode_Game) { gs := GameSessMgrSington.GetMinLoadSess(gameId) diff --git a/worldsrv/scene.go b/worldsrv/scene.go index 4429361..8412ba9 100644 --- a/worldsrv/scene.go +++ b/worldsrv/scene.go @@ -606,6 +606,41 @@ func (this *Scene) AudienceEnter(p *Player, ischangeroom bool) bool { return true } +func (this *Scene) lastScene(p *Player) { + // 记录玩家在每个游戏场次最后进入的房间号 + // 只记录金币场 + if this.IsCoinScene() { + const MINHOLD = 10 + const MAXHOLD = 20 + holdCnt := MINHOLD + if this.csp != nil { + holdCnt = this.csp.GetHasTruePlayerSceneCnt() + 2 + if holdCnt < MINHOLD { + holdCnt = MINHOLD + } + if holdCnt > MAXHOLD { + holdCnt = MAXHOLD + } + } + if p.lastSceneId == nil { + p.lastSceneId = make(map[int32][]int32) + } + id := this.dbGameFree.GetId() + if sceneIds, exist := p.lastSceneId[id]; exist { + if !common.InSliceInt32(sceneIds, int32(this.sceneId)) { + sceneIds = append(sceneIds, int32(this.sceneId)) + cnt := len(sceneIds) + if cnt > holdCnt { + sceneIds = sceneIds[cnt-holdCnt:] + } + p.lastSceneId[id] = sceneIds + } + } else { + p.lastSceneId[id] = []int32{int32(this.sceneId)} + } + } +} + func (this *Scene) DelPlayer(p *Player) bool { if p.scene != this { roomId := 0 @@ -625,7 +660,7 @@ func (this *Scene) DelPlayer(p *Player) bool { this.robotNum-- } // 记录玩家最近玩游戏的房间 - SceneMgrSingleton.OnPlayerLeaveScene(this, p) + this.lastScene(p) // 玩家最后所在游戏 p.LastGameId = int(this.dbGameFree.GetGameId()) } @@ -812,7 +847,7 @@ func (this *Scene) IsLongTimeInactive() bool { return false } -func (this *Scene) SendGameDelete(isGrace bool) { +func (this *Scene) SendGameDestroy(isGrace bool) { if !isGrace { this.deleting = true this.force = true diff --git a/worldsrv/scenemgr.go b/worldsrv/scenemgr.go index bf4bb2b..f86165e 100644 --- a/worldsrv/scenemgr.go +++ b/worldsrv/scenemgr.go @@ -10,7 +10,7 @@ import ( "mongo.games.com/game/common" "mongo.games.com/game/model" serverproto "mongo.games.com/game/protocol/server" - webapi2 "mongo.games.com/game/protocol/webapi" + webapiproto "mongo.games.com/game/protocol/webapi" "mongo.games.com/game/webapi" ) @@ -28,21 +28,13 @@ var SceneMgrSingleton = &SceneMgr{ // SceneMgr 房间管理器 type SceneMgr struct { - BaseClockSinker // 驱动时间事件 + BaseClockSinker // 驱动时间事件 + scenes map[int]*Scene // 房间id: Scene - scenes map[int]*Scene // 房间id: Scene - privateAutoId int // 私人房房间号 - matchAutoId int // 比赛场房间号 - coinSceneAutoId int // 金币场房间号 - hundredSceneAutoId int // 百人场房间号 -} - -func (m *SceneMgr) GetPlatformBySceneId(sceneId int) string { - s := m.GetScene(sceneId) - if s != nil && s.limitPlatform != nil { - return s.limitPlatform.IdStr - } - return "" + privateAutoId int // 私人房房间号 + matchAutoId int // 比赛场房间号 + coinSceneAutoId int // 金币场房间号 + hundredSceneAutoId int // 百人场房间号 } // AllocReplayCode 获取回访码 @@ -87,6 +79,14 @@ func (m *SceneMgr) GenOneMatchSceneId() int { return m.matchAutoId } +func (m *SceneMgr) GetPlatformBySceneId(sceneId int) string { + s := m.GetScene(sceneId) + if s != nil && s.limitPlatform != nil { + return s.limitPlatform.IdStr + } + return "" +} + // GetScene 获取房间对象 func (m *SceneMgr) GetScene(sceneId int) *Scene { if s, exist := m.scenes[sceneId]; exist && !s.deleting { @@ -123,6 +123,8 @@ func (m *SceneMgr) GetScenesByGameFreeId(gameFreeId int32) []*Scene { return scenes } +// GetMatchRoom 获取比赛房间 +// sortId 比赛id func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene { var scenes []*Scene for _, value := range m.scenes { @@ -137,9 +139,10 @@ func (m *SceneMgr) GetMatchRoom(sortId int64) []*Scene { } // MarshalAllRoom 获取房间列表 +// 返回 房间列表,总页数,总条数 func (m *SceneMgr) MarshalAllRoom(platform string, groupId, gameId int, gameMode, clubId, sceneMode, sceneId int, - gameFreeId, snId int32, start, end, pageSize int32) ([]*webapi2.RoomInfo, int32, int32) { - roomInfo := make([]*webapi2.RoomInfo, 0, len(m.scenes)) + gameFreeId, snId int32, start, end, pageSize int32) ([]*webapiproto.RoomInfo, int32, int32) { + roomInfo := make([]*webapiproto.RoomInfo, 0, len(m.scenes)) var isNeedFindAll = false if model.GameParamData.IsFindRoomByGroup && platform != "" && snId != 0 && gameId == 0 && gameMode == 0 && sceneId == -1 && groupId == 0 && clubId == 0 && sceneMode == 0 { @@ -159,7 +162,7 @@ func (m *SceneMgr) MarshalAllRoom(platform string, groupId, gameId int, gameMode platformName = s.limitPlatform.IdStr } - si := &webapi2.RoomInfo{ + si := &webapiproto.RoomInfo{ Platform: platformName, SceneId: int32(s.sceneId), GameId: int32(s.gameId), @@ -266,18 +269,21 @@ func (m *SceneMgr) CreateScene(agentor, creator int32, sceneId, gameId, gameMode numOfGames int32, params []int64, gs *GameSession, limitPlatform *Platform, groupId int32, dbGameFree *serverproto.DB_GameFree, paramsEx ...int32) *Scene { logger.Logger.Trace("(this *SceneMgr) CreateScene ") + // 创建房间 s := NewScene(agentor, creator, sceneId, gameId, gameMode, sceneMode, clycleTimes, numOfGames, params, gs, limitPlatform, groupId, dbGameFree, paramsEx...) if s == nil { return nil } - m.scenes[sceneId] = s + + // 创建水池 if !s.IsMatchScene() && dbGameFree != nil && limitPlatform != nil { //平台水池设置 gs.DetectCoinPoolSetting(limitPlatform.IdStr, dbGameFree.GetId(), s.groupId) } + // 添加到游戏服记录中 gs.AddScene(s) var platformName string if limitPlatform != nil { @@ -298,10 +304,9 @@ func (m *SceneMgr) CreateLocalGameScene(creator int32, sceneId, gameId, gameSite if s == nil { return nil } - m.scenes[sceneId] = s - gs.AddScene(s) + gs.AddScene(s) var platformName string if limitPlatform != nil { platformName = limitPlatform.IdStr @@ -336,44 +341,7 @@ func (m *SceneMgr) DestroyScene(sceneId int, isCompleted bool) { logger.Logger.Infof("(this *SceneMgr) DestroyScene, SceneId=%v", sceneId) } -func (m *SceneMgr) OnPlayerLeaveScene(s *Scene, p *Player) { - logger.Logger.Trace("(this *SceneMgr) OnPlayerLeaveScene", p.SnId) - - // 记录玩家在每个游戏场次最后进入的房间号 - // 只记录金币场 - if s.IsCoinScene() { - const MINHOLD = 10 - const MAXHOLD = 20 - holdCnt := MINHOLD - if s.csp != nil { - holdCnt = s.csp.GetHasTruePlayerSceneCnt() + 2 - if holdCnt < MINHOLD { - holdCnt = MINHOLD - } - if holdCnt > MAXHOLD { - holdCnt = MAXHOLD - } - } - if p.lastSceneId == nil { - p.lastSceneId = make(map[int32][]int32) - } - id := s.dbGameFree.GetId() - if sceneIds, exist := p.lastSceneId[id]; exist { - if !common.InSliceInt32(sceneIds, int32(s.sceneId)) { - sceneIds = append(sceneIds, int32(s.sceneId)) - cnt := len(sceneIds) - if cnt > holdCnt { - sceneIds = sceneIds[cnt-holdCnt:] - } - p.lastSceneId[id] = sceneIds - } - } else { - p.lastSceneId[id] = []int32{int32(s.sceneId)} - } - } -} - -func (m *SceneMgr) DoDelete(sceneId []int, isGrace bool) { +func (m *SceneMgr) SendGameDestroy(sceneId []int, isGrace bool) { if len(sceneId) == 0 { return } @@ -393,31 +361,6 @@ func (m *SceneMgr) DoDelete(sceneId []int, isGrace bool) { srvlib.ServerSessionMgrSington.Broadcast(int(serverproto.SSPacketID_PACKET_WG_DESTROYSCENE), pack, common.GetSelfAreaId(), srvlib.GameServerType) } -// GetThirdScene 获取三方游戏房间 -//func (m *SceneMgr) GetThirdScene(i webapi.IThirdPlatform) *Scene { -// if i == nil { -// return nil -// } -// sceneId := i.GetPlatformBase().SceneId -// scene := m.scenes[sceneId] -// if scene != nil { -// return scene -// } -// -// gs := GameSessMgrSington.GetMinLoadSess(i.GetPlatformBase().BaseGameID) -// if gs != nil { -// limitPlatform := PlatformMgrSingleton.GetPlatform(DefaultPlatform) -// var gameMode = common.SceneMode_Thr -// dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(i.GetPlatformBase().VultGameID) -// scene := SceneMgrSingleton.CreateScene(0, 0, sceneId, i.GetPlatformBase().BaseGameID, gameMode, int(common.SceneMode_Thr), 1, -1, -// []int64{}, gs, limitPlatform, 0, dbGameFree, i.GetPlatformBase().VultGameID) -// return scene -// } else { -// logger.Logger.Errorf("Get %v game min session failed.", i.GetPlatformBase().BaseGameID) -// return nil -// } -//} - //=========================ClockSinker=============================== // InterestClockEvent 接收所有时间事件 @@ -435,18 +378,18 @@ func (m *SceneMgr) OnMiniTimer() { case s.IsCoinScene(): if s.IsLongTimeInactive() { if s.dbGameFree.GetCreateRoomNum() == 0 { - logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDelete scene:%v IsLongTimeInactive", s.sceneId) - s.SendGameDelete(false) + logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId) + s.SendGameDestroy(false) } if s.dbGameFree.GetCreateRoomNum() > 0 && s.csp != nil && s.csp.GetRoomNum() > int(s.dbGameFree.GetCreateRoomNum()) { - logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDelete scene:%v IsLongTimeInactive", s.sceneId) - s.SendGameDelete(false) + logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive CoinScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId) + s.SendGameDestroy(false) } } case s.IsPrivateScene(): if s.IsLongTimeInactive() { - logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene SendGameDelete scene:%v IsLongTimeInactive", s.sceneId) - s.SendGameDelete(false) + logger.Logger.Warnf("SceneMgr.DeleteLongTimeInactive PrivateScene SendGameDestroy scene:%v IsLongTimeInactive", s.sceneId) + s.SendGameDestroy(false) } } } diff --git a/worldsrv/scenepolicydata.go b/worldsrv/scenepolicydata.go index 4fd458b..2b03d6f 100644 --- a/worldsrv/scenepolicydata.go +++ b/worldsrv/scenepolicydata.go @@ -61,10 +61,6 @@ type ScenePolicyData struct { customIndexParams []*ScenePolicyDataParam } -func alignto(val, align int32) int32 { - return (val + align - 1) / align -} - func (spd *ScenePolicyData) Init() bool { spd.nameMap = make(map[string]*ScenePolicyDataParam) spd.aliasNameMap = make(map[string]*ScenePolicyDataParam) diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 2b39fb5..1800f00 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -1753,7 +1753,7 @@ func init() { if s != nil && !s.deleting && len(s.players) == 0 { logger.Logger.Warnf("WebService SpecailEmptySceneId destroyroom scene:%v", s.sceneId) s.TryForceDeleteMatchInfo() - s.SendGameDelete(false) + s.SendGameDestroy(false) } } case 2: //删除所有未开始的房间 @@ -1764,7 +1764,7 @@ func init() { if s != nil && !s.deleting && !s.starting && !s.IsHundredScene() { logger.Logger.Warnf("WebService SpecailUnstartSceneId destroyroom scene:%v", s.sceneId) s.TryForceDeleteMatchInfo() - s.SendGameDelete(false) + s.SendGameDestroy(false) } } default: //删除指定房间 @@ -1787,7 +1787,7 @@ func init() { } logger.Logger.Warnf("WebService destroyroom scene:%v", s.sceneId) s.TryForceDeleteMatchInfo() - s.SendGameDelete(false) + s.SendGameDestroy(false) } } return common.ResponseTag_Ok, pack From 8736f54fe1e934da699f1f00d513befd5d6cace8 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 22 Aug 2024 16:07:17 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E7=8E=B0=E9=87=91=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E5=90=8Evip=E7=BB=8F=E9=AA=8C=E8=8E=B7=E5=BE=97=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/player.go | 8 ++++---- worldsrv/trascate_webapi.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/worldsrv/player.go b/worldsrv/player.go index 654bf6e..bcc7c3e 100644 --- a/worldsrv/player.go +++ b/worldsrv/player.go @@ -3817,9 +3817,9 @@ func (this *Player) SCVIPInfo() { logger.Logger.Tracef("send vipinfo to client:%v", pack) } -func (this *Player) GetVIPExpByPay(payTotal int32) int32 { +func (this *Player) GetVIPExpByPay(payTotal int64) int64 { vips := VipMgrSington.GetVIPcfg(this.Platform) - return int32(math.Floor(float64(payTotal) * vips.MoneyRatio / 100)) + return payTotal * int64(vips.MoneyRatio) } func (this *Player) VIPDraw(id, vip int32) { @@ -3978,7 +3978,7 @@ func (this *Player) GetVIPLevel() int32 { vips := VipMgrSington.GetVIPcfg(this.Platform) vip := int32(0) if vips != nil && this.MoneyPayTotal != 0 { - allExp := int64(float64(this.MoneyPayTotal) * vips.MoneyRatio) + allExp := this.MoneyPayTotal * int64(vips.MoneyRatio) for _, v := range vips.List { if allExp >= int64(v.VipEx) { vip = v.VipId @@ -4111,7 +4111,7 @@ func (this *Player) GetPayGoodsInfo() { this.dirty = true this.SendDiffData() - info.Amount[2] = this.GetVIPExpByPay(info.ConsumeNum) + info.Amount[2] = int32(this.GetVIPExpByPay(int64(info.ConsumeNum))) BagMgrSingleton.AddItems(this, items, 0, info.GainWay, info.Operator, info.Remark, 0, 0, false) diff --git a/worldsrv/trascate_webapi.go b/worldsrv/trascate_webapi.go index 1800f00..76435ab 100644 --- a/worldsrv/trascate_webapi.go +++ b/worldsrv/trascate_webapi.go @@ -3444,7 +3444,7 @@ func init() { player.MoneyTotal += int64(info.ConsumeTypeNum) player.dirty = true player.SendDiffData() - info.Amount[2] = player.GetVIPExpByPay(info.ConsumeNum) + info.Amount[2] = int32(player.GetVIPExpByPay(int64(info.ConsumeNum))) var itemInfo []*playerproto.PayItem var items []*Item From 85ba5689b16cac19d67bdf09da519bcb4682b8e2 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 22 Aug 2024 16:17:51 +0800 Subject: [PATCH 06/13] =?UTF-8?q?=E6=B7=BB=E5=8A=A0tienlen=E6=88=BF?= =?UTF-8?q?=E5=8D=A1=E5=9C=BA=E6=B8=B8=E6=88=8F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/constant.go | 12 +- data/DB_GameFree.dat | Bin 22776 -> 23210 bytes data/DB_GameFree.json | 100 ++ data/DB_GameRule.dat | Bin 1115 -> 1273 bytes data/DB_GameRule.json | 24 + data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 5299 -> 5299 bytes data/gameconfig/tienlencustom.json | 13 + data/gameconfig/tienlencustom_toend.json | 13 + data/gameconfig/tienlencustom_yl.json | 13 + data/gameconfig/tienlencustom_yl_toend.json | 13 + protocol/server/pbdata.pb.go | 1541 ++++++++++--------- protocol/server/pbdata.proto | 2 + xlsx/DB_GameFree.xlsx | Bin 61827 -> 63243 bytes xlsx/DB_GameRule.xlsx | Bin 12558 -> 12784 bytes 15 files changed, 963 insertions(+), 768 deletions(-) create mode 100644 data/gameconfig/tienlencustom.json create mode 100644 data/gameconfig/tienlencustom_toend.json create mode 100644 data/gameconfig/tienlencustom_yl.json create mode 100644 data/gameconfig/tienlencustom_yl_toend.json diff --git a/common/constant.go b/common/constant.go index f5b3613..fd8a9f0 100644 --- a/common/constant.go +++ b/common/constant.go @@ -66,6 +66,10 @@ const ( GameID_Thirteen8 = 212 // 十三张(八人场) GameID_ThirteenFree = 213 // 十三张(自由场经典场) GameID_ThirteenFreeLaiZi = 214 // 十三张(自由场癞子场) + GameId_TienLenCustom = 215 // tienlen房卡经典版 + GameId_TienLenCustom_yl = 216 // tienlen房卡娱乐版 + GameId_TienLenCustom_toend = 217 // tienlen房卡典版(打到底) + GameId_TienLenCustom_yl_toend = 218 // tienlen房卡娱乐版(打到底) __GameId_Slot_Min__ = 300 //################拉霸类################ GameId_CaiShen = 301 // 财神 GameId_Avengers = 302 // 复仇者联盟 @@ -116,7 +120,9 @@ func IsTienLenYuLe(gameId int) bool { GameId_TienLenSelect_yl, GameId_TienLenRank_yl, GameId_TienLenSelect_yl_toend, - GameId_TienLenRank_yl_toend: + GameId_TienLenRank_yl_toend, + GameId_TienLenCustom_yl, + GameId_TienLenCustom_yl_toend: return true } return false @@ -131,7 +137,9 @@ func IsTienLenToEnd(gameId int) bool { GameId_TienLenSelect_toend, GameId_TienLenSelect_yl_toend, GameId_TienLenRank_toend, - GameId_TienLenRank_yl_toend: + GameId_TienLenRank_yl_toend, + GameId_TienLenCustom_toend, + GameId_TienLenCustom_yl_toend: return true } return false diff --git a/data/DB_GameFree.dat b/data/DB_GameFree.dat index 7ee49a4984bcbd19cd6046bf42d8b3f9d1c9f6b9..f91cbf96ddf4a88212669a12c826ac2ef671a4fe 100644 GIT binary patch delta 370 zcmeydk#W^l#tp~x-O@Nd&S_>85-!P1&C5y6d)Bf4Y45`4yZfKE?vUby@Se`urEs0m z;?HtM2PO~3Bu0Y_<_(NohZva*4K6VKcTGh${U)Quk(DHvzOcO& b-E@ePv6_C1(PG6a{HC)*-M;y-zNsbvL+hDq delta 14 WcmZ3rmGQ?$#tp~xH&+-MX#xN?wFYMZ diff --git a/data/DB_GameFree.json b/data/DB_GameFree.json index 0ddecf2..c02ccb5 100644 --- a/data/DB_GameFree.json +++ b/data/DB_GameFree.json @@ -3424,6 +3424,106 @@ "BetWaterRate": 100, "IsDrop": 1 }, + { + "Id": 2150001, + "Name": "tienlen房卡经典", + "Title": "房卡场", + "GameId": 215, + "GameRule": 21500, + "GameType": 2, + "SceneType": 1, + "Desc": "0", + "ShowType": 3, + "BaseScore": 10, + "BetDec": "10", + "Ai": [ + 0 + ], + "OtherIntParams": [ + 0 + ], + "GameDif": "207", + "GameClass": 1, + "PlatformName": "越南棋牌", + "PlayerWaterRate": 100, + "BetWaterRate": 100, + "IsCustom": 1 + }, + { + "Id": 2160001, + "Name": "tienlen房卡娱乐", + "Title": "房卡场", + "GameId": 216, + "GameRule": 21600, + "GameType": 2, + "SceneType": 1, + "Desc": "0", + "ShowType": 3, + "BaseScore": 10, + "BetDec": "10", + "Ai": [ + 0 + ], + "OtherIntParams": [ + 0 + ], + "GameDif": "207", + "GameClass": 1, + "PlatformName": "越南棋牌", + "PlayerWaterRate": 100, + "BetWaterRate": 100, + "IsCustom": 1 + }, + { + "Id": 2170001, + "Name": "tienlen房卡经典打到底", + "Title": "房卡场", + "GameId": 217, + "GameRule": 21700, + "GameType": 2, + "SceneType": 1, + "Desc": "0", + "ShowType": 3, + "BaseScore": 10, + "BetDec": "10", + "Ai": [ + 0 + ], + "OtherIntParams": [ + 0 + ], + "GameDif": "207", + "GameClass": 1, + "PlatformName": "越南棋牌", + "PlayerWaterRate": 100, + "BetWaterRate": 100, + "IsCustom": 1 + }, + { + "Id": 2180001, + "Name": "tienlen房卡娱乐打到底", + "Title": "房卡场", + "GameId": 218, + "GameRule": 21800, + "GameType": 2, + "SceneType": 1, + "Desc": "0", + "ShowType": 3, + "BaseScore": 10, + "BetDec": "10", + "Ai": [ + 0 + ], + "OtherIntParams": [ + 0 + ], + "GameDif": "207", + "GameClass": 1, + "PlatformName": "越南棋牌", + "PlayerWaterRate": 100, + "BetWaterRate": 100, + "IsCustom": 1 + }, { "Id": 8070001, "Name": "Tienlen经典", diff --git a/data/DB_GameRule.dat b/data/DB_GameRule.dat index 0f2fb338a315bcd66b3338a44c97381c9919d76a..3e94de63ec4cb336d5bdc1b5ebec1784a40de21d 100644 GIT binary patch delta 171 zcmcc3@so3dKXbhz$DielLc%4Psd+i6dCxlbKkZ%ke0TrT)*TYp8LgO&3{ANdIUcM) zSMqel#wR-`NZbG`G2_zWII@yaNCt~3&pIbR?bz^i*Hnp{V72BzwJTP^)yhGwgqVj= Od<(4DVzVDJFCzfqLrwhv delta 12 Tcmey#d7EQ{KlA3d%sh+$Bmo4N diff --git a/data/DB_GameRule.json b/data/DB_GameRule.json index 8295ccb..d200ca5 100644 --- a/data/DB_GameRule.json +++ b/data/DB_GameRule.json @@ -142,6 +142,30 @@ "GameId": 247, "GameDif": "247" }, + { + "Id": 21500, + "Name": "tienlen房卡经典", + "GameId": 215, + "GameDif": "215" + }, + { + "Id": 21600, + "Name": "tienlen房卡娱乐", + "GameId": 216, + "GameDif": "216" + }, + { + "Id": 21700, + "Name": "tienlen房卡经典打到底", + "GameId": 217, + "GameDif": "217" + }, + { + "Id": 21800, + "Name": "tienlen房卡娱乐打到底", + "GameId": 218, + "GameDif": "218" + }, { "Id": 60600, "Name": "愤怒大叔", diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index cf721cb68ffd15dcd9d38848fb57c3739537c93d..f9031710cf856fc3845657304ab3d4d2da51d05f 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!+{O&1uR!UmQ2H8_z7C?5I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;Ik1}#HWz3=%p9;jB=^AVM=@WC6YP$LwU1c1VmVmA4neUPXuut)LtqBLEP{Cq XW+BXAlmJj-=U4>v=oe-#2HHXZW^z0= literal 384 zcmd-w<6snElw#w!*2WB`uS4m}Q2Gj#z6zq1I5-yevI!h$vE|a^U;?YZ4VAwErEfy% zTWIRTIUwev+k;gf&^=h~2a1F3Q{n`>qhakM7Oq$h7O+EL4ux3&a|p~Jum^w!z&r@E a80=7(!9e;B*x~FPi+~>e!py}$TL=JT8ay=s diff --git a/data/DB_Task.dat b/data/DB_Task.dat index a2207071c816d5e2c32abd530c67ef03e98d383e..5c05cb71f34940747b3f81de2a97d99721b9ef06 100644 GIT binary patch delta 305 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 lCIJAdyX=4H93vR1Z=8=#BS4))^5L>CjzSFU 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

b5A5vv219sWR=zGr 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 diff --git a/xlsx/DB_GameRule.xlsx b/xlsx/DB_GameRule.xlsx index eddc77e4e252126ae58c7b821849029fd12a44b1..67bd886dbafaa84c269f78b9947d3264d7b8a4e6 100644 GIT binary patch delta 4831 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 dy!?B2C;C22gWv}`3%^dHzrlovwM71&{tp9PO- delta 4613 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 DdzWbo From ab974063e89e4e0e691f7eb753e7712716a0bb19 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 22 Aug 2024 17:48:10 +0800 Subject: [PATCH 07/13] =?UTF-8?q?tienlen=E6=AF=94=E8=B5=9B=E5=9C=BA?= =?UTF-8?q?=E8=A7=82=E6=88=98=E5=8F=91=E9=80=81=E7=8E=A9=E5=AE=B6=E6=89=8B?= =?UTF-8?q?=E7=89=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/tienlen/scenedata_tienlen.go | 6 + protocol/tienlen/tienlen.pb.go | 329 ++++++++++++++------------- protocol/tienlen/tienlen.proto | 1 + 3 files changed, 176 insertions(+), 160 deletions(-) diff --git a/gamesrv/tienlen/scenedata_tienlen.go b/gamesrv/tienlen/scenedata_tienlen.go index 7bfc44e..cd8d905 100644 --- a/gamesrv/tienlen/scenedata_tienlen.go +++ b/gamesrv/tienlen/scenedata_tienlen.go @@ -619,6 +619,9 @@ func (this *TienLenSceneData) SendHandCard_Match() { proto.SetDefaults(pack) seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack) logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards) + + pack.SnId = seat.SnId + this.BroadcastToAudience(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack) } } @@ -652,6 +655,9 @@ func (this *TienLenSceneData) SendHandCard_Match() { proto.SetDefaults(pack) seat.SendToClient(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack) logger.Logger.Trace("SnId: ", seat.SnId, ";SCTienLenCard: ", pack.Cards) + + pack.SnId = seat.SnId + this.BroadcastToAudience(int(tienlen.TienLenPacketID_PACKET_SCTienLenCard), pack) } } } diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go index d75921d..9f4afc6 100644 --- a/protocol/tienlen/tienlen.pb.go +++ b/protocol/tienlen/tienlen.pb.go @@ -1501,6 +1501,7 @@ type SCTienLenCard struct { Cards []int32 `protobuf:"varint,1,rep,packed,name=Cards,proto3" json:"Cards,omitempty"` //手牌 IsOutRecord bool `protobuf:"varint,2,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` // 是否有出牌记录 + SnId int32 `protobuf:"varint,3,opt,name=SnId,proto3" json:"SnId,omitempty"` //玩家id } func (x *SCTienLenCard) Reset() { @@ -1549,6 +1550,13 @@ func (x *SCTienLenCard) GetIsOutRecord() bool { return false } +func (x *SCTienLenCard) GetSnId() int32 { + if x != nil { + return x.SnId + } + return 0 +} + //测试数据 type SCTienLenCardTest struct { state protoimpl.MessageState @@ -2485,171 +2493,172 @@ var file_tienlen_proto_rawDesc = []byte{ 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x22, 0x47, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, + 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, - 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, + 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x88, + 0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, + 0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, - 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, - 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4c, 0x6f, - 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x4e, - 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, - 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, 0x19, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, - 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, - 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x42, 0x6f, 0x6d, 0x62, 0x5f, - 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x42, 0x6f, 0x6d, 0x62, 0x4e, - 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, - 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, - 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, - 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, - 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, - 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, - 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, - 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, - 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, - 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, - 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x27, 0x0a, 0x10, - 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x27, - 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, - 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, - 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x4f, 0x74, 0x68, 0x65, 0x72, - 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, - 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x24, 0x0a, - 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x32, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, - 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, - 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, - 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, - 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x17, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x19, - 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x45, - 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, - 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, - 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, - 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, - 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, - 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, - 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, - 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, - 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, - 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, - 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x50, 0x52, 0x43, - 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0x80, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, - 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, - 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, - 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfc, - 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfd, 0x29, - 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, - 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x10, 0x80, 0x2a, 0x12, - 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x81, 0x2a, - 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x82, 0x2a, 0x12, - 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, 0x2a, 0x12, 0x1f, 0x0a, - 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x87, 0x2a, 0x12, 0x1d, - 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, 0x2a, 0x12, 0x21, 0x0a, - 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, + 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x39, + 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, 0x19, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, + 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x42, + 0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x42, + 0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x64, 0x5f, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, + 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, + 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, + 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, + 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, + 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, + 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, + 0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, + 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, + 0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, + 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, + 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, + 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, + 0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, 0x12, 0x2a, 0x0a, + 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, + 0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, + 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, + 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x20, 0x0a, 0x0c, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x15, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x20, + 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x16, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, + 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, + 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, + 0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, + 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, + 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x41, + 0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, + 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, + 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, + 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, + 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, + 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, + 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, + 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0x80, 0x05, 0x0a, 0x0f, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, + 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, + 0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, + 0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, + 0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, + 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, - 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, - 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, - 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, 0x65, 0x6e, - 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, + 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, + 0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, + 0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, + 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x42, 0x27, + 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index af58b66..a5bfbd3 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -185,6 +185,7 @@ message SCTienLenSmallGameBilled { message SCTienLenCard { repeated int32 Cards = 1; //手牌 bool IsOutRecord = 2; // 是否有出牌记录 + int32 SnId = 3; //玩家id } //测试数据 From 825f22a3bf2fc18f46118a8d3b17e8990bcf3c69 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Thu, 22 Aug 2024 17:51:13 +0800 Subject: [PATCH 08/13] update public --- public | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public b/public index e754bb1..302312b 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit e754bb123f44b0f524ec9dd6d67a1e9d2803a7c5 +Subproject commit 302312bde7d4eca8836828933c5eab055a0b1e15 From a13ed034d767f73dbc39172496ac16036a706caf Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Fri, 23 Aug 2024 09:43:51 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E6=AF=94=E8=B5=9B=E8=A7=82=E6=88=98?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- protocol/gamehall/game.pb.go | 443 ++++++++++++++++++----------------- protocol/gamehall/game.proto | 1 + public | 2 +- worldsrv/action_game.go | 2 +- 4 files changed, 227 insertions(+), 221 deletions(-) diff --git a/protocol/gamehall/game.pb.go b/protocol/gamehall/game.pb.go index fb0a199..151699a 100644 --- a/protocol/gamehall/game.pb.go +++ b/protocol/gamehall/game.pb.go @@ -50,6 +50,7 @@ const ( OpResultCode_Game_OPRC_AllocRoomIdFailed_Game OpResultCode_Game = 1097 //房间id获取失败 OpResultCode_Game_OPRC_PrivateRoomCountLimit_Game OpResultCode_Game = 1098 //私人房间上限 OpResultCode_Game_OPRC_RoomNotExit OpResultCode_Game = 1099 // 已经不在房间了 + OpResultCode_Game_OPRC_MatchAudience OpResultCode_Game = 1100 // 比赛观战白名单 OpResultCode_Game_OPRC_LowerRice_ScenceMax_Game OpResultCode_Game = 1075 //超过最大下米数量 OpResultCode_Game_OPRC_LowerRice_PlayerMax_Game OpResultCode_Game = 1076 //超过单个用户最大下米数 OpResultCode_Game_OPRC_LowerRice_PlayerDownMax_Game OpResultCode_Game = 1077 @@ -95,6 +96,7 @@ var ( 1097: "OPRC_AllocRoomIdFailed_Game", 1098: "OPRC_PrivateRoomCountLimit_Game", 1099: "OPRC_RoomNotExit", + 1100: "OPRC_MatchAudience", 1075: "OPRC_LowerRice_ScenceMax_Game", 1076: "OPRC_LowerRice_PlayerMax_Game", 1077: "OPRC_LowerRice_PlayerDownMax_Game", @@ -136,6 +138,7 @@ var ( "OPRC_AllocRoomIdFailed_Game": 1097, "OPRC_PrivateRoomCountLimit_Game": 1098, "OPRC_RoomNotExit": 1099, + "OPRC_MatchAudience": 1100, "OPRC_LowerRice_ScenceMax_Game": 1075, "OPRC_LowerRice_PlayerMax_Game": 1076, "OPRC_LowerRice_PlayerDownMax_Game": 1077, @@ -7942,7 +7945,7 @@ var file_game_proto_rawDesc = []byte{ 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, - 0x2a, 0xe6, 0x09, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, + 0x2a, 0xff, 0x09, 0x0a, 0x11, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, @@ -7993,226 +7996,228 @@ var file_game_proto_rawDesc = []byte{ 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xca, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x4e, - 0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e, - 0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a, - 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4, - 0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, - 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61, - 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, 0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, - 0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, - 0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61, - 0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, - 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, - 0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74, - 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, - 0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75, - 0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, - 0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b, 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, - 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, - 0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19, - 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72, - 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, - 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, - 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, - 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61, - 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, - 0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98, - 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, - 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x99, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, - 0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, - 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, - 0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12, - 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54, - 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9f, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, - 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x18, 0x0a, - 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, - 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2, - 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, - 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, - 0x10, 0xa4, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41, 0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12, - 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53, - 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa7, - 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, - 0x41, 0x53, 0x4b, 0x43, 0x48, 0x47, 0x10, 0xa8, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c, - 0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c, - 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b, - 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, - 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, 0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54, - 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, - 0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53, - 0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, - 0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, - 0x49, 0x44, 0x53, 0x10, 0xb6, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, - 0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x10, 0xb9, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a, - 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, - 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2, - 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, - 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, - 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, - 0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, - 0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, - 0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e, - 0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10, - 0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, - 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11, - 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55, - 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f, - 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, - 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12, - 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, - 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11, - 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, - 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, - 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, - 0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 0x11, - 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, - 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, - 0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, - 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, - 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, - 0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, - 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a, - 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, - 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, - 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, - 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, - 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, - 0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, - 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xdd, 0x11, 0x12, 0x25, 0x0a, 0x20, + 0x6f, 0x74, 0x45, 0x78, 0x69, 0x74, 0x10, 0xcb, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x4f, 0x50, 0x52, + 0x43, 0x5f, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x10, + 0xcc, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, + 0x52, 0x69, 0x63, 0x65, 0x5f, 0x53, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x61, 0x78, 0x5f, 0x47, + 0x61, 0x6d, 0x65, 0x10, 0xb3, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4c, + 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, + 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb4, 0x08, 0x12, 0x26, 0x0a, 0x21, 0x4f, 0x50, + 0x52, 0x43, 0x5f, 0x4c, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x65, 0x5f, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x4d, 0x61, 0x78, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, + 0xb5, 0x08, 0x12, 0x27, 0x0a, 0x22, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x59, 0x6f, 0x75, 0x72, 0x41, + 0x72, 0x65, 0x47, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xb6, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x50, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xc8, 0x08, 0x12, 0x1c, + 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x52, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xcf, 0x08, 0x12, 0x1f, 0x0a, 0x1a, + 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x4d, 0x75, 0x73, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xd9, 0x08, 0x12, 0x1f, 0x0a, + 0x1a, 0x4f, 0x70, 0x72, 0x63, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x5f, 0x43, 0x6c, 0x75, 0x62, 0x49, + 0x73, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x9f, 0x27, 0x12, 0x1b, + 0x0a, 0x16, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa8, 0x46, 0x12, 0x1a, 0x0a, 0x15, 0x4f, + 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x5f, + 0x47, 0x61, 0x6d, 0x65, 0x10, 0xa9, 0x46, 0x12, 0x19, 0x0a, 0x14, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x44, 0x67, 0x5f, 0x50, 0x6c, 0x61, 0x74, 0x45, 0x72, 0x72, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, + 0xaa, 0x46, 0x12, 0x20, 0x0a, 0x1b, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x44, 0x67, 0x5f, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x10, 0xab, 0x46, 0x12, 0x1c, 0x0a, 0x17, 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x54, 0x68, 0x72, + 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x10, + 0xb2, 0x46, 0x2a, 0xd0, 0x17, 0x0a, 0x10, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x48, 0x61, 0x6c, 0x6c, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4a, + 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x98, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x47, 0x41, 0x4d, 0x45, + 0x10, 0x99, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9a, 0x11, 0x12, 0x19, + 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, + 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9b, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, + 0x10, 0x9c, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9d, 0x11, 0x12, 0x19, 0x0a, + 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, + 0x4e, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0x9e, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x52, 0x4f, 0x4f, 0x4d, + 0x10, 0x9f, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x52, + 0x4f, 0x4f, 0x4d, 0x10, 0xa0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa1, 0x11, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, + 0x54, 0x45, 0x52, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa2, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, + 0x10, 0xa3, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x51, 0x55, 0x49, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xa4, 0x11, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x47, 0x41, + 0x49, 0x4e, 0x57, 0x41, 0x59, 0x10, 0xa5, 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa6, + 0x11, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, + 0x41, 0x53, 0x4b, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xa7, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x43, 0x48, 0x47, 0x10, + 0xa8, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x54, 0x41, 0x43, 0x4b, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0xa9, 0x11, 0x12, + 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x41, 0x53, + 0x4b, 0x44, 0x45, 0x4c, 0x10, 0xaa, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, + 0x5a, 0x45, 0x10, 0xab, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x54, 0x41, 0x43, 0x4b, 0x44, 0x52, 0x41, 0x57, 0x50, 0x52, 0x49, 0x5a, 0x45, + 0x10, 0xac, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, + 0x10, 0xaf, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x47, 0x45, 0x54, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, + 0x10, 0xb0, 0x11, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, + 0x10, 0xb1, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, 0x10, 0xb2, 0x11, 0x12, 0x16, 0x0a, 0x11, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x48, 0x4f, 0x50, 0x42, 0x55, 0x59, + 0x10, 0xb3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xb4, 0x11, 0x12, 0x1f, 0x0a, + 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x4c, 0x41, + 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb5, 0x11, 0x12, 0x1f, + 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x4c, + 0x41, 0x54, 0x45, 0x4c, 0x59, 0x47, 0x41, 0x4d, 0x45, 0x49, 0x44, 0x53, 0x10, 0xb6, 0x11, 0x12, + 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, + 0x47, 0x41, 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb7, 0x11, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x47, 0x41, + 0x4d, 0x45, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0xb8, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x47, + 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0xb9, 0x11, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, + 0x41, 0x4c, 0x4c, 0x10, 0xc0, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc1, 0x11, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, + 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, 0x4c, 0x10, 0xc2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x48, 0x41, 0x4c, + 0x4c, 0x10, 0xc3, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc4, + 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, + 0x41, 0x4c, 0x4c, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xc5, 0x11, 0x12, 0x1e, + 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, + 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xc6, 0x11, 0x12, 0x1e, + 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, + 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xc7, 0x11, 0x12, 0x1d, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x52, 0x4f, 0x4f, 0x4d, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x10, 0xc8, 0x11, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x48, 0x41, 0x4c, 0x4c, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4e, 0x55, 0x4d, 0x10, 0xc9, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, + 0x4f, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xca, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x42, 0x55, 0x4c, 0x4c, 0x45, 0x54, 0x49, 0x4f, 0x4e, + 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xcb, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, 0x46, + 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcc, 0x11, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x45, 0x52, 0x49, 0x4e, + 0x46, 0x4f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xcd, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, + 0x4d, 0x45, 0x10, 0xce, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xcf, + 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, + 0x45, 0x41, 0x56, 0x45, 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd0, 0x11, 0x12, 0x1a, 0x0a, + 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, + 0x44, 0x47, 0x47, 0x41, 0x4d, 0x45, 0x10, 0xd1, 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x43, + 0x48, 0x41, 0x52, 0x47, 0x45, 0x41, 0x4e, 0x53, 0x57, 0x45, 0x52, 0x10, 0xd2, 0x11, 0x12, 0x25, + 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, + 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, + 0x49, 0x43, 0x10, 0xd3, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x53, + 0x54, 0x41, 0x54, 0x49, 0x43, 0x53, 0x54, 0x49, 0x43, 0x10, 0xd4, 0x11, 0x12, 0x23, 0x0a, 0x1e, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x41, + 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x46, 0x45, 0x52, 0x10, 0xd5, + 0x11, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, + 0x48, 0x52, 0x49, 0x44, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x46, 0x45, 0x52, 0x10, 0xd6, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x43, 0x53, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, + 0x4d, 0x45, 0x10, 0xd7, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, + 0x45, 0x10, 0xd8, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, + 0x10, 0xd9, 0x11, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x10, + 0xda, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdb, 0x11, + 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, + 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xdc, 0x11, 0x12, 0x25, + 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x54, 0x48, 0x52, 0x49, + 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x10, 0xdd, 0x11, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, + 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0xde, 0x11, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x10, 0xde, 0x11, 0x12, 0x2a, 0x0a, 0x25, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x54, 0x48, 0x52, 0x49, 0x44, 0x47, 0x41, 0x4d, 0x45, 0x42, 0x41, 0x4c, 0x41, 0x4e, 0x43, - 0x45, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 0x11, 0x12, - 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, - 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0, - 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, - 0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, - 0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, - 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe3, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, - 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12, - 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, - 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, - 0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, - 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6, 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, - 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, - 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, - 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54, - 0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 0x11, 0x12, - 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xed, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46, - 0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10, - 0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, - 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a, - 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, - 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c, - 0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, - 0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18, - 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f, - 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, - 0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11, - 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f, - 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, - 0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x10, 0xfa, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, - 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a, - 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, - 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, - 0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12, - 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52, - 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, - 0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7, 0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49, - 0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47, 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26, - 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, - 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xdf, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, 0x49, 0x56, + 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe0, 0x11, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x50, 0x52, + 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe1, 0x11, 0x12, 0x21, 0x0a, 0x1c, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, + 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xe2, 0x11, 0x12, + 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, + 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x4c, 0x49, 0x53, 0x54, 0x10, + 0xe3, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, + 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, + 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe4, 0x11, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x45, 0x54, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, + 0x52, 0x4f, 0x4f, 0x4d, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x10, 0xe5, 0x11, 0x12, 0x21, + 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, 0x53, 0x54, + 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xe6, + 0x11, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, + 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, + 0x4d, 0x10, 0xe7, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, + 0x53, 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, + 0xe8, 0x11, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x51, 0x55, 0x45, 0x52, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xe9, 0x11, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, + 0x4d, 0x45, 0x53, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xeb, 0x11, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4f, 0x42, + 0x53, 0x45, 0x52, 0x56, 0x45, 0x10, 0xec, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, + 0xed, 0x11, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, + 0x53, 0x59, 0x4e, 0x43, 0x47, 0x41, 0x4d, 0x45, 0x46, 0x52, 0x45, 0x45, 0x10, 0xee, 0x11, 0x12, + 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, + 0x54, 0x45, 0x52, 0x59, 0x53, 0x59, 0x4e, 0x43, 0x10, 0xef, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, + 0x4c, 0x4f, 0x47, 0x10, 0xf0, 0x11, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x4c, 0x4f, 0x47, 0x10, 0xf1, + 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4c, + 0x4f, 0x54, 0x54, 0x45, 0x52, 0x59, 0x42, 0x49, 0x4c, 0x4c, 0x10, 0xf2, 0x11, 0x12, 0x18, 0x0a, + 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, + 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf3, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x4c, 0x4f, 0x43, 0x10, 0xf4, + 0x11, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf5, 0x11, 0x12, 0x1a, 0x0a, + 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, + 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xf6, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, + 0x10, 0xf7, 0x11, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x43, 0x4f, 0x4d, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xf8, 0x11, 0x12, 0x20, 0x0a, + 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, + 0x45, 0x45, 0x4e, 0x54, 0x52, 0x59, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xf9, 0x11, 0x12, + 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x4e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x10, 0xfa, 0x11, 0x12, 0x18, 0x0a, 0x13, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, + 0x4f, 0x4f, 0x4d, 0x10, 0xc1, 0x3e, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x43, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc2, 0x3e, + 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x44, 0x45, + 0x53, 0x54, 0x52, 0x4f, 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc3, 0x3e, 0x12, 0x1a, 0x0a, 0x15, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, + 0x59, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc4, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, + 0x10, 0xc5, 0x3e, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x5f, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xc6, 0x3e, 0x12, 0x21, + 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49, + 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x52, 0x4f, 0x4f, 0x4d, 0x10, 0xc7, + 0x3e, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x5f, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x46, 0x4c, 0x41, 0x47, + 0x10, 0xc8, 0x3e, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, + 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0xc9, 0x3e, 0x12, 0x17, 0x0a, 0x12, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x52, 0x6f, 0x6f, 0x6d, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x10, 0xca, 0x3e, 0x42, 0x28, 0x5a, 0x26, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x68, 0x61, 0x6c, 0x6c, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/gamehall/game.proto b/protocol/gamehall/game.proto index 33cc8fb..8f2d081 100644 --- a/protocol/gamehall/game.proto +++ b/protocol/gamehall/game.proto @@ -30,6 +30,7 @@ enum OpResultCode_Game { OPRC_AllocRoomIdFailed_Game = 1097; //房间id获取失败 OPRC_PrivateRoomCountLimit_Game = 1098; //私人房间上限 OPRC_RoomNotExit = 1099; // 已经不在房间了 + OPRC_MatchAudience = 1100; // 不在比赛观战白名单 OPRC_LowerRice_ScenceMax_Game = 1075; //超过最大下米数量 OPRC_LowerRice_PlayerMax_Game = 1076; //超过单个用户最大下米数 diff --git a/public b/public index 302312b..1ebdfd6 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 302312bde7d4eca8836828933c5eab055a0b1e15 +Subproject commit 1ebdfd67f04b361e59c2738d9870867fc44219a4 diff --git a/worldsrv/action_game.go b/worldsrv/action_game.go index db1b05b..51843df 100644 --- a/worldsrv/action_game.go +++ b/worldsrv/action_game.go @@ -1196,7 +1196,7 @@ func CSAudienceEnterRoomHandler(s *netlib.Session, packetId int, data interface{ } // 比赛场白名单观众 if scene.IsMatchScene() && !PlatformMgrSingleton.IsMatchAudience(p.Platform, p.SnId) { - code = gamehall.OpResultCode_Game_OPRC_RoomNotExist_Game + code = gamehall.OpResultCode_Game_OPRC_MatchAudience logger.Logger.Tracef("CSAudienceEnterRoomHandler scene.IsMatchAudience() %v", scene.sceneId) goto failed } From 466eafe1bc7a045514ae0030a9d41f8a954ee177 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Mon, 26 Aug 2024 18:01:24 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E6=88=BF=E9=97=B4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=AF=94=E8=B5=9B=E9=85=8D=E7=BD=AEid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/action/action_server.go | 2 + gamesrv/base/scene.go | 1 + gamesrv/tienlen/scenepolicy_tienlen.go | 1 + protocol/gamehall/game.pb.go | 2 +- protocol/server/server.pb.go | 2168 ++++++++++++------------ protocol/server/server.proto | 1 + protocol/tienlen/tienlen.pb.go | 478 +++--- protocol/tienlen/tienlen.proto | 1 + public | 2 +- worldsrv/gamesess.go | 1 + worldsrv/matchscenemgr.go | 2 +- worldsrv/scene.go | 4 + 12 files changed, 1347 insertions(+), 1316 deletions(-) diff --git a/gamesrv/action/action_server.go b/gamesrv/action/action_server.go index 10b4483..e634627 100644 --- a/gamesrv/action/action_server.go +++ b/gamesrv/action/action_server.go @@ -72,11 +72,13 @@ func init() { totalOfGames := msg.GetTotalOfGames() baseScore := msg.GetBaseScore() playerNum := int(msg.GetPlayerNum()) + matchInfoId := msg.GetMatchInfoId() scene := base.SceneMgrSington.CreateScene(s, sceneId, gameMode, sceneMode, gameId, msg.GetPlatform(), msg.GetParams(), msg.GetAgentor(), msg.GetCreator(), msg.GetReplayCode(), hallId, groupId, totalOfGames, dbGameFree, bEnterAfterStart, baseScore, playerNum, msg.GetChessRank(), paramsEx...) if scene != nil { if scene.IsMatchScene() { + scene.MatchInfoId = matchInfoId if len(scene.Params) > 0 { scene.MatchId = scene.Params[0] } diff --git a/gamesrv/base/scene.go b/gamesrv/base/scene.go index 704027a..693bb4c 100644 --- a/gamesrv/base/scene.go +++ b/gamesrv/base/scene.go @@ -136,6 +136,7 @@ type Scene struct { Novice bool Welfare bool KillPoints bool + MatchInfoId int32 } func NewScene(ws *netlib.Session, sceneId, gameMode, sceneMode, gameId int, platform string, params []int64, diff --git a/gamesrv/tienlen/scenepolicy_tienlen.go b/gamesrv/tienlen/scenepolicy_tienlen.go index 57ed170..75a307e 100644 --- a/gamesrv/tienlen/scenepolicy_tienlen.go +++ b/gamesrv/tienlen/scenepolicy_tienlen.go @@ -436,6 +436,7 @@ func TienLenCreateRoomInfoPacket(s *base.Scene, p *base.Player, sceneEx *TienLen CurPlayerNum: int32(s.MatchCurPlayerNum), NextNeed: int32(s.MatchNextNeed), RecordId: sceneEx.recordId, + TMInfoId: sceneEx.MatchInfoId, } pack.IsMatch = int32(0) // 0.普通场 1.锦标赛 2.冠军赛 3.vip专属 diff --git a/protocol/gamehall/game.pb.go b/protocol/gamehall/game.pb.go index 151699a..9b09259 100644 --- a/protocol/gamehall/game.pb.go +++ b/protocol/gamehall/game.pb.go @@ -50,7 +50,7 @@ const ( OpResultCode_Game_OPRC_AllocRoomIdFailed_Game OpResultCode_Game = 1097 //房间id获取失败 OpResultCode_Game_OPRC_PrivateRoomCountLimit_Game OpResultCode_Game = 1098 //私人房间上限 OpResultCode_Game_OPRC_RoomNotExit OpResultCode_Game = 1099 // 已经不在房间了 - OpResultCode_Game_OPRC_MatchAudience OpResultCode_Game = 1100 // 比赛观战白名单 + OpResultCode_Game_OPRC_MatchAudience OpResultCode_Game = 1100 // 不在比赛观战白名单 OpResultCode_Game_OPRC_LowerRice_ScenceMax_Game OpResultCode_Game = 1075 //超过最大下米数量 OpResultCode_Game_OPRC_LowerRice_PlayerMax_Game OpResultCode_Game = 1076 //超过单个用户最大下米数 OpResultCode_Game_OPRC_LowerRice_PlayerDownMax_Game OpResultCode_Game = 1077 diff --git a/protocol/server/server.pb.go b/protocol/server/server.pb.go index 19e37f1..9d30fb6 100644 --- a/protocol/server/server.pb.go +++ b/protocol/server/server.pb.go @@ -874,6 +874,7 @@ type WGCreateScene struct { PlayerNum int32 `protobuf:"varint,21,opt,name=PlayerNum,proto3" json:"PlayerNum,omitempty"` RealCtrl bool `protobuf:"varint,22,opt,name=RealCtrl,proto3" json:"RealCtrl,omitempty"` ChessRank []int32 `protobuf:"varint,23,rep,packed,name=ChessRank,proto3" json:"ChessRank,omitempty"` + MatchInfoId int32 `protobuf:"varint,24,opt,name=MatchInfoId,proto3" json:"MatchInfoId,omitempty"` } func (x *WGCreateScene) Reset() { @@ -1069,6 +1070,13 @@ func (x *WGCreateScene) GetChessRank() []int32 { return nil } +func (x *WGCreateScene) GetMatchInfoId() int32 { + if x != nil { + return x.MatchInfoId + } + return 0 +} + //PACKET_WG_DESTROYSCENE type WGDestroyScene struct { state protoimpl.MessageState @@ -8743,7 +8751,7 @@ var file_server_proto_rawDesc = []byte{ 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x22, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x54, 0x65, 0x78, 0x74, 0x22, 0xbc, 0x05, 0x0a, 0x0d, 0x57, 0x47, 0x43, + 0x28, 0x09, 0x52, 0x04, 0x54, 0x65, 0x78, 0x74, 0x22, 0xde, 0x05, 0x0a, 0x0d, 0x57, 0x47, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x02, @@ -8787,1093 +8795,1095 @@ var file_server_proto_rawDesc = []byte{ 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, - 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0x3c, 0x0a, 0x0e, 0x57, 0x47, 0x44, 0x65, 0x73, - 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x49, - 0x73, 0x47, 0x72, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, - 0x47, 0x72, 0x61, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x0e, 0x47, 0x57, 0x44, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x0a, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, - 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x47, - 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x52, 0x65, - 0x62, 0x61, 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0xdd, 0x06, 0x0a, 0x0d, - 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x51, - 0x4d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x12, 0x28, 0x0a, - 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, - 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, - 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0d, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x0e, 0x57, 0x47, 0x44, + 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x49, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x49, 0x64, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x49, 0x73, 0x47, 0x72, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x49, 0x73, 0x47, 0x72, 0x61, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x0e, 0x47, 0x57, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x56, 0x0a, 0x0a, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x54, + 0x61, 0x73, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x53, 0x77, 0x69, + 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x52, 0x65, 0x62, 0x61, 0x74, + 0x65, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x62, 0x61, 0x74, + 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0xdd, 0x06, + 0x0a, 0x0d, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x49, + 0x73, 0x51, 0x4d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x12, + 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, + 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x49, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0c, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x53, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x0d, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x07, 0x43, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, + 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x50, + 0x6f, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x36, 0x0a, + 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x65, 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, - 0x72, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x2e, - 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, - 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x63, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, 0x65, 0x63, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, - 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, 0x43, - 0x6f, 0x73, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x72, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x52, + 0x65, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x56, 0x43, 0x61, 0x72, 0x64, + 0x43, 0x6f, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x56, 0x43, 0x61, 0x72, + 0x64, 0x43, 0x6f, 0x73, 0x74, 0x1a, 0x38, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3c, 0x0a, 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, - 0x0e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6b, 0x0a, 0x0d, 0x57, - 0x47, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x7a, 0x0a, 0x0e, 0x57, 0x47, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, 0x61, 0x64, - 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x54, 0x73, 0x22, 0x91, 0x07, 0x0a, 0x0d, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6f, 0x69, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x65, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, - 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x56, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x53, 0x65, 0x6c, 0x56, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x65, 0x74, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x65, 0x74, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1c, - 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x14, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, - 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, - 0x12, 0x2e, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x65, - 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x36, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x75, 0x72, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x57, - 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, - 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, - 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x52, 0x61, - 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x10, 0x57, 0x47, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x0e, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x22, 0x3e, - 0x0a, 0x10, 0x47, 0x57, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x61, - 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x9d, - 0x01, 0x0a, 0x13, 0x47, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, 0x12, 0x22, - 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x29, - 0x0a, 0x15, 0x47, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0f, 0x57, 0x47, 0x44, - 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x69, - 0x6e, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x57, 0x65, - 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x14, - 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4d, - 0x6f, 0x6e, 0x74, 0x68, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x63, 0x63, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x63, 0x63, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x50, - 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x78, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, - 0xae, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, - 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x42, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x42, - 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x73, - 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x65, 0x12, 0x30, 0x0a, 0x08, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, - 0x6c, 0x61, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x65, 0x73, 0x22, 0x9c, 0x04, 0x0a, 0x0f, 0x47, 0x52, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x03, 0x52, - 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x52, - 0x03, 0x52, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, - 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, - 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x6f, - 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x6f, - 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, - 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, - 0x50, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x65, - 0x72, 0x50, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x56, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, 0x0a, 0x57, 0x52, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, - 0x63, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, - 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x69, 0x6e, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x0c, 0x57, 0x52, 0x47, 0x61, 0x6d, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x47, 0x61, 0x6d, - 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x40, 0x0a, 0x0c, 0x57, 0x52, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0b, 0x57, 0x54, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x43, 0x6f, - 0x69, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, - 0x65, 0x52, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, - 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x09, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, - 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, - 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, - 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, - 0x6f, 0x64, 0x65, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x43, - 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, - 0x22, 0x3a, 0x0a, 0x0a, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x46, 0x69, 0x73, 0x68, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x46, 0x69, 0x73, 0x68, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x0c, - 0x47, 0x57, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x12, 0x34, 0x0a, 0x0b, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x46, - 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x46, 0x69, 0x73, 0x68, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x46, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x46, - 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x57, 0x52, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, - 0x22, 0x40, 0x0a, 0x12, 0x57, 0x52, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x57, 0x47, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x4b, 0x69, - 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x52, - 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, - 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x53, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x67, 0x65, - 0x6e, 0x74, 0x53, 0x69, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x57, 0x44, 0x44, 0x61, 0x74, 0x61, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0x83, 0x01, - 0x0a, 0x0d, 0x47, 0x4e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, - 0x72, 0x64, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x4e, 0x6f, 0x77, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x6f, 0x77, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, - 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, - 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x43, - 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x5c, 0x0a, 0x0d, 0x47, - 0x4e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x57, 0x52, - 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x57, 0x47, 0x52, 0x65, 0x62, 0x69, 0x6e, - 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4f, - 0x6c, 0x64, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x6c, - 0x64, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x53, 0x6e, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x77, 0x53, 0x6e, 0x49, 0x64, 0x22, - 0x4e, 0x0a, 0x0c, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, - 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, - 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x22, - 0x51, 0x0a, 0x0b, 0x57, 0x47, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x4f, 0x70, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6e, - 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x47, 0x57, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x74, 0x69, - 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x72, 0x6f, 0x62, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x72, 0x6f, 0x62, 0x22, 0xa7, 0x02, 0x0a, - 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x12, 0x12, + 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6b, 0x0a, + 0x0d, 0x57, 0x47, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, - 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x46, 0x6f, 0x6f, 0x6c, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x49, 0x73, - 0x46, 0x6f, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x4c, 0x6f, - 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x4c, 0x6f, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x73, - 0x49, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, - 0x79, 0x73, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x73, - 0x4f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x53, 0x79, 0x73, 0x4f, 0x75, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x57, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, - 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, - 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x6d, 0x70, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, - 0x50, 0x75, 0x6d, 0x70, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0xb5, 0x01, - 0x0a, 0x0f, 0x57, 0x47, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x6f, 0x6f, - 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, - 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x57, 0x47, 0x53, 0x65, 0x74, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, - 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x42, 0x43, 0x6f, 0x69, - 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x57, 0x42, - 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x2a, 0x0a, 0x14, 0x47, 0x57, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, - 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x10, 0x47, - 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x12, - 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, - 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x6e, 0x69, 0x64, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x1c, 0x0a, - 0x09, 0x49, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x08, - 0x52, 0x09, 0x49, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x67, 0x22, 0x7a, 0x0a, 0x12, 0x47, - 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x42, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, - 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x54, - 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, - 0x69, 0x6e, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x42, 0x47, 0x61, 0x69, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x57, 0x42, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x72, 0x0a, 0x0c, 0x47, 0x57, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x44, - 0x61, 0x74, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, - 0x65, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0xa8, - 0x01, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x54, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4c, 0x6f, 0x74, 0x74, 0x65, 0x72, - 0x79, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x10, 0x47, 0x57, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x40, - 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, - 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x73, - 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, 0x63, 0x49, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x63, 0x49, 0x64, 0x22, 0x2e, - 0x0a, 0x12, 0x57, 0x47, 0x50, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x54, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x44, 0x54, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5d, - 0x0a, 0x0e, 0x47, 0x52, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, 0x47, 0x61, - 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, - 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, 0x4f, 0x0a, - 0x17, 0x57, 0x47, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x61, 0x66, - 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x94, - 0x01, 0x0a, 0x0d, 0x57, 0x47, 0x43, 0x6c, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x75, 0x6d, 0x70, 0x43, 0x6f, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x50, 0x75, 0x6d, 0x70, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, - 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x44, 0x57, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x53, 0x6e, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x42, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x41, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x50, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6c, 0x74, - 0x22, 0x89, 0x03, 0x0a, 0x13, 0x44, 0x57, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, - 0x61, 0x6d, 0x65, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x49, 0x6e, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x49, 0x6e, - 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x6e, 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x4d, 0x61, 0x78, 0x77, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x4f, 0x6e, - 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x77, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x0f, - 0x41, 0x63, 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, - 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, - 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x10, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x65, 0x74, 0x43, 0x6f, - 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, - 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x43, 0x0a, 0x17, - 0x57, 0x44, 0x41, 0x43, 0x4b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x5c, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x43, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, 0x43, 0x6e, 0x74, 0x22, - 0x85, 0x01, 0x0a, 0x0b, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, 0x73, 0x12, - 0x10, 0x0a, 0x03, 0x53, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, - 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x4e, - 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x22, 0xce, 0x01, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, - 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x7a, 0x0a, 0x0e, 0x57, 0x47, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x49, 0x73, 0x4c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x49, 0x73, 0x4c, 0x6f, + 0x61, 0x64, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, + 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x22, 0x91, 0x07, 0x0a, 0x0d, 0x47, 0x57, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, + 0x65, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x46, 0x65, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, + 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6c, 0x56, 0x69, 0x70, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x53, 0x65, 0x6c, 0x56, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x65, + 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x65, 0x74, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x32, + 0x0a, 0x14, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, + 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x6c, + 0x6f, 0x77, 0x12, 0x2e, 0x0a, 0x12, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x42, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x61, 0x63, 0x68, 0x65, 0x42, 0x65, 0x74, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x75, 0x72, 0x49, 0x73, 0x57, 0x69, 0x6e, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x75, 0x72, 0x49, 0x73, 0x57, 0x69, 0x6e, + 0x12, 0x57, 0x0a, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, + 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x52, 0x61, 0x6e, + 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x38, 0x0a, + 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x43, 0x0a, 0x15, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, + 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x10, 0x57, 0x47, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x72, 0x6f, 0x70, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x66, 0x0a, 0x0e, 0x57, 0x47, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, + 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, + 0x22, 0x3e, 0x0a, 0x10, 0x47, 0x57, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x6f, 0x6f, 0x6d, + 0x43, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x22, 0x9d, 0x01, 0x0a, 0x13, 0x47, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x56, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x56, 0x69, 0x70, + 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x49, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x22, 0x29, 0x0a, 0x15, 0x47, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x22, 0x79, 0x0a, 0x0f, 0x57, + 0x47, 0x44, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x44, 0x61, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x44, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, + 0x57, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, 0x65, 0x6b, + 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x41, + 0x63, 0x63, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x63, 0x63, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, + 0x03, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, 0x61, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x53, + 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x53, 0x65, 0x78, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, + 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, + 0x6f, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x42, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x42, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, + 0x6f, 0x73, 0x22, 0x41, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x65, 0x12, 0x30, 0x0a, 0x08, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, + 0x65, 0x70, 0x6c, 0x61, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x08, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x65, 0x73, 0x22, 0x9c, 0x04, 0x0a, 0x0f, 0x47, 0x52, 0x52, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, + 0x03, 0x52, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x65, 0x52, 0x03, 0x52, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x43, 0x6c, 0x75, 0x62, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, + 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x52, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, + 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, + 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x6b, + 0x65, 0x72, 0x50, 0x6f, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x42, 0x61, 0x6e, + 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x56, 0x65, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, + 0x74, 0x61, 0x73, 0x56, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x49, 0x44, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, 0x0a, 0x57, 0x52, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x63, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, + 0x73, 0x42, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, + 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x43, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x0c, 0x57, 0x52, 0x47, + 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x47, + 0x61, 0x6d, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x40, 0x0a, 0x0c, 0x57, 0x52, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x47, 0x0a, 0x0b, 0x57, + 0x54, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, + 0x64, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, + 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x48, 0x65, + 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x48, 0x65, 0x61, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, + 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xac, 0x01, 0x0a, 0x09, 0x47, 0x57, 0x47, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x63, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, + 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, + 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x70, 0x6c, 0x61, + 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x78, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x33, 0x0a, + 0x09, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x74, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, - 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4a, 0x61, - 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4a, 0x61, - 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, - 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x0e, 0x57, 0x47, - 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x65, 0x77, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x4e, 0x65, 0x77, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x11, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, - 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x12, 0x12, 0x0a, 0x04, 0x53, - 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x44, 0x0a, 0x0f, 0x47, 0x57, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x12, 0x31, 0x0a, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, - 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, - 0x3b, 0x0a, 0x13, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x75, 0x74, 0x6f, 0x4d, - 0x61, 0x72, 0x6b, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x54, 0x61, 0x67, 0x22, 0x74, 0x0a, 0x1e, - 0x57, 0x47, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x45, 0x6e, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, - 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, - 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x62, 0x4e, - 0x75, 0x6d, 0x22, 0x2c, 0x0a, 0x10, 0x57, 0x47, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x63, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, - 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, - 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x41, 0x75, 0x74, - 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, - 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x72, - 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, - 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x55, 0x73, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x12, - 0x1a, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x6e, 0x0a, 0x18, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x12, 0x36, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x43, - 0x66, 0x67, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0x4c, 0x0a, 0x16, 0x57, - 0x47, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, - 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x43, 0x66, 0x67, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x43, 0x66, 0x67, 0x52, 0x03, 0x43, 0x66, 0x67, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x57, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x22, 0x40, 0x0a, 0x0c, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x22, 0x3e, 0x0a, - 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, - 0x74, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x22, 0x39, 0x0a, - 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x47, 0x57, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x22, - 0xd5, 0x01, 0x0a, 0x12, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x75, - 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4e, - 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x70, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, - 0x67, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x4c, - 0x6f, 0x67, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x57, 0x47, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x51, 0x75, 0x69, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, - 0x63, 0x68, 0x49, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x16, 0x57, 0x47, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x42, - 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x75, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, 0x75, 0x74, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6d, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x12, - 0x16, 0x0a, 0x06, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x73, 0x22, 0x72, 0x0a, 0x12, 0x53, 0x53, 0x52, 0x65, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x96, 0x01, 0x0a, 0x10, - 0x57, 0x47, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x6f, 0x62, - 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x1c, - 0x0a, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, - 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, - 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, - 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x7d, 0x0a, 0x0d, 0x57, 0x47, 0x47, 0x61, 0x6d, 0x65, 0x4a, 0x61, - 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x24, 0x0a, - 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, - 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x11, 0x42, 0x69, 0x67, 0x57, 0x69, 0x6e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x70, 0x69, - 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x70, 0x69, 0x6e, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0d, 0x49, 0x73, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x43, - 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, - 0x73, 0x22, 0xb9, 0x02, 0x0a, 0x15, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x04, 0x49, 0x73, 0x51, 0x4d, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, - 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x22, 0x71, 0x0a, - 0x15, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x69, - 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, - 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, - 0x22, 0x23, 0x0a, 0x0d, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, - 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, - 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x57, 0x44, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x4d, 0x69, 0x6e, 0x69, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, - 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x47, 0x52, 0x44, 0x65, 0x73, 0x74, 0x72, - 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, - 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x57, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x6e, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x63, 0x22, 0x40, 0x0a, 0x0c, 0x57, 0x47, 0x44, 0x54, 0x52, - 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, - 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x44, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, - 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, - 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x44, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, - 0x54, 0x6f, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, 0x6f, 0x74, - 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x44, - 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x44, 0x43, 0x6f, - 0x69, 0x6e, 0x22, 0x37, 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, - 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x9b, 0x03, 0x0a, 0x0c, - 0x47, 0x57, 0x44, 0x54, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, - 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x14, - 0x0a, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x44, - 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, - 0x12, 0x2e, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x44, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x4c, 0x65, - 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x4c, - 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x69, 0x6e, - 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x6f, 0x69, 0x6e, - 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x29, - 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x44, 0x43, - 0x6f, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x75, 0x0a, 0x0d, 0x57, 0x47, 0x52, - 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, + 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x0a, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x46, 0x69, 0x73, 0x68, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x46, 0x69, 0x73, 0x68, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x78, + 0x0a, 0x0c, 0x47, 0x57, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x46, 0x69, 0x73, 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x0b, 0x46, 0x69, 0x73, + 0x68, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x0c, 0x47, 0x57, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x75, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x43, 0x75, 0x72, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x46, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x46, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x57, 0x52, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x57, 0x65, 0x62, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, - 0x22, 0x4f, 0x0a, 0x0d, 0x47, 0x57, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, - 0x67, 0x22, 0x63, 0x0a, 0x11, 0x47, 0x57, 0x41, 0x64, 0x64, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, - 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, - 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, - 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x0e, 0x57, 0x47, 0x53, 0x69, 0x6e, 0x67, - 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x09, 0x57, - 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, 0x72, 0x6c, - 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x6c, 0x66, - 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, 0x66, 0x61, - 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, - 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x60, 0x0a, 0x10, - 0x57, 0x47, 0x42, 0x75, 0x79, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x43, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, + 0x69, 0x74, 0x22, 0x40, 0x0a, 0x12, 0x57, 0x52, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x43, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x43, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x14, 0x57, 0x47, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, + 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x57, 0x44, 0x44, 0x61, 0x74, + 0x61, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x34, 0x0a, 0x0a, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, + 0x83, 0x01, 0x0a, 0x0d, 0x47, 0x4e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x43, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x4e, 0x6f, 0x77, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x4e, 0x6f, 0x77, 0x52, 0x6f, 0x62, 0x6f, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x6f, 0x69, + 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x43, 0x6f, 0x69, 0x6e, 0x50, 0x61, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x2c, 0x0a, + 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x43, 0x6f, 0x69, 0x6e, 0x45, 0x78, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x50, + 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x5c, 0x0a, + 0x0d, 0x47, 0x4e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x0e, 0x47, + 0x57, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x57, 0x47, 0x52, 0x65, 0x62, + 0x69, 0x6e, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x4f, 0x6c, 0x64, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x4f, 0x6c, 0x64, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x53, 0x6e, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x77, 0x53, 0x6e, 0x49, + 0x64, 0x22, 0x4e, 0x0a, 0x0c, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, + 0x67, 0x22, 0x51, 0x0a, 0x0b, 0x57, 0x47, 0x48, 0x75, 0x6e, 0x64, 0x72, 0x65, 0x64, 0x4f, 0x70, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x73, 0x6e, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x47, 0x57, 0x4e, 0x65, 0x77, 0x4e, 0x6f, + 0x74, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x72, 0x6f, + 0x62, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x72, 0x6f, 0x62, 0x22, 0xa7, + 0x02, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x22, 0x32, - 0x0a, 0x0c, 0x57, 0x47, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x12, 0x12, + 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x49, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x49, 0x73, 0x46, 0x6f, + 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x49, 0x73, 0x46, 0x6f, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, + 0x4c, 0x6f, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x4c, 0x6f, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x47, 0x61, 0x6d, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x79, 0x73, 0x49, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x53, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x79, 0x73, 0x4f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x53, 0x79, 0x73, 0x4f, 0x75, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x57, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, + 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x63, 0x73, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x75, 0x6d, + 0x70, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x50, 0x75, 0x6d, 0x70, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x22, + 0xb5, 0x01, 0x0a, 0x0f, 0x57, 0x47, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x50, + 0x6f, 0x6f, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x57, 0x47, 0x53, 0x65, + 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x42, 0x43, + 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, + 0x57, 0x42, 0x43, 0x6f, 0x69, 0x6e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x57, 0x41, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x6c, 0x69, 0x65, + 0x76, 0x65, 0x57, 0x42, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x7e, 0x0a, + 0x10, 0x47, 0x57, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, + 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, + 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x6e, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x49, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x08, 0x52, 0x09, 0x49, 0x73, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x6e, 0x67, 0x22, 0x7a, 0x0a, + 0x12, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x0a, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x42, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x42, 0x65, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x47, 0x61, + 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x54, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x54, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x42, 0x47, 0x61, + 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x57, 0x42, 0x47, 0x61, 0x69, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x72, 0x0a, 0x0c, + 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, + 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, + 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, + 0x22, 0xa8, 0x01, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x04, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x78, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x54, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x74, + 0x74, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x4c, 0x6f, 0x74, 0x74, + 0x65, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x10, + 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, + 0x12, 0x40, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x61, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x47, 0x61, 0x69, 0x6e, + 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x65, + 0x63, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x52, 0x65, 0x63, 0x49, 0x64, + 0x22, 0x2e, 0x0a, 0x12, 0x57, 0x47, 0x50, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x6e, 0x47, 0x61, 0x6d, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x54, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x44, 0x54, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x5d, 0x0a, 0x0e, 0x47, 0x52, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, + 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, + 0x4f, 0x0a, 0x17, 0x57, 0x47, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x53, 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, + 0x22, 0x94, 0x01, 0x0a, 0x0d, 0x57, 0x47, 0x43, 0x6c, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x06, 0x43, 0x6c, 0x75, 0x62, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x75, 0x6d, 0x70, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x50, 0x75, 0x6d, 0x70, 0x43, 0x6f, + 0x69, 0x6e, 0x12, 0x33, 0x0a, 0x0a, 0x44, 0x42, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x44, 0x42, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x52, 0x0a, 0x44, 0x42, 0x47, + 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x14, 0x44, 0x57, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x41, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, + 0x6c, 0x74, 0x22, 0x89, 0x03, 0x0a, 0x13, 0x44, 0x57, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x53, 0x6e, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x54, 0x68, 0x69, 0x72, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, + 0x64, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x49, + 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x0f, + 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x49, 0x6e, 0x54, 0x68, 0x69, 0x72, 0x64, 0x47, 0x61, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x6e, 0x65, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x77, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x4f, 0x6e, 0x65, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x77, 0x69, 0x6e, 0x12, 0x28, + 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x41, 0x63, 0x63, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x73, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x65, 0x74, 0x43, 0x6f, 0x69, 0x6e, 0x49, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x65, 0x74, + 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x69, 0x6e, 0x49, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x43, + 0x0a, 0x17, 0x57, 0x44, 0x41, 0x43, 0x4b, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x54, 0x61, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x54, 0x61, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x5c, 0x0a, 0x0e, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x4c, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x6f, 0x67, + 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, 0x43, 0x6e, + 0x74, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x47, 0x57, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x54, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x54, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x53, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x61, 0x6e, 0x6b, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x42, 0x61, 0x6e, 0x6b, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x75, 0x6d, 0x22, 0xce, 0x01, 0x0a, 0x0e, 0x47, 0x57, + 0x47, 0x61, 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, + 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x4a, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x4a, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, + 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x40, 0x0a, 0x0e, 0x47, 0x57, + 0x47, 0x61, 0x6d, 0x65, 0x4a, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x3a, 0x0a, 0x0e, + 0x57, 0x47, 0x4e, 0x69, 0x63, 0x65, 0x49, 0x64, 0x52, 0x65, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x65, 0x77, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x4e, 0x65, 0x77, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x11, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x12, 0x12, 0x0a, + 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, + 0x44, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x44, 0x0a, 0x0f, 0x47, + 0x57, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x12, 0x31, + 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, + 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x49, 0x4e, 0x46, 0x4f, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x22, 0x3b, 0x0a, 0x13, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x75, 0x74, + 0x6f, 0x4d, 0x61, 0x72, 0x6b, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x54, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x54, 0x61, 0x67, 0x22, 0x74, + 0x0a, 0x1e, 0x57, 0x47, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x6f, 0x62, 0x45, 0x6e, 0x74, + 0x65, 0x72, 0x43, 0x6f, 0x69, 0x6e, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, + 0x62, 0x4e, 0x75, 0x6d, 0x22, 0x2c, 0x0a, 0x10, 0x57, 0x47, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x6f, + 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x49, 0x64, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x47, + 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x41, + 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, + 0x74, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, + 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x11, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x52, + 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x55, 0x73, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, + 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x6e, 0x0a, + 0x18, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x36, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x47, 0x61, 0x6d, + 0x65, 0x43, 0x66, 0x67, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x66, 0x67, 0x22, 0x4c, 0x0a, + 0x16, 0x57, 0x47, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x43, 0x6f, 0x72, 0x72, 0x65, 0x63, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x43, 0x66, 0x67, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x43, 0x66, 0x67, 0x52, 0x03, 0x43, 0x66, 0x67, 0x22, 0x2e, 0x0a, 0x12, 0x47, + 0x57, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x22, 0x40, 0x0a, + 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x18, 0x0a, + 0x07, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x22, + 0x3e, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x53, 0x74, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x22, + 0x39, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, + 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x47, + 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, + 0x50, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, + 0x73, 0x22, 0xd5, 0x01, 0x0a, 0x12, 0x47, 0x57, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, + 0x70, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x61, 0x6d, 0x65, + 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x61, 0x6d, + 0x65, 0x4c, 0x6f, 0x67, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x69, 0x6e, + 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x11, 0x57, 0x47, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x51, 0x75, 0x69, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, - 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, - 0x49, 0x64, 0x2a, 0xe4, 0x16, 0x0a, 0x0a, 0x53, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, - 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x45, 0x52, 0x56, - 0x45, 0x52, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x42, 0x5f, 0x43, 0x55, 0x52, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x10, - 0xe8, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x42, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xe9, 0x07, 0x12, - 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, 0x41, 0x54, - 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xea, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x44, 0x49, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, - 0xec, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x53, 0x5f, - 0x53, 0x52, 0x56, 0x43, 0x54, 0x52, 0x4c, 0x10, 0xed, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x10, 0xf4, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x47, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x54, 0x41, - 0x47, 0x10, 0xf5, 0x07, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x41, 0x47, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0xf6, 0x07, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x53, 0x43, 0x45, 0x4e, - 0x45, 0x10, 0xcd, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, - 0x47, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xce, - 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xcf, 0x08, 0x12, 0x1a, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, - 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xd0, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x52, 0x4f, 0x4f, - 0x4d, 0x43, 0x41, 0x52, 0x44, 0x10, 0xd1, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, - 0x4e, 0x45, 0x10, 0xd2, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x52, 0x4f, 0x50, 0x4c, 0x49, 0x4e, - 0x45, 0x10, 0xd3, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, - 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x48, 0x4f, 0x4c, 0x44, 0x10, 0xd4, - 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x47, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x42, 0x49, 0x4e, 0x44, - 0x10, 0xd5, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x47, - 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x55, 0x4e, - 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd6, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x54, 0x55, 0x52, - 0x4e, 0x10, 0xd7, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, - 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0xd8, - 0x08, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x47, - 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xd9, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x45, - 0x4e, 0x54, 0x45, 0x52, 0x10, 0xda, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x41, - 0x56, 0x45, 0x10, 0xdb, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xdc, 0x08, - 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x49, 0x4e, - 0x56, 0x49, 0x54, 0x45, 0x52, 0x4f, 0x42, 0x4f, 0x54, 0x10, 0xdd, 0x08, 0x12, 0x21, 0x0a, 0x1c, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x4b, - 0x49, 0x43, 0x4b, 0x4f, 0x55, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0xde, 0x08, 0x12, - 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x44, 0x5f, 0x44, 0x41, 0x54, - 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0xdf, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x43, 0x4c, 0x55, 0x42, 0x42, 0x49, 0x4c, - 0x4c, 0x4d, 0x4f, 0x4e, 0x45, 0x59, 0x10, 0xe1, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x4e, - 0x49, 0x44, 0x10, 0xe2, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x47, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, 0x10, 0xe3, - 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, - 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0xe4, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, - 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x10, 0xe5, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x47, 0x5f, 0x47, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, - 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xe6, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x45, 0x4e, 0x44, 0x10, 0xe7, - 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x46, - 0x49, 0x53, 0x48, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0xe8, 0x08, 0x12, 0x1f, 0x0a, 0x1a, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, - 0x46, 0x4f, 0x52, 0x43, 0x45, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xe9, 0x08, 0x12, 0x1e, 0x0a, - 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, - 0x52, 0x57, 0x49, 0x4e, 0x53, 0x4f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0xea, 0x08, 0x12, 0x19, 0x0a, - 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, - 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xeb, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x44, 0x57, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xec, 0x08, 0x12, 0x24, 0x0a, 0x1f, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x44, 0x5f, 0x41, 0x43, 0x4b, 0x54, 0x68, 0x69, 0x72, - 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xed, - 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x57, 0x5f, 0x54, - 0x68, 0x69, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x10, 0xee, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, - 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x4f, 0x4f, - 0x4d, 0x10, 0xef, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, - 0x52, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x10, 0xf0, 0x08, 0x12, 0x19, 0x0a, - 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x10, 0xf1, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x10, 0xf2, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, - 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xf3, 0x08, 0x12, - 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x57, 0x42, 0x43, - 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x10, 0xf4, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, 0x41, 0x52, - 0x44, 0x53, 0x10, 0xdc, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x47, 0x57, 0x5f, 0x52, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, - 0xdd, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xde, 0x0b, 0x12, 0x18, - 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4e, 0x45, 0x57, 0x4e, - 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xdf, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x43, 0x10, 0xe0, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x47, 0x5f, 0x43, 0x4f, 0x49, 0x4e, 0x50, 0x4f, 0x4f, 0x4c, 0x53, 0x45, 0x54, 0x54, 0x49, - 0x4e, 0x47, 0x10, 0xe1, 0x0b, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x47, 0x5f, 0x53, 0x45, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x42, 0x4c, 0x41, 0x43, - 0x4b, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0xe2, 0x0b, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x52, 0x45, 0x4c, 0x49, 0x45, - 0x56, 0x45, 0x57, 0x42, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0xe3, 0x0b, 0x12, 0x1a, 0x0a, 0x15, - 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, - 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0xe4, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x45, - 0x52, 0x4c, 0x4f, 0x47, 0x10, 0xe5, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, - 0x4f, 0x49, 0x4e, 0x10, 0xe6, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x6e, 0x47, 0x61, 0x6d, 0x65, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xea, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x47, 0x52, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x10, 0xeb, 0x0b, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x47, 0x5f, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x61, 0x66, - 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xec, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x43, 0x4f, - 0x49, 0x4e, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0xed, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x4c, 0x55, 0x42, 0x5f, 0x4d, 0x45, 0x53, 0x53, - 0x41, 0x47, 0x45, 0x10, 0xee, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x47, 0x57, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4c, 0x4f, 0x47, - 0x10, 0xef, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, - 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xf0, 0x0b, 0x12, 0x1a, 0x0a, - 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4a, 0x41, 0x43, 0x4b, 0x50, - 0x4f, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xf1, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, 0x43, 0x4f, - 0x49, 0x4e, 0x10, 0xf2, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x47, 0x57, 0x5f, 0x4e, 0x49, 0x43, 0x45, 0x49, 0x44, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x10, - 0xf3, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xf4, 0x0b, - 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, - 0x41, 0x59, 0x45, 0x52, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x52, 0x4b, 0x54, 0x41, 0x47, 0x10, - 0xf5, 0x0b, 0x12, 0x2b, 0x0a, 0x26, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, - 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x52, 0x4f, 0x42, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x43, 0x4f, - 0x49, 0x4e, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0xf6, 0x0b, 0x12, - 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x41, 0x4d, - 0x45, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xf7, 0x0b, 0x12, 0x24, - 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x46, - 0x49, 0x54, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x43, 0x4f, 0x52, 0x52, 0x45, 0x43, - 0x54, 0x10, 0xf8, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, - 0x57, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x10, 0xf9, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x57, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x59, 0x10, 0xfa, 0x0b, 0x12, - 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, - 0x59, 0x45, 0x52, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0xfb, - 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, - 0xfc, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, - 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x51, 0x55, 0x49, 0x54, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, - 0xfd, 0x0b, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, - 0x53, 0x43, 0x45, 0x4e, 0x45, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x42, 0x41, 0x53, 0x45, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x10, 0xfe, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x54, 0x4f, 0x50, - 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0xff, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x4d, 0x41, 0x54, 0x43, - 0x48, 0x52, 0x4f, 0x42, 0x10, 0x80, 0x0c, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, - 0x10, 0x83, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, - 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x4e, - 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x85, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, - 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x86, 0x0c, 0x12, 0x23, 0x0a, - 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, - 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, - 0x87, 0x0c, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, - 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x4d, 0x49, 0x4e, 0x49, 0x53, 0x43, 0x45, 0x4e, 0x45, - 0x10, 0x88, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x52, - 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0x89, 0x0c, - 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x54, - 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x8a, 0x0c, 0x12, 0x19, 0x0a, 0x14, 0x50, - 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x49, - 0x4e, 0x46, 0x4f, 0x10, 0x8b, 0x0c, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, - 0x53, 0x10, 0x8c, 0x0c, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, - 0x57, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x53, 0x10, - 0x8d, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, - 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x8e, 0x0c, 0x12, - 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x44, 0x44, - 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x8f, 0x0c, 0x12, - 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x42, 0x55, 0x59, - 0x52, 0x45, 0x43, 0x54, 0x49, 0x4d, 0x45, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x90, 0x0c, 0x12, 0x19, - 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x10, 0x91, 0x0c, 0x42, 0x26, 0x5a, 0x24, 0x6d, 0x6f, 0x6e, - 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, 0x6d, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x22, 0xa0, 0x01, 0x0a, 0x16, 0x57, 0x47, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x42, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x08, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1c, 0x0a, + 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x42, 0x61, 0x73, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x75, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4f, + 0x75, 0x74, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x4e, + 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x52, 0x65, 0x73, 0x74, 0x4e, 0x75, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x4e, 0x65, 0x78, 0x74, 0x54, 0x73, 0x22, 0x72, 0x0a, 0x12, 0x53, 0x53, 0x52, + 0x65, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x96, 0x01, + 0x0a, 0x10, 0x57, 0x47, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x6f, 0x62, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x62, 0x4e, + 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x62, 0x4e, 0x75, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x09, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x77, 0x61, 0x69, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x61, + 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x7d, 0x0a, 0x0d, 0x57, 0x47, 0x47, 0x61, 0x6d, 0x65, + 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, + 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, + 0x53, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x24, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x11, 0x42, 0x69, 0x67, 0x57, 0x69, 0x6e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x53, + 0x70, 0x69, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x70, 0x69, + 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x42, 0x61, 0x73, 0x65, 0x42, 0x65, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x50, 0x72, 0x69, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x49, + 0x73, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x65, 0x74, 0x12, 0x14, 0x0a, + 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, + 0x72, 0x64, 0x73, 0x22, 0xb9, 0x02, 0x0a, 0x15, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x53, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x47, 0x61, 0x74, 0x65, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x61, 0x6b, 0x65, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x49, 0x73, 0x51, 0x4d, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, + 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x45, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x53, + 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0c, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x22, + 0x71, 0x0a, 0x15, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, + 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x53, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, + 0x74, 0x65, 0x53, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x47, 0x61, 0x74, + 0x65, 0x53, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x57, 0x47, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, + 0x61, 0x76, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x47, 0x57, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4d, 0x69, 0x6e, 0x69, 0x47, 0x61, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x47, + 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, + 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x57, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x4d, 0x69, 0x6e, 0x69, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0e, 0x47, 0x52, 0x44, 0x65, 0x73, + 0x74, 0x72, 0x6f, 0x79, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, 0x6e, + 0x65, 0x49, 0x64, 0x22, 0x24, 0x0a, 0x10, 0x52, 0x57, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x41, 0x63, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x41, 0x63, 0x63, 0x22, 0x40, 0x0a, 0x0c, 0x57, 0x47, 0x44, + 0x54, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, + 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x0c, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, + 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x44, 0x43, 0x6f, + 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x4e, 0x43, 0x6f, 0x69, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x54, + 0x6f, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x44, + 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x37, 0x0a, 0x07, 0x45, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x9b, 0x03, + 0x0a, 0x0c, 0x47, 0x57, 0x44, 0x54, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x4e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4e, 0x43, 0x6f, + 0x69, 0x6e, 0x12, 0x2e, 0x0a, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x44, 0x54, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, + 0x4c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x4c, 0x65, 0x66, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, + 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x43, 0x6f, + 0x69, 0x6e, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, 0x66, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x75, 0x6d, 0x4f, + 0x66, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x75, + 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, 0x6f, 0x70, 0x4e, 0x75, 0x6d, + 0x12, 0x29, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x45, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x52, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x44, + 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x44, 0x43, + 0x6f, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x44, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x75, 0x0a, 0x0d, 0x57, + 0x47, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, + 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x57, 0x65, 0x62, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, + 0x65, 0x79, 0x22, 0x4f, 0x0a, 0x0d, 0x47, 0x57, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x22, 0x63, 0x0a, 0x11, 0x47, 0x57, 0x41, 0x64, 0x64, 0x53, 0x69, 0x6e, 0x67, + 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x47, 0x61, 0x6d, 0x65, + 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x47, 0x61, + 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, 0x49, 0x64, 0x22, 0x72, 0x0a, 0x0e, 0x57, 0x47, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x22, 0xaf, 0x01, 0x0a, + 0x09, 0x57, 0x62, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, + 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x65, 0x61, 0x6c, 0x43, 0x74, + 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x4e, 0x6f, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, + 0x6c, 0x66, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x57, 0x65, 0x6c, + 0x66, 0x61, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x4b, 0x69, 0x6c, 0x6c, 0x50, 0x6f, + 0x69, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x60, + 0x0a, 0x10, 0x57, 0x47, 0x42, 0x75, 0x79, 0x52, 0x65, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x74, + 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, + 0x22, 0x32, 0x0a, 0x0c, 0x57, 0x47, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x6e, + 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x53, 0x6e, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x49, 0x64, 0x2a, 0xe4, 0x16, 0x0a, 0x0a, 0x53, 0x53, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x12, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x42, 0x5f, 0x43, 0x55, 0x52, 0x5f, 0x4c, 0x4f, 0x41, + 0x44, 0x10, 0xe8, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, + 0x42, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x10, 0xe9, + 0x07, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x5f, 0x47, + 0x41, 0x54, 0x45, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0xea, 0x07, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x44, 0x49, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, + 0x54, 0x10, 0xec, 0x07, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, + 0x53, 0x5f, 0x53, 0x52, 0x56, 0x43, 0x54, 0x52, 0x4c, 0x10, 0xed, 0x07, 0x12, 0x1b, 0x0a, 0x16, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xf4, 0x07, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x47, 0x5f, 0x42, 0x49, 0x4e, 0x44, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x54, 0x41, 0x47, 0x10, 0xf5, 0x07, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x53, 0x53, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x54, 0x41, 0x47, 0x5f, 0x4d, 0x55, + 0x4c, 0x54, 0x49, 0x43, 0x41, 0x53, 0x54, 0x10, 0xf6, 0x07, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x53, 0x43, + 0x45, 0x4e, 0x45, 0x10, 0xcd, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, + 0x10, 0xce, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xcf, 0x08, 0x12, + 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xd0, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, 0x52, + 0x4f, 0x4f, 0x4d, 0x43, 0x41, 0x52, 0x44, 0x10, 0xd1, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, + 0x43, 0x45, 0x4e, 0x45, 0x10, 0xd2, 0x08, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x44, 0x52, 0x4f, 0x50, 0x4c, + 0x49, 0x4e, 0x45, 0x10, 0xd3, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x48, 0x4f, 0x4c, 0x44, + 0x10, 0xd4, 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x47, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x42, 0x49, + 0x4e, 0x44, 0x10, 0xd5, 0x08, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x47, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x55, 0x4e, 0x42, 0x49, 0x4e, 0x44, 0x10, 0xd6, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x52, 0x45, 0x54, + 0x55, 0x52, 0x4e, 0x10, 0xd7, 0x08, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x47, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x59, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, + 0x10, 0xd8, 0x08, 0x12, 0x16, 0x0a, 0x11, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, + 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x52, 0x45, 0x43, 0x10, 0xd9, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, + 0x45, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0xda, 0x08, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x4c, + 0x45, 0x41, 0x56, 0x45, 0x10, 0xdb, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, + 0xdc, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, + 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x52, 0x4f, 0x42, 0x4f, 0x54, 0x10, 0xdd, 0x08, 0x12, 0x21, + 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x47, 0x45, 0x4e, + 0x54, 0x4b, 0x49, 0x43, 0x4b, 0x4f, 0x55, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0xde, + 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x44, 0x5f, 0x44, + 0x41, 0x54, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0xdf, 0x08, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x43, 0x4c, 0x55, 0x42, 0x42, + 0x49, 0x4c, 0x4c, 0x4d, 0x4f, 0x4e, 0x45, 0x59, 0x10, 0xe1, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x42, 0x49, 0x4e, 0x44, 0x5f, + 0x53, 0x4e, 0x49, 0x44, 0x10, 0xe2, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x45, 0x4e, 0x43, 0x45, 0x53, 0x49, 0x54, + 0x10, 0xe3, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, + 0x5f, 0x52, 0x45, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0xe4, 0x08, 0x12, 0x19, 0x0a, 0x14, + 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x10, 0xe5, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x52, 0x41, 0x43, 0x45, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, + 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, 0xe6, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x45, 0x4e, 0x44, + 0x10, 0xe7, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, + 0x5f, 0x46, 0x49, 0x53, 0x48, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x10, 0xe8, 0x08, 0x12, 0x1f, + 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xe9, 0x08, 0x12, + 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x53, 0x4f, 0x43, 0x4f, 0x52, 0x45, 0x10, 0xea, 0x08, 0x12, + 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x44, 0x41, 0x54, 0x41, 0x10, 0xeb, 0x08, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x57, 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x10, 0xec, 0x08, 0x12, 0x24, 0x0a, + 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x44, 0x5f, 0x41, 0x43, 0x4b, 0x54, 0x68, + 0x69, 0x72, 0x64, 0x52, 0x65, 0x62, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x10, 0xed, 0x08, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x44, 0x57, + 0x5f, 0x54, 0x68, 0x69, 0x72, 0x64, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x10, 0xee, 0x08, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x57, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, + 0x4f, 0x4f, 0x4d, 0x10, 0xef, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x57, 0x52, 0x5f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x10, 0xf0, 0x08, 0x12, + 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x47, 0x61, 0x6d, + 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x10, 0xf1, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x52, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x10, 0xf2, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x57, 0x47, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0xf3, + 0x08, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x57, + 0x42, 0x43, 0x74, 0x72, 0x6c, 0x43, 0x66, 0x67, 0x10, 0xf4, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x43, + 0x41, 0x52, 0x44, 0x53, 0x10, 0xdc, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x52, 0x45, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x53, 0x43, 0x45, 0x4e, + 0x45, 0x10, 0xdd, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, + 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xde, 0x0b, + 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4e, 0x45, + 0x57, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0xdf, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x53, 0x54, + 0x41, 0x54, 0x49, 0x43, 0x10, 0xe0, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x4f, 0x49, 0x4e, 0x50, 0x4f, 0x4f, 0x4c, 0x53, 0x45, 0x54, + 0x54, 0x49, 0x4e, 0x47, 0x10, 0xe1, 0x0b, 0x12, 0x22, 0x0a, 0x1d, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x45, 0x54, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x42, 0x4c, + 0x41, 0x43, 0x4b, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0xe2, 0x0b, 0x12, 0x21, 0x0a, 0x1c, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x52, 0x45, 0x4c, + 0x49, 0x45, 0x56, 0x45, 0x57, 0x42, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0xe3, 0x0b, 0x12, 0x1a, + 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x4e, 0x5f, 0x50, 0x4c, 0x41, 0x59, + 0x45, 0x52, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x10, 0xe4, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x4c, 0x4f, 0x47, 0x10, 0xe5, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x50, 0x4c, 0x41, 0x59, 0x45, + 0x52, 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xe6, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x6e, 0x47, 0x61, + 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0xea, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x52, 0x5f, 0x47, 0x61, 0x6d, 0x65, 0x46, 0x72, 0x65, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x10, 0xeb, 0x0b, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x61, 0x66, 0x65, 0x42, 0x6f, 0x78, 0x43, 0x6f, 0x69, 0x6e, 0x10, 0xec, 0x0b, 0x12, 0x1c, 0x0a, + 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, + 0x43, 0x4f, 0x49, 0x4e, 0x50, 0x4f, 0x4f, 0x4c, 0x10, 0xed, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x43, 0x4c, 0x55, 0x42, 0x5f, 0x4d, 0x45, + 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0xee, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x4c, + 0x4f, 0x47, 0x10, 0xef, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x47, 0x57, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0xf0, 0x0b, 0x12, + 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4a, 0x41, 0x43, + 0x4b, 0x50, 0x4f, 0x54, 0x4c, 0x49, 0x53, 0x54, 0x10, 0xf1, 0x0b, 0x12, 0x1a, 0x0a, 0x15, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4a, 0x41, 0x43, 0x4b, 0x50, 0x4f, 0x54, + 0x43, 0x4f, 0x49, 0x4e, 0x10, 0xf2, 0x0b, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x4e, 0x49, 0x43, 0x45, 0x49, 0x44, 0x52, 0x45, 0x42, 0x49, 0x4e, + 0x44, 0x10, 0xf3, 0x0b, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, + 0x57, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x57, 0x49, 0x4e, 0x43, 0x4f, 0x49, 0x4e, 0x10, + 0xf4, 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, + 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x41, 0x52, 0x4b, 0x54, 0x41, + 0x47, 0x10, 0xf5, 0x0b, 0x12, 0x2b, 0x0a, 0x26, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, + 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x52, 0x4f, 0x42, 0x45, 0x4e, 0x54, 0x45, 0x52, + 0x43, 0x4f, 0x49, 0x4e, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0xf6, + 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, + 0x41, 0x4d, 0x45, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0xf7, 0x0b, + 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x52, + 0x4f, 0x46, 0x49, 0x54, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x43, 0x4f, 0x52, 0x52, + 0x45, 0x43, 0x54, 0x10, 0xf8, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x47, 0x57, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x10, 0xf9, 0x0b, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x41, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x57, 0x54, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x50, 0x41, 0x59, 0x10, 0xfa, + 0x0b, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, + 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x42, 0x49, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0xfb, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, + 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x47, 0x52, 0x41, 0x44, + 0x45, 0x10, 0xfc, 0x0b, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, + 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x51, 0x55, 0x49, 0x54, 0x4d, 0x41, 0x54, 0x43, + 0x48, 0x10, 0xfd, 0x0b, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, + 0x47, 0x5f, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x42, 0x41, 0x53, 0x45, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0xfe, 0x0b, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x53, 0x5f, 0x52, 0x45, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x54, + 0x4f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0xff, 0x0b, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x4d, 0x41, + 0x54, 0x43, 0x48, 0x52, 0x4f, 0x42, 0x10, 0x80, 0x0c, 0x12, 0x1a, 0x0a, 0x15, 0x50, 0x41, 0x43, + 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x47, 0x41, 0x4d, 0x45, 0x4a, 0x41, 0x43, 0x4b, 0x50, + 0x4f, 0x54, 0x10, 0x83, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x5f, 0x4d, + 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x85, 0x0c, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x41, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x4c, 0x45, + 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, 0x45, 0x10, 0x86, 0x0c, 0x12, + 0x23, 0x0a, 0x1e, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x50, 0x4c, 0x41, + 0x59, 0x45, 0x52, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x47, 0x41, 0x4d, + 0x45, 0x10, 0x87, 0x0c, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, + 0x57, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x4d, 0x49, 0x4e, 0x49, 0x53, 0x43, 0x45, + 0x4e, 0x45, 0x10, 0x88, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x47, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x53, 0x43, 0x45, 0x4e, 0x45, 0x10, + 0x89, 0x0c, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, + 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x8a, 0x0c, 0x12, 0x19, 0x0a, + 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, + 0x4d, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x8b, 0x0c, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x52, 0x45, 0x53, 0x55, + 0x4c, 0x54, 0x53, 0x10, 0x8c, 0x0c, 0x12, 0x1c, 0x0a, 0x17, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x5f, 0x47, 0x57, 0x5f, 0x44, 0x54, 0x52, 0x4f, 0x4f, 0x4d, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, + 0x53, 0x10, 0x8d, 0x0c, 0x12, 0x1b, 0x0a, 0x16, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, + 0x47, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x8e, + 0x0c, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x47, 0x57, 0x5f, 0x41, + 0x44, 0x44, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x8f, + 0x0c, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x42, + 0x55, 0x59, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4d, 0x45, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x90, 0x0c, + 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x57, 0x47, 0x5f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x6b, 0x69, 0x6e, 0x10, 0x91, 0x0c, 0x42, 0x26, 0x5a, 0x24, 0x6d, + 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/server/server.proto b/protocol/server/server.proto index f460326..1419b65 100644 --- a/protocol/server/server.proto +++ b/protocol/server/server.proto @@ -186,6 +186,7 @@ message WGCreateScene { int32 PlayerNum = 21; bool RealCtrl = 22; repeated int32 ChessRank = 23; + int32 MatchInfoId = 24; } //PACKET_WG_DESTROYSCENE diff --git a/protocol/tienlen/tienlen.pb.go b/protocol/tienlen/tienlen.pb.go index 9f4afc6..50ed587 100644 --- a/protocol/tienlen/tienlen.pb.go +++ b/protocol/tienlen/tienlen.pb.go @@ -651,6 +651,7 @@ type SCTienLenRoomInfo struct { OutCardRecord []int32 `protobuf:"varint,30,rep,packed,name=OutCardRecord,proto3" json:"OutCardRecord,omitempty"` //已打出去的牌 IsOutRecord bool `protobuf:"varint,31,opt,name=IsOutRecord,proto3" json:"IsOutRecord,omitempty"` //是否能用记牌器 ItemRecExpireTime int64 `protobuf:"varint,32,opt,name=ItemRecExpireTime,proto3" json:"ItemRecExpireTime,omitempty"` //记牌器到期时间 + TMInfoId int32 `protobuf:"varint,33,opt,name=TMInfoId,proto3" json:"TMInfoId,omitempty"` //比赛配置ID } func (x *SCTienLenRoomInfo) Reset() { @@ -888,6 +889,13 @@ func (x *SCTienLenRoomInfo) GetItemRecExpireTime() int64 { return 0 } +func (x *SCTienLenRoomInfo) GetTMInfoId() int32 { + if x != nil { + return x.TMInfoId + } + return 0 +} + //房间状态更新 type SCTienLenRoomState struct { state protoimpl.MessageState @@ -2365,7 +2373,7 @@ var file_tienlen_proto_rawDesc = []byte{ 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x23, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xab, 0x07, 0x0a, 0x11, 0x53, 0x43, 0x54, + 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x22, 0xc7, 0x07, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x72, 0x65, 0x61, 0x74, 0x6f, @@ -2424,241 +2432,243 @@ var file_tienlen_proto_rawDesc = []byte{ 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, - 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x22, 0x8e, 0x01, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, - 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, - 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x15, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, - 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x50, 0x6f, 0x73, 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, - 0x1a, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, - 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x57, - 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, - 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, - 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, - 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, - 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64, - 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, - 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x65, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, - 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, - 0x6c, 0x65, 0x64, 0x52, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, - 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12, - 0x1e, 0x0a, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73, - 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57, - 0x69, 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, - 0x6e, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, - 0x6e, 0x22, 0x5b, 0x0a, 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, - 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75, - 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, - 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x88, - 0x02, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, - 0x54, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, - 0x2e, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x47, 0x72, - 0x61, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, - 0x6c, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x39, - 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x4d, 0x49, 0x6e, 0x66, 0x6f, + 0x49, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x4d, 0x49, 0x6e, 0x66, 0x6f, + 0x49, 0x64, 0x22, 0x42, 0x0a, 0x12, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x11, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x8e, 0x01, + 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4f, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4f, + 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x4f, 0x70, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x09, 0x4f, 0x70, 0x52, + 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, + 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x4f, 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x52, 0x09, 0x4f, 0x70, 0x52, 0x65, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x46, + 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x49, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, - 0x78, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, 0x19, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x42, - 0x6f, 0x6d, 0x62, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x42, - 0x6f, 0x6d, 0x62, 0x4e, 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x64, 0x5f, 0x70, - 0x6c, 0x61, 0x79, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, - 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, - 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, - 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, - 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, - 0x73, 0x74, 0x4d, 0x6f, 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, - 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, - 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, - 0x66, 0x74, 0x5f, 0x31, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, - 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, - 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, - 0x74, 0x32, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, - 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, - 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x4f, - 0x74, 0x68, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, - 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, - 0x31, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, - 0x73, 0x5f, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, 0x12, 0x2a, 0x0a, - 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, - 0x64, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, - 0x75, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x46, 0x69, - 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, - 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x20, 0x0a, 0x0c, - 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x15, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x20, - 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x16, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, - 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, - 0x18, 0x17, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, - 0x74, 0x33, 0x12, 0x19, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, - 0x45, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, - 0x1a, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x49, 0x73, 0x57, 0x69, 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, - 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x41, - 0x0a, 0x1b, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, - 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, - 0x74, 0x22, 0x68, 0x0a, 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, - 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, - 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, - 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, - 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, - 0x70, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, - 0x50, 0x52, 0x43, 0x5f, 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, - 0x4f, 0x50, 0x52, 0x43, 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0x80, 0x05, 0x0a, 0x0f, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, - 0x6e, 0x5a, 0x45, 0x52, 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, - 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x10, 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x10, 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x43, 0x53, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4f, 0x70, 0x10, 0xfc, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, - 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, - 0x70, 0x10, 0xfd, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, - 0x74, 0x65, 0x72, 0x10, 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, - 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, - 0x10, 0x80, 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, - 0x64, 0x10, 0x81, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, - 0x10, 0x82, 0x2a, 0x12, 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, - 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, - 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, - 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, - 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, - 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, - 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, - 0x2a, 0x12, 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, - 0x87, 0x2a, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, - 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, - 0x2a, 0x12, 0x21, 0x0a, 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, - 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, - 0x74, 0x10, 0x89, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, - 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, - 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, + 0x22, 0x6f, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x49, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x49, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x22, 0xb3, 0x02, 0x0a, 0x17, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x47, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x49, 0x73, 0x57, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x73, + 0x57, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, 0x6e, 0x6b, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x57, 0x69, 0x6e, 0x52, 0x61, + 0x6e, 0x6b, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x61, 0x6e, 0x6b, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x52, 0x61, 0x6e, 0x6b, + 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x41, 0x64, 0x64, 0x53, 0x63, 0x6f, 0x72, + 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x41, 0x64, + 0x64, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x08, 0x41, 0x64, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x54, 0x69, 0x61, 0x6e, 0x48, 0x75, 0x22, 0x4d, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x36, + 0x0a, 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x52, + 0x05, 0x44, 0x61, 0x74, 0x61, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x18, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, + 0x6c, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x57, + 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0a, 0x57, 0x69, 0x6e, 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4c, + 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4c, 0x6f, + 0x73, 0x65, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4c, 0x6f, 0x73, 0x65, 0x50, 0x6f, 0x73, + 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x4c, 0x6f, 0x73, 0x65, + 0x50, 0x6f, 0x73, 0x43, 0x6f, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, + 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x57, 0x69, 0x6e, 0x43, 0x6f, 0x69, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x43, 0x6f, 0x69, 0x6e, 0x22, 0x5b, 0x0a, + 0x0d, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, + 0x61, 0x72, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x4f, 0x75, 0x74, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x6e, 0x49, 0x64, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, + 0x12, 0x3e, 0x0a, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x2e, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x47, 0x72, 0x61, 0x64, 0x65, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x69, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, + 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x4c, 0x6f, + 0x73, 0x65, 0x52, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x39, 0x0a, 0x0b, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7f, 0x0a, 0x11, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x49, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x4e, + 0x65, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x05, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x3b, 0x0a, 0x19, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x6e, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, + 0x6e, 0x69, 0x64, 0x22, 0x3e, 0x0a, 0x1a, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x22, 0xcb, 0x07, 0x0a, 0x0f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x41, 0x49, 0x44, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x42, 0x6f, 0x6d, 0x62, 0x5f, + 0x6e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x42, 0x6f, 0x6d, 0x62, 0x4e, + 0x75, 0x6d, 0x12, 0x2f, 0x0a, 0x14, 0x43, 0x61, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x43, 0x61, 0x72, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x30, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, + 0x76, 0x65, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, + 0x76, 0x65, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, + 0x76, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x76, 0x65, + 0x5f, 0x33, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x4c, 0x61, 0x73, 0x74, 0x4d, 0x6f, + 0x76, 0x65, 0x33, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, + 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, + 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x27, 0x0a, 0x10, + 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, + 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x27, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, + 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x27, + 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, + 0x5f, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x4e, 0x75, 0x6d, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x28, 0x0a, 0x10, 0x4f, 0x74, 0x68, 0x65, 0x72, + 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, + 0x73, 0x5f, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x30, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x31, 0x12, 0x24, 0x0a, + 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x32, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x73, 0x32, 0x12, 0x24, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x5f, 0x63, 0x61, + 0x72, 0x64, 0x73, 0x5f, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x0a, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x59, 0x75, 0x6c, 0x65, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x49, 0x73, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, + 0x59, 0x75, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x48, + 0x61, 0x6e, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x49, 0x73, 0x46, 0x69, 0x72, + 0x73, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, + 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x30, 0x18, 0x14, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, + 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x64, + 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x31, 0x18, 0x15, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0a, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x43, 0x61, + 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x16, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x20, 0x0a, 0x0c, + 0x43, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x33, 0x18, 0x17, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x0a, 0x43, 0x61, 0x72, 0x64, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x33, 0x12, 0x19, + 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x4c, 0x61, 0x73, 0x74, 0x50, 0x6f, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x73, 0x45, + 0x6e, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x08, 0x57, 0x69, 0x6e, 0x53, 0x6e, 0x69, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x49, + 0x73, 0x57, 0x69, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x49, 0x73, 0x57, 0x69, + 0x6e, 0x22, 0x27, 0x0a, 0x13, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, + 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x41, 0x0a, 0x1b, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x68, 0x69, + 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x54, 0x68, 0x69, + 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x22, 0x68, 0x0a, + 0x20, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x63, 0x45, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5e, 0x0a, 0x14, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x53, 0x6e, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, + 0x6e, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, + 0x6c, 0x52, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x65, 0x74, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x2a, 0x3e, 0x0a, 0x0c, 0x4f, 0x70, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x52, 0x43, 0x5f, + 0x53, 0x75, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x50, 0x52, 0x43, + 0x5f, 0x48, 0x69, 0x6e, 0x74, 0x10, 0x02, 0x2a, 0x80, 0x05, 0x0a, 0x0f, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x12, 0x50, + 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x5a, 0x45, 0x52, + 0x4f, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, + 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x10, + 0xfa, 0x29, 0x12, 0x1e, 0x0a, 0x19, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, + 0xfb, 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x43, 0x53, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfc, + 0x29, 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, + 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x10, 0xfd, 0x29, + 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x10, + 0xfe, 0x29, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, + 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x10, 0xff, 0x29, 0x12, 0x19, 0x0a, 0x14, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x10, 0x80, 0x2a, 0x12, + 0x1f, 0x0a, 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x10, 0x81, 0x2a, + 0x12, 0x1d, 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x43, 0x75, 0x72, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x82, 0x2a, 0x12, + 0x24, 0x0a, 0x1f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, + 0x4c, 0x65, 0x6e, 0x53, 0x6d, 0x61, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x42, 0x69, 0x6c, 0x6c, + 0x65, 0x64, 0x10, 0x83, 0x2a, 0x12, 0x25, 0x0a, 0x20, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, + 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6e, 0x69, 0x64, 0x10, 0x84, 0x2a, 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, - 0x50, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x42, 0x27, - 0x5a, 0x25, 0x6d, 0x6f, 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x61, 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x74, 0x69, 0x65, 0x6e, 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x10, 0x85, 0x2a, 0x12, 0x17, 0x0a, 0x12, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, + 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x41, 0x49, 0x10, 0x86, 0x2a, 0x12, 0x1f, 0x0a, + 0x1a, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4f, 0x70, 0x50, 0x6f, 0x73, 0x10, 0x87, 0x2a, 0x12, 0x1d, + 0x0a, 0x18, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, + 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x65, 0x73, 0x74, 0x10, 0x88, 0x2a, 0x12, 0x21, 0x0a, + 0x1c, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, + 0x6e, 0x54, 0x68, 0x69, 0x6e, 0x6b, 0x4c, 0x6f, 0x6e, 0x67, 0x43, 0x6e, 0x74, 0x10, 0x89, 0x2a, + 0x12, 0x26, 0x0a, 0x21, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, + 0x6e, 0x4c, 0x65, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x47, 0x69, 0x76, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x8a, 0x2a, 0x12, 0x20, 0x0a, 0x1b, 0x50, 0x41, 0x43, 0x4b, + 0x45, 0x54, 0x5f, 0x53, 0x43, 0x54, 0x69, 0x65, 0x6e, 0x4c, 0x65, 0x6e, 0x50, 0x65, 0x74, 0x53, + 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x10, 0x8b, 0x2a, 0x42, 0x27, 0x5a, 0x25, 0x6d, 0x6f, + 0x6e, 0x67, 0x6f, 0x2e, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x61, + 0x6d, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x74, 0x69, 0x65, 0x6e, + 0x6c, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protocol/tienlen/tienlen.proto b/protocol/tienlen/tienlen.proto index a5bfbd3..dc57b81 100644 --- a/protocol/tienlen/tienlen.proto +++ b/protocol/tienlen/tienlen.proto @@ -116,6 +116,7 @@ message SCTienLenRoomInfo { repeated int32 OutCardRecord = 30 ;//已打出去的牌 bool IsOutRecord = 31;//是否能用记牌器 int64 ItemRecExpireTime = 32; //记牌器到期时间 + int32 TMInfoId = 33; //比赛配置ID } //房间状态更新 diff --git a/public b/public index 1ebdfd6..c159b76 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 1ebdfd67f04b361e59c2738d9870867fc44219a4 +Subproject commit c159b7686a95ec76316fa947e18b6be2fe993e4d diff --git a/worldsrv/gamesess.go b/worldsrv/gamesess.go index 2d28dd5..b9610f8 100644 --- a/worldsrv/gamesess.go +++ b/worldsrv/gamesess.go @@ -169,6 +169,7 @@ func (this *GameSession) AddScene(s *Scene) { TotalOfGames: proto.Int32(s.totalRound), BaseScore: proto.Int32(s.BaseScore), PlayerNum: proto.Int(s.playerNum), + MatchInfoId: s.MatchInfoId, } var platform *Platform if s.limitPlatform != nil { diff --git a/worldsrv/matchscenemgr.go b/worldsrv/matchscenemgr.go index 1016408..36d0288 100644 --- a/worldsrv/matchscenemgr.go +++ b/worldsrv/matchscenemgr.go @@ -60,7 +60,7 @@ func (ms *MatchSceneMgr) NewScene(tm *TmMatch, isFinals bool, round int32) *Scen params := []int64{tm.SortId, int64(finals), int64(round), int64(curPlayerNum), int64(nextNeed), int64(tm.gmd.MatchType)} scene := SceneMgrSingleton.CreateScene(0, 0, sceneId, gameId, int(gameMode), common.SceneMode_Match, 1, - 0, params, gs, limitPlatform, groupId, tm.dbGameFree, tm.dbGameFree.GetId()) + 0, params, gs, limitPlatform, groupId, tm.dbGameFree, tm.dbGameFree.GetId(), tm.gmd.Id) if scene != nil { scene.matchId = tm.SortId return scene diff --git a/worldsrv/scene.go b/worldsrv/scene.go index 8412ba9..8f72656 100644 --- a/worldsrv/scene.go +++ b/worldsrv/scene.go @@ -103,6 +103,7 @@ type Scene struct { gameSite int //tienlen游戏场次区分 1.初级 2.中级 3.高级场 BaseScore int32 //tienlen游戏底分 matchId int64 //比赛场id + MatchInfoId int32 // 比赛场配置id csp *CoinScenePool // 所在场景池 hp *HundredSceneMgr // 百人场房间池 @@ -153,6 +154,9 @@ func NewScene(agentor, creator int32, id, gameId, gameMode, sceneMode int, clycl } if s.IsMatchScene() { s.BaseScore = 10 + if len(paramsEx) > 1 { + s.MatchInfoId = paramsEx[1] + } } s.sp.OnStart(s) return s From 613ed6da76ba71184a2d487fd9f462dc23fa5b68 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Tue, 27 Aug 2024 11:05:42 +0800 Subject: [PATCH 11/13] update excel --- data/DB_PropExchange.dat | Bin 384 -> 384 bytes data/DB_Task.dat | Bin 5299 -> 5299 bytes data/DB_VIPShow.dat | 8 ++++-- data/DB_VIPShow.json | 15 +++++++++-- protocol/server/pbdata.pb.go | 47 ++++++++++++++++++++++++----------- protocol/server/pbdata.proto | 8 ++++-- public | 2 +- xlsx/DB_VIP.xlsx | Bin 20885 -> 20811 bytes xlsx/DB_VIPShow.xlsx | Bin 14304 -> 14551 bytes 9 files changed, 59 insertions(+), 21 deletions(-) diff --git a/data/DB_PropExchange.dat b/data/DB_PropExchange.dat index f9031710cf856fc3845657304ab3d4d2da51d05f..7152c3ce08c89657670345e97144f2996f387cd7 100644 GIT binary patch literal 384 zcmd-w<6snElw#w!-o^~3FGJ}oQ2HvAz6PR|I5-yevI!h$vE|a^U;?YZ0hPZArEfv$ z+i2>;IUwf4%!SzpRtK~nT|dknDE0%@f$dY`1iPbQ?IRYhSPmAjL%;Ik1}#HWz3=%p9;jB=^AVM=@WC6YP$LwU1c1VmVmA4neUPXuut)LtqBLEP{Cq XW+BXAlmJj-=U4>v=oe-#2HHXZW^z0= diff --git a/data/DB_Task.dat b/data/DB_Task.dat index 5c05cb71f34940747b3f81de2a97d99721b9ef06..b9869b31687431c7b93ca6298103689771bf2472 100644 GIT binary patch delta 241 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 delta 6531 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 delta 7550 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 TgdG4t@_Kc=KB2w+`}Y3;>(~qX From f782b799ab42303705aa90e773c19301c85ef1c6 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Tue, 27 Aug 2024 11:06:02 +0800 Subject: [PATCH 12/13] update excel --- public | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public b/public index 1ba4afb..fd8bef9 160000 --- a/public +++ b/public @@ -1 +1 @@ -Subproject commit 1ba4afbf4c50a78d58d427773c84e011cb1588fc +Subproject commit fd8bef907ea15489504529da70f72038444b54e0 From 94a4737609f1aa907518eda4303a3e2ff864ab63 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Tue, 27 Aug 2024 17:36:08 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E6=AF=94=E8=B5=9B=E5=9C=BA=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E6=8E=92=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- worldsrv/tournament.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/worldsrv/tournament.go b/worldsrv/tournament.go index 8519cf2..2bc7ec4 100644 --- a/worldsrv/tournament.go +++ b/worldsrv/tournament.go @@ -966,6 +966,25 @@ func (this *Tournament) GetRank(sortId int64, snid int32) int32 { } if round <= 1 { + d := tm.TmPlayer[snid] + if d != nil { + return int32(d.seq) + } + if useRobot { + n := 0 + for _, v := range tm.TmPlayer { + n = v.seq - 1 + break + } + for k, v := range tm.robotGrades[0] { + if v.copySnid == snid { + if k < n { + return int32(k) + } + return int32(k + 2) + } + } + } return 0 } else { if useRobot {