diff --git a/src/server/conf/champship/ChampshipCfg.go b/src/server/conf/champship/ChampshipCfg.go index bb0ced4b..d074ce58 100644 --- a/src/server/conf/champship/ChampshipCfg.go +++ b/src/server/conf/champship/ChampshipCfg.go @@ -47,18 +47,19 @@ func GetReward(Reward, Score int) (int, []*item.Item) { return Reward, nil } r := make([]*item.Item, 0) + NewReward := Reward for k, v := range data { Id := GoUtil.Int(k) if Reward >= Id { continue } - if Score >= gamedata.GetIntValue(v, "Score") { + if Score >= gamedata.GetIntValue(v, "Total") { Items := item.ParseItem(gamedata.GetValue(v, "Items")) r = item.Merge(r, Items) - Reward = max(Reward, Id) + NewReward = max(NewReward, Id) } } - return Reward, r + return NewReward, r } func GetRankReward(Rank int) []*item.Item { diff --git a/src/server/conf/invite/inviteCfg.go b/src/server/conf/invite/inviteCfg.go index 16b0cb23..7a0c84f2 100644 --- a/src/server/conf/invite/inviteCfg.go +++ b/src/server/conf/invite/inviteCfg.go @@ -6,7 +6,7 @@ import ( ) const ( - CFG_INVITE = "invite" + CFG_INVITE = "Invite" ) func init() { diff --git a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go b/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go index 64e68fec..0ee9d4fb 100644 --- a/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go +++ b/src/server/conf/limitedTimeEvent/LimitedTimeEventCfg.go @@ -217,3 +217,12 @@ func GetProgressReward(RewardId int) []*item.Item { } return nil } + +func GetProgressRewardType(RewardId int) int { + data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_JACKPOT, RewardId) + if err != nil { + log.Debug("GetProgressReward err:%v", err) + return 0 + } + return gamedata.GetIntValue(data, "Type") +} diff --git a/src/server/game/ChampshipMgr.go b/src/server/game/ChampshipMgr.go index cb9ca602..250bd431 100644 --- a/src/server/game/ChampshipMgr.go +++ b/src/server/game/ChampshipMgr.go @@ -81,17 +81,19 @@ func (c *ChampshipMgr) Init() { c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_INRANK, c.inRank) c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_AI, c.ai) c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_ZERO, c.ZeroUpdate) + c.RegisterHandler(msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY2, c.NotifyAll) Now := GoUtil.Now() ZeroTime := GoUtil.ZeroTimestamp() Remain := Now - ZeroTime Remain1 := 1800 - Remain%1800 - c.mDispatr.AfterFunc(time.Duration(Remain1)*time.Second, func() { + c.mDispatr.AfterFunc(time.Duration(Remain1)*time.Second, func() { // 30分钟后重新分组 c.Send(&msg.Msg{ Type: msg.HANDLE_TYPE_CHAMPSHIP_GROUP, }) }) + c.mDispatr.AfterFunc(time.Duration(60)*time.Second, func() { c.Send(&msg.Msg{ Type: msg.HANDLE_TYPE_CHAMPSHIP_AI, @@ -104,6 +106,12 @@ func (c *ChampshipMgr) Init() { }) } +func (c *ChampshipMgr) NotifyAll() { + G_GameLogicPtr.NotifyAll(&msg.Msg{ + Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY, + }) +} + func (c *ChampshipMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { c.getData().PreRank = c.getData().Rank c.getData().PreRobot = c.getData().Robot @@ -118,6 +126,11 @@ func (c *ChampshipMgr) ZeroUpdate(m *msg.Msg) (interface{}, error) { Type: msg.HANDLE_TYPE_CHAMPSHIP_ZERO, }) }) + c.mDispatr.AfterFunc(time.Duration(1800)*time.Second, func() { + c.Send(&msg.Msg{ + Type: msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY2, + }) + }) return nil, nil } diff --git a/src/server/game/FriendMgr.go b/src/server/game/FriendMgr.go index b0f47375..45d0753e 100644 --- a/src/server/game/FriendMgr.go +++ b/src/server/game/FriendMgr.go @@ -38,6 +38,8 @@ func (f *FriendMgr) Init() { f.RegisterHandler(msg.HANDLE_TYPE_DEL, f.sendToPlayer) f.RegisterHandler(msg.HANDLE_TYPE_SYNC, f.sync) f.RegisterHandler(msg.HANDLE_TYPE_REFUSE, f.sync) + f.RegisterHandler(msg.HANDLE_TYPE_INVITE_ADD_FRIEND, f.sendToPlayer) + f.RegisterHandler(msg.HANDLE_TYPE_INVITE_FRIEND, f.sendToPlayer) // 卡牌消息 f.RegisterHandler(msg.HANDLE_TYPE_REQ_CARD, f.sendToPlayer) diff --git a/src/server/game/GameLogic.go b/src/server/game/GameLogic.go index 21550c9f..e5848c6b 100644 --- a/src/server/game/GameLogic.go +++ b/src/server/game/GameLogic.go @@ -937,12 +937,13 @@ func (ad *GameLogic) RegisterNetWorkFunc() { RegisterMsgProcessFunc("ReqSetFacebookUrl", ReqSetFacebookUrl) // 设置facebook地址 // 棋盘 - RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数 - RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子 - RegisterMsgProcessFunc("ReqGetChessFromBuff", ReqGetChessFromBuff) // 从buff中获取棋子 - RegisterMsgProcessFunc("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包 - RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子 - RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 使用棋子技能 + RegisterMsgProcessFunc("UpdatePlayerChessData", UpdatePlayerChessDataFunc) // 更新棋盘数据 + RegisterMsgProcessFunc("ReqSetEnergyMul", RegSetEneryFunc) //设置能量倍数 + RegisterMsgProcessFunc("ReqChessEx", ReqChessEx) // 转换棋子 + RegisterMsgProcessFunc("ReqGetChessFromBuff", ReqGetChessFromBuff) // 从buff中获取棋子 + RegisterMsgProcessFunc("ReqPutChessInBag", ReqPutChessInBag) // 把棋子放入背包 + RegisterMsgProcessFunc("ReqTakeChessOutBag", ReqTakeChessOutBag) // 从背包中取出棋子 + RegisterMsgProcessFunc("ReqBuyChessBagGrid", ReqBuyChessBagGrid) // 使用棋子技能 RegisterMsgProcessFunc("ReqBuyEnergy", ReqBuyEnergy) //购买能量 @@ -995,7 +996,7 @@ func (ad *GameLogic) RegisterNetWorkFunc() { //场景转盘 RegisterMsgProcessFunc("ReqLimitSenceReward", ReqLimitSenceReward) //领取限时事件进度奖励 - + RegisterMsgProcessFunc("ReqSelectLimitEvent", ReqSelectLimitEvent) // 好友 RegisterMsgProcessFunc("ReqFriendList", ReqFriendList) // 请求好友列表 RegisterMsgProcessFunc("ReqFriendApply", ReqFriendApply) // 请求申请好友列表 @@ -1173,3 +1174,17 @@ func getRedisLock(key string) error { func unsetRedisLock(key string) { db.RedisUnlock(key, "") } + +func Destroy() { + log.Debug("服务器下线") + if G_GameLogicPtr != nil { + for k, v := range G_GameLogicPtr.M_Players { + log.Debug("palyer %d 断开连接 写入数据", k) + v.ClearData() + } + G_GameLogicPtr.FriendMgr.SaveData() + G_GameLogicPtr.RankMgr.SaveData() + G_GameLogicPtr.ChampshipMgr.SaveData() + + } +} diff --git a/src/server/game/Gm.go b/src/server/game/Gm.go index 657a8bae..97cd2d11 100644 --- a/src/server/game/Gm.go +++ b/src/server/game/Gm.go @@ -74,6 +74,11 @@ func ReqGmCommand(args []interface{}) error { case "setProgress": num, _ := strconv.Atoi(arg[1]) player.PlayMod.getLimitedTimeEventMod().Progress = num + case "setProgressReward": + for i := 1; i < 5; i++ { + player.PlayMod.getLimitedTimeEventMod().AddProgress(6) + } + player.PushClientRes(player.PlayMod.getLimitedTimeEventMod().ProgressBackData()) case "champshipGroup": G_GameLogicPtr.ChampshipMgrSend(&MsgMod.Msg{ Type: MsgMod.HANDLE_TYPE_CHAMPSHIP_GROUP, diff --git a/src/server/game/LimiteEventManager.go b/src/server/game/LimiteEventManager.go index 5a4cdc6b..14c0b1e8 100644 --- a/src/server/game/LimiteEventManager.go +++ b/src/server/game/LimiteEventManager.go @@ -1,16 +1,10 @@ package game import ( - "fmt" - "github.com/robfig/cron/v3" - "server/GoUtil" - "server/MergeConst" - "server/db" - "server/gamedata" - "strconv" - "strings" "time" + "github.com/robfig/cron/v3" + "server/pkg/github.com/name5566/leaf/timer" ) @@ -129,114 +123,5 @@ func (p *LimiteEventManager) GetIsHighRollerPersion() bool { // 1.宝箱雨 func (p *LimiteEventManager) InitManager() { - // 0 11 20 12 * - p.IsHighRoll = false - p.m_MapCronEntryIDs = map[int][]*LimitEventPeriod{} - c := cron.New() - LimiteCfg := gamedata.GetConfigByName("LimiteEvent") - WeekZero := p.GetSunDayZero() - timeStamp := time.Now().Unix() - - p.Mdispatr = timer.NewDispatcher(10) - for i := 0; i < LimiteCfg.NumRecord(); i++ { - record := LimiteCfg.Record(i).(*gamedata.LimiteEvent) - startStrr := record.StartTime - starts := strings.Split(startStrr, "|") - - DurStrr := record.Duration - Durs := strings.Split(DurStrr, "|") - - AddTimesStrr := record.AddTimes - ats := strings.Split(AddTimesStrr, "|") - - p.m_MapCronEntryIDs[record.Id] = []*LimitEventPeriod{} - for n := 0; n < len(starts); n++ { - LEP := &LimitEventPeriod{} - start := starts[n] - dur, _ := strconv.Atoi(Durs[n]) - addt, _ := strconv.Atoi(ats[n]) - LEP.StartCronID, _ = c.AddFunc(start, func() { - fmt.Println("Next: UTC", c.Entry(LEP.StartCronID).Next.Unix()) - fmt.Println("CronStr:" + LEP.CronStr) - cur := int32(time.Now().Unix()) - LEP.StartTime = int32(cur) - LEP.EndTime = int32(cur) + int32(dur) - if record.Id == 9 { - if G_GameLogicPtr.M_SvrGlobal.LimitCardSwapTime < LEP.StartTime { - card4Cfg, str4 := gamedata.GetRandomDifferenceSet(4, G_GameLogicPtr.M_SvrGlobal.Limit4CardExclude) - card5Cfg, str5 := gamedata.GetRandomDifferenceSet(5, G_GameLogicPtr.M_SvrGlobal.Limit5CardExclude) - G_GameLogicPtr.M_SvrGlobal.Limit4Card = int32(card4Cfg.Id) - G_GameLogicPtr.M_SvrGlobal.Limit5Card = int32(card5Cfg.Id) - G_GameLogicPtr.M_SvrGlobal.Limit4CardExclude = str4 - G_GameLogicPtr.M_SvrGlobal.Limit5CardExclude = str5 - G_GameLogicPtr.M_SvrGlobal.LimitCardSwapTime = LEP.StartTime - db.FormatAllMemUpdateDb(&G_GameLogicPtr.M_SvrGlobal, "t_server_global_data", "Id") - } - } - GoUtil.CallEvent(MergeConst.OpenNewLimitEvent, []interface{}{record.Id, cur, cur + int32(dur), record.Type}) - if record.Id == 4 { - p.IsHighRoll = true - } - go func() { - LeafTimer := p.Mdispatr.AfterFunc(time.Duration(dur)*time.Second, func() { - if record.Id == 4 { - p.IsHighRoll = false - } - }) - LEP.EndTimer = LeafTimer - - (<-p.Mdispatr.ChanTimer).Cb() - }() - }) - LEP.Duration = int32(dur) - LEP.CronStr = start - LEP.AddTimes = int32(addt) - p.m_MapCronEntryIDs[record.Id] = append(p.m_MapCronEntryIDs[record.Id], LEP) - } - } - c.Start() - for k, v := range p.m_MapCronEntryIDs { - // record := LimiteCfg.Index(k).(*gamedata.LimiteEvent) - key := k - for i := 0; i < len(v); i++ { - Schedule := c.Entry(v[i].StartCronID).Schedule - Next := Schedule.Next(time.Unix(WeekZero, 0)) - // fmt.Println("Next.Unix():" + strconv.Itoa(int(Next.Unix()))) - value := v[i] - if timeStamp >= Next.Unix() && timeStamp < Next.Unix()+int64(value.Duration) { - fmt.Println("CronStr:" + value.CronStr) - if key == 4 { - p.IsHighRoll = true - } - if key == 9 { - if G_GameLogicPtr.M_SvrGlobal.LimitCardSwapTime < int32(Next.Unix()) { - card4Cfg, str4 := gamedata.GetRandomDifferenceSet(4, G_GameLogicPtr.M_SvrGlobal.Limit4CardExclude) - card5Cfg, str5 := gamedata.GetRandomDifferenceSet(5, G_GameLogicPtr.M_SvrGlobal.Limit5CardExclude) - G_GameLogicPtr.M_SvrGlobal.Limit4Card = int32(card4Cfg.Id) - G_GameLogicPtr.M_SvrGlobal.Limit5Card = int32(card5Cfg.Id) - G_GameLogicPtr.M_SvrGlobal.Limit4CardExclude = str4 - G_GameLogicPtr.M_SvrGlobal.Limit5CardExclude = str5 - G_GameLogicPtr.M_SvrGlobal.LimitCardSwapTime = int32(Next.Unix()) - db.FormatAllMemUpdateDb(&G_GameLogicPtr.M_SvrGlobal, "t_server_global_data", "Id") - } - } - go func() { - delta := Next.Unix() + int64(value.Duration) - timeStamp - LeafTimer := p.Mdispatr.AfterFunc(time.Duration(delta)*time.Second, func() { - if key == 4 { - p.IsHighRoll = false - } - }) - value.EndTimer = LeafTimer - value.StartTime = int32(Next.Unix()) - value.EndTime = int32(Next.Unix()) + int32(value.Duration) - (<-p.Mdispatr.ChanTimer).Cb() - }() - } else { - - } - } - - } } diff --git a/src/server/game/LimitedTimeTrigger.go b/src/server/game/LimitedTimeTrigger.go index fba4dd35..366a19af 100644 --- a/src/server/game/LimitedTimeTrigger.go +++ b/src/server/game/LimitedTimeTrigger.go @@ -9,7 +9,8 @@ import ( // 限时事件触发器 func LimitedTimeEventTrigger(p *Player, AddEventId int) { - EndTime, TimeoutEvent, AddEvent := p.PlayMod.getLimitedTimeEventMod().Trigger() + Lv := p.GetPlayerBaseMod().GetLevel() + EndTime, TimeoutEvent, AddEvent := p.PlayMod.getLimitedTimeEventMod().Trigger(Lv) remainingTime := GoUtil.NextHourRemain() EndTime = GoUtil.IfTrue(EndTime > 0, min(EndTime, int(remainingTime)), int(remainingTime)).(int) if AddEventId != 0 { diff --git a/src/server/game/Player.go b/src/server/game/Player.go index 55c1912e..8df0f4bd 100644 --- a/src/server/game/Player.go +++ b/src/server/game/Player.go @@ -18,6 +18,7 @@ import ( MsgMod "server/game/mod/msg" "server/game/mod/quest" "server/msg" + telog "server/thinkdata" "strconv" "sync" "time" @@ -83,6 +84,7 @@ func (p *Player) Stop() { } func (p *Player) CallEvent(Duration time.Duration, F func(), Label string) { + log.Debug("CallEvent:%s", Label) if v, ok := p.timerList[Label]; ok { v.Stop() } @@ -359,6 +361,8 @@ func (p *Player) ZeroUpdate(a []interface{}) { p.PlayMod.getEndlessMod().ZeroUpdate(p.PlayMod.getChargeMod().GetMaxCharge()) p.PushClientRes(p.PlayMod.getEndlessMod().BackData()) + p.PlayMod.getChampshipMod().ZeroUpdate() + p.PlayMod.save() } // 周更新 @@ -502,10 +506,22 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { if v.Num > 0 && Label != "" { ResItem = append(ResItem, &msg.ItemInfo{Id: int32(v.Id), Num: int32(v.Num)}) } + var change_type string + if v.Num < 0 { + change_type = "gain" + } else { + change_type = "consume" + } IType := itemCfg.GetItemType(v.Id) switch IType { case item.ITEM_TYPE_ENERGY: // 能量 err := p.GetPlayerBaseMod().AddEnergy(v.Num) + p.TeLog("asset_change", map[string]interface{}{ + "item_id": v.Id, + "change_type": change_type, + "change_num": v.Num, + "change_after": p.GetPlayerBaseMod().GetEnergy(), + }) is_update = true if err != nil { return err @@ -516,12 +532,24 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { if err != nil { return err } + p.TeLog("asset_change", map[string]interface{}{ + "item_id": v.Id, + "change_type": change_type, + "change_num": v.Num, + "change_after": p.GetPlayerBaseMod().GetStar(), + }) case item.ITEM_TYPE_DIAMOND: // 钻石 err := p.GetPlayerBaseMod().AddDiamond(v.Num) is_update = true if err != nil { return err } + p.TeLog("asset_change", map[string]interface{}{ + "item_id": v.Id, + "change_type": change_type, + "change_num": v.Num, + "change_after": p.GetPlayerBaseMod().GetDiamond(), + }) case item.ITEM_TYPE_CARD_PACK: // 卡包 CardMod := p.PlayMod.getCardMod() Effect := itemCfg.GetItemEffect(v.Id) @@ -546,9 +574,6 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { } p.PushClientRes(ChessMod.BackData()) case item.ITEM_TYPE_LIMIED_TIME_EVENT: // 限时事件 - if p.GetPlayerBaseMod().GetLevel() < 6 { // 等级小于6级不触发 - continue - } EffectList := itemCfg.GetItemEffectList(v.Id) LimitedTimeEventMod := p.PlayMod.getLimitedTimeEventMod() if len(EffectList) < 2 { @@ -612,8 +637,7 @@ func (p *Player) LoginBackData() { p.PushClientRes(p.PlayMod.mod_list.PiggyBank.BackData()) p.PushClientRes(p.GetPlayerBaseMod().BackAsset()) p.PushClientRes(p.GetPlayerBaseMod().BackKv()) - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(p.M_DwUin)) - p.PushClientRes(p.PlayMod.mod_list.Champship.BackData(MyRank)) + BackChampship(p) BackUserInfo(p) } @@ -726,3 +750,7 @@ func (p *Player) AddLog(Uid int, Type int, Param string) { }, }) } + +func (p *Player) TeLog(Type string, Param map[string]interface{}) { + telog.Te.Track(p.GetPlayerBaseMod().GetName(), p.GetPlayerBaseMod().GetName(), Type, Param) +} diff --git a/src/server/game/PlayerBaseMod.go b/src/server/game/PlayerBaseMod.go index 1000afbb..5659e61a 100644 --- a/src/server/game/PlayerBaseMod.go +++ b/src/server/game/PlayerBaseMod.go @@ -538,7 +538,9 @@ func (p *PlayerBaseData) AddExp(exp int) (int, error) { ChargeMod := p.M_Player.PlayMod.getChargeMod() ChargeMod.TriggerChargeUnlock(int(p.Data.Level), ChessMod.GetEmitList()) p.M_Player.PushClientRes(ChargeMod.BackData()) - telog.Te.Track(p.Data.UserName, p.Data.UserName, "level_up", map[string]interface{}{}) + telog.Te.Track(p.Data.UserName, p.Data.UserName, "level_up", map[string]interface{}{ + "after_level": p.Data.Level, + }) } p.M_Player.PushClientRes(p.BackAsset()) return upLv, nil diff --git a/src/server/game/PlayerChessMod.go b/src/server/game/PlayerChessMod.go index 1c72b560..d47f8748 100644 --- a/src/server/game/PlayerChessMod.go +++ b/src/server/game/PlayerChessMod.go @@ -138,6 +138,7 @@ func (p *PlayerChessData) ResPlayerChessData(player *Player) { agent := p.GetPlayer().GetAgentByPlayer() Msg := &p.Data Msg.ChessList = p.M_Player.PlayMod.getChessMod().BackData().ChessList + Msg.MChessData = p.M_Player.PlayMod.getChessMod().ChessMap data, _ := proto.Marshal(Msg) G_getGameLogic().PackResInfo(agent, "ResPlayerChessData", data) } @@ -178,7 +179,7 @@ func (p *PlayerChessData) UpdatePlayerChessData(buf []byte) error { p.M_Player.SendErrClienRes(res) return fmt.Errorf("棋子数据不一致") } - + p.M_Player.PlayMod.getChessMod().ChessMap = update.MChessData return nil } @@ -193,6 +194,7 @@ func (p *PlayerChessData) UpdateChessData(MChessData map[string]int32) error { p.M_Player.SendErrClienRes(res) return fmt.Errorf("棋子数据不一致") } + p.M_Player.PlayMod.getChessMod().ChessMap = MChessData return nil } @@ -276,6 +278,10 @@ func (p *PlayerChessData) HandleChess(handle_list []*msg.ChessHandle) error { if err != nil { return err } + p.M_Player.TeLog("sell_item", map[string]interface{}{ + "merge_item_id": ChessId, + "get_star_num": items[0].Num, + }) itemList = item.Merge(itemList, items) case msg.HANDLE_TYPE_REMOVE: //移除棋子 ChessMod.RemoveChess(ChessId) diff --git a/src/server/game/PlayerFunc.go b/src/server/game/PlayerFunc.go index bf5fbf67..5ff3f06b 100644 --- a/src/server/game/PlayerFunc.go +++ b/src/server/game/PlayerFunc.go @@ -42,11 +42,11 @@ func handle(p *Player, m *msg.Msg) error { switch m.Type { case msg.HANDLE_TYPE_DEL, msg.HANDLE_TYPE_APPLY, msg.HADNLE_TYPE_AGREE, msg.HANDLE_TYPE_REQ_CARD: return HandleFriendMsg(p, m) - case msg.HANDLE_TYPE_INVITE_ADD_FRIEND: + case msg.HANDLE_TYPE_INVITE_ADD_FRIEND: // 邀请添加好友 FriendMod := p.PlayMod.getFriendMod() FriendMod.AddFriend(m.From) p.PlayMod.save() - case msg.HANDLE_TYPE_INVITE_FRIEND: + case msg.HANDLE_TYPE_INVITE_FRIEND: // 邀请好友 InviteMod := p.PlayMod.getInviteMod() InviteMod.AddInvite(m.From) p.PlayMod.save() @@ -138,8 +138,7 @@ func handle(p *Player, m *msg.Msg) error { p.PlayMod.save() p.PushClientRes(CardMod.NotifyCard()) case msg.HANDLE_TYPE_CHAMPSHIP_NOTIFY: // 锦标赛排名变动通知 - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(p.M_DwUin)) - p.PushClientRes(p.PlayMod.getChampshipMod().BackData(MyRank)) + BackChampship(p) case msg.HANDLE_TYPE_MAIL: // 邮件操作 MailMod := p.PlayMod.getMailMod() if m.Extra == nil { @@ -181,24 +180,29 @@ func HandleFriendMsg(p *Player, m *msg.Msg) error { p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, + Time: int32(GoUtil.Now()), }) case msg.HADNLE_TYPE_AGREE: // 同意好友申请 FriendMod.AgreeApply(m.From) p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, + Time: int32(GoUtil.Now()), }) p.AddLog(m.From, friend.LOG_TYPE_FRIEND_BECOME, "") case msg.HANDLE_TYPE_DEL: // 删除好友 FriendMod.DelFriend(m.From) + p.AddLog(m.From, friend.LOG_TYPE_FRIEND_APPLY, "") p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_APPLY, + Time: int32(GoUtil.Now()), }) case msg.HANDLE_TYPE_REFUSE: // 拒绝好友申请 p.PushClientRes(&proto.ResFriendApplyNotify{ Player: PlayerSimpleData, Type: friend.FRIEND_NOTIFY_REFUSE, + Time: int32(GoUtil.Now()), }) case msg.HANDLE_TYPE_REQ_CARD: // 卡牌申请 CardInfo := m.Extra.(*card.CardInfo) @@ -249,11 +253,14 @@ func FriendListBackData(p *Player) { func FriendApplyBackData(p *Player) { FriendMod := p.PlayMod.getFriendMod() - var al []*proto.ResPlayerSimple - for k := range FriendMod.Apply { + var al []*proto.ResFriendApplyInfo + for k, v := range FriendMod.ApplyList { ps := G_GameLogicPtr.GetResSimplePlayerByUid(k) if ps != nil { - al = append(al, ps) + al = append(al, &proto.ResFriendApplyInfo{ + Player: ps, + Time: int32(v), + }) } } p.PushClientRes(&proto.ResFriendApply{ @@ -381,3 +388,10 @@ func GetCardInfoMsg(CardInfo *card.CardInfo) *proto.ResFriendCard { Id: CardInfo.Id, } } + +func BackChampship(p *Player) { + ChampshipMod := p.PlayMod.getChampshipMod() + MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(p.M_DwUin)) + MyPreRank := G_GameLogicPtr.ChampshipMgr.getLastMyRank(int(p.M_DwUin)) + p.PushClientRes(ChampshipMod.BackData(MyRank, MyPreRank)) +} diff --git a/src/server/game/PlayerMod.go b/src/server/game/PlayerMod.go index 3a55c27f..e9dc6f3a 100644 --- a/src/server/game/PlayerMod.go +++ b/src/server/game/PlayerMod.go @@ -109,13 +109,6 @@ func (p *PlayerModData) InitMod() (bool, error) { } p.ModList = playerModList is_update := false - // 初始化基础模块 - if p.ModList.Base == (base.Base{}) { - var baseMod base.Base - baseMod.InitData() - p.ModList.Base = baseMod - is_update = true - } // 初始化棋盘模块 @@ -125,6 +118,7 @@ func (p *PlayerModData) InitMod() (bool, error) { p.ModList.Chess = chessMod is_update = true } + p.ModList.Handbook.InitData() p.ModList.Order.InitData() p.ModList.Decorate.InitData() @@ -134,7 +128,7 @@ func (p *PlayerModData) InitMod() (bool, error) { p.ModList.DailyTask.InitData() p.ModList.Face.InitData() p.ModList.Avatar.InitData() - p.ModList.Base.InitData() + p.ModList.Base.InitData(int(p.Data.DwUin)) p.ModList.SevenLogin.InitData() p.ModList.Activity.InitData() p.ModList.LimitedTimeEvent.InitData() @@ -157,7 +151,11 @@ func (p *PlayerMod) save() { } func (p *PlayerMod) ClearData(player *Player) { - + ChessMod := p.getChessMod() + if len(ChessMod.ChessMap) > 0 && len(ChessMod.ChessList) != len(ChessMod.ChessMap) { + log.Debug("uid: %d, SaveData, chess error ", player.M_DwUin) + return + } if p.is_update { //序列化模块 var buf bytes.Buffer diff --git a/src/server/game/RegisterNetworkFunc.go b/src/server/game/RegisterNetworkFunc.go index 5040f7ef..d7f34412 100644 --- a/src/server/game/RegisterNetworkFunc.go +++ b/src/server/game/RegisterNetworkFunc.go @@ -1953,6 +1953,10 @@ func ReqRewardOrder(args []interface{}) error { return err } + player.TeLog("order_finish", map[string]interface{}{ + "order_id": int(req.OrderId), + }) + Lv := player.GetPlayerBaseMod().GetLevel() Emit := ChessMod.GetEmitList() OrderMod.CreateOrder(Lv, Emit) @@ -1967,12 +1971,11 @@ func ReqRewardOrder(args []interface{}) error { // 限时事件增加进度 LimitedTimeEventMod.AddProgress(player.GetPlayerBaseMod().GetLevel()) - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(player.M_DwUin)) player.HandleInChampshipRank() player.PlayMod.save() player.PushClientRes(PiggyBankMod.BackData()) player.PushClientRes(OrderMod.BackData()) - player.PushClientRes(ChampshipMod.BackData(MyRank)) + BackChampship(player) player.PushClientRes(LimitedTimeEventMod.BackData()) player.PushClientRes(LimitedTimeEventMod.ProgressBackData()) return nil @@ -2021,7 +2024,11 @@ func ReqDecorate(args []interface{}) error { }) return err } - + if DecorateMod.GetAreaId() != AreaId { // 解锁上报 + player.TeLog("plot_unlock", map[string]interface{}{ + "plot_id": AreaId, + }) + } if UpLev > 0 { //升级 获取奖励 Items := userCfg.GetLevUpReward(UpLev) err = player.HandleItem(Items, "LevUpReward") @@ -2786,6 +2793,7 @@ func ReqDelFriend(args []interface{}) error { Code: msg.RES_CODE_SUCCESS, Uid: req.Uid, }) + player.AddLog(Uid, friend.LOG_TYPE_FRIEND_DELETE, "") FriendListBackData(player) return nil } @@ -3395,6 +3403,12 @@ func ReqBuyChessShop(args []interface{}) error { }) return err } + player.TeLog("store_buy", map[string]interface{}{ + "item_id": int(req.Id), + "change_num": 1, + "cost_type": "diamond", + "cost_num": Item[0].Num, + }) player.PlayMod.save() player.PushClientRes(ChargeMod.BackData()) player.PushClientRes(&msg.ResBuyChessShop{ @@ -3530,9 +3544,8 @@ func ReqChampshipReward(args []interface{}) error { }) return err } - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(player.M_DwUin)) player.PlayMod.save() - player.PushClientRes(ChampshipMod.BackData(MyRank)) + BackChampship(player) player.PushClientRes(&msg.ResChampshipReward{ Code: msg.RES_CODE_SUCCESS, }) @@ -3660,8 +3673,7 @@ func ReqChampshipRankReward(args []interface{}) error { return err } player.PlayMod.save() - MyRank := G_GameLogicPtr.ChampshipMgr.getMyRank(int(player.M_DwUin)) - player.PushClientRes(ChampshipMod.BackData(MyRank)) + BackChampship(player) player.PushClientRes(&msg.ResChampshipRankReward{ Code: msg.RES_CODE_SUCCESS, }) @@ -3781,7 +3793,38 @@ func ReqAutoAddInviteFriend(args []interface{}) error { ResultCode: 1, }) G_GameLogicPtr.FriendMgrSend(&MsqMod.Msg{ + From: int(player.M_DwUin), + To: int(req.Id), Type: MsqMod.HANDLE_TYPE_INVITE_ADD_FRIEND, }) return nil } + +func ReqSelectLimitEvent(args []interface{}) error { + _, player, buf := ParseArgs(args) + req := &msg.ReqSelectLimitEvent{} + proto.Unmarshal(buf, req) + LimitedTimeEventMod := player.PlayMod.getLimitedTimeEventMod() + Items, err := LimitedTimeEventMod.SelectProgressReward(int(req.Id)) + if err != nil { + player.SendErrClienRes(&msg.ResSelectLimitEvent{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + return err + } + err = player.HandleItem(Items, "SelectLimitEvent") + if err != nil { + player.SendErrClienRes(&msg.ResSelectLimitEvent{ + Code: msg.RES_CODE_FAIL, + Msg: err.Error(), + }) + } + player.PlayMod.save() + player.PushClientRes(LimitedTimeEventMod.BackData()) + player.PushClientRes(LimitedTimeEventMod.ProgressBackData()) + player.PushClientRes(&msg.ResSelectLimitEvent{ + Code: msg.RES_CODE_SUCCESS, + }) + return nil +} diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index 98dcaba4..129e22ad 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -1,6 +1,7 @@ package base import ( + "fmt" baseCfg "server/conf/base" "server/game/mod/item" "server/msg" @@ -18,10 +19,13 @@ type Base struct { FacebookUrl string } -func (b *Base) InitData() { +func (b *Base) InitData(Uid int) { // b.EnergyMul = 1 // b.IsFirstBuy = false // b.EnergyBuy = 0 + if b.NickName == "" { + b.NickName = fmt.Sprintf("Player_%d", Uid) + } } func (b *Base) GetNickName() string { diff --git a/src/server/game/mod/champship/Champship.go b/src/server/game/mod/champship/Champship.go index 2ea7af7e..f9c5871e 100644 --- a/src/server/game/mod/champship/Champship.go +++ b/src/server/game/mod/champship/Champship.go @@ -55,13 +55,24 @@ func (c *ChampshipMod) GetReward() []*item.Item { return Items } -func (c *ChampshipMod) BackData(MyRank int) *msg.ResChampship { +func (c *ChampshipMod) BackData(MyRank, MyPreRank int) *msg.ResChampship { + RankReward := 0 + if c.RankReward { + RankReward = 2 + } else { + if MyPreRank >= 15 { + RankReward = 1 + } + } + Status := GoUtil.IfTrue(GoUtil.Now()-GoUtil.ZeroTimestamp() < 1800, 0, 1) return &msg.ResChampship{ - Score: int32(c.Score), - Reward: int32(c.Reward), - EndTime: int32(GoUtil.ZeroTimestamp() + 86400), // 零点结束 - Period: int32(GoUtil.GetServerOpenDay()), - Rank: int32(MyRank), + Score: int32(c.Score), + Reward: int32(c.Reward), + EndTime: int32(GoUtil.ZeroTimestamp() + 86400), // 零点结束 + Period: int32(GoUtil.GetServerOpenDay()), + Rank: int32(MyRank), + RankReward: int32(RankReward), + Status: int32(Status.(int)), } } diff --git a/src/server/game/mod/chess/Chess.go b/src/server/game/mod/chess/Chess.go index 3db96145..1034ba78 100644 --- a/src/server/game/mod/chess/Chess.go +++ b/src/server/game/mod/chess/Chess.go @@ -21,6 +21,7 @@ type ChessBorad struct { EmitList map[int]int ChessBuff []int ChessBag ChessBag + ChessMap map[string]int32 } type ChessBag struct { @@ -64,6 +65,9 @@ func (cb *ChessBorad) ver() { cb.ChessBag.List[i] = ChessBagGrid{} } } + if cb.ChessMap == nil { + cb.ChessMap = make(map[string]int32) + } } // 棋子合成 diff --git a/src/server/game/mod/dailyTask/DailyFunc.go b/src/server/game/mod/dailyTask/DailyFunc.go index 9fca1124..05a76b13 100644 --- a/src/server/game/mod/dailyTask/DailyFunc.go +++ b/src/server/game/mod/dailyTask/DailyFunc.go @@ -45,6 +45,7 @@ func randJackpot(jackpot map[int]dailyTaskCfg.Jackpot, num int) map[int][]*item. } return r } + t++ if t > 100 { return r } diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index 4e450ec1..95edd8c3 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -7,7 +7,7 @@ import ( type FriendMod struct { FriendList map[int]struct{} // 好友列表 - Apply map[int]struct{} // 请求列表 + ApplyList map[int]int64 // 请求列表 Card map[string]*card.CardInfo // 收到的申请交换 Log []*LogInfo // 日志 AutoId int @@ -25,6 +25,7 @@ const ( LOG_TYPE_CARD_SELECT_SEND = 9 // 选择卡牌交换 LOG_TYPE_CARD_EX_SUCCESS_1 = 10 // 卡牌交换成功 LOG_TYPE_CARD_EX_SUCCESS_2 = 11 // 卡牌交换成功 + LOG_TYPE_FRIEND_DELETE = 14 // 删除好友 ) const ( @@ -46,8 +47,8 @@ func (f *FriendMod) InitData() { if f.FriendList == nil { f.FriendList = make(map[int]struct{}) } - if f.Apply == nil { - f.Apply = make(map[int]struct{}) + if f.ApplyList == nil { + f.ApplyList = make(map[int]int64) } if f.Card == nil { f.Card = make(map[string]*card.CardInfo) @@ -56,7 +57,7 @@ func (f *FriendMod) InitData() { func (f *FriendMod) AddFriend(id int) { f.FriendList[id] = struct{}{} - delete(f.Apply, id) + delete(f.ApplyList, id) } func (f *FriendMod) GetCardInfo(Id string) *card.CardInfo { @@ -85,21 +86,21 @@ func (f *FriendMod) CheckFriend(Uid int) bool { } func (f *FriendMod) RefuseApply(id int) { - delete(f.Apply, id) + delete(f.ApplyList, id) } func (f *FriendMod) CheckApply(id int) bool { - _, ok := f.Apply[id] + _, ok := f.ApplyList[id] return ok } func (f *FriendMod) AddFriendApply(Uid int) { - f.Apply[Uid] = struct{}{} + f.ApplyList[Uid] = GoUtil.Now() } func (f *FriendMod) AgreeApply(UId int) { f.AddFriend(UId) - delete(f.Apply, UId) + delete(f.ApplyList, UId) } func (f *FriendMod) AddLog(Uid, Type int, Param string) int { diff --git a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go index 76737739..da752813 100644 --- a/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go +++ b/src/server/game/mod/limitedTimeEvent/LimitedTimeEvent.go @@ -64,7 +64,10 @@ func (l *LimitedTimeEventMod) CheckExist(EventId int) bool { } // 触发限时事件 -func (l *LimitedTimeEventMod) Trigger() (int, []int, []int) { +func (l *LimitedTimeEventMod) Trigger(Lv int) (int, []int, []int) { + if Lv < 4 { + return 0, nil, nil + } TriggerEvent := limitedTimeEventCfg.GetLimitedTimeEventCfg() TimeoutEvent := make([]int, 0) AddEvent := make([]int, 0) @@ -144,9 +147,14 @@ func (l *LimitedTimeEventMod) BackData() *msg.ResLimitEvent { } func (l *LimitedTimeEventMod) ProgressBackData() *msg.ResLimitEventProgress { + r := make(map[int32]int32) + for k, v := range l.ProgressReward { + Type := limitedTimeEventCfg.GetProgressRewardType(v) + r[int32(k)] = int32(Type) + } return &msg.ResLimitEventProgress{ Progress: int32(l.Progress), - ProgressReward: GoUtil.MapIntToInt32(l.ProgressReward), + ProgressReward: r, } } @@ -211,8 +219,7 @@ func (l *LimitedTimeEventMod) AddProgress(Lv int) { } l.Progress++ ProgressMax := limitedTimeEventCfg.GetProgressMax() - if l.Progress >= ProgressMax { - l.Progress = 0 + if l.Progress == ProgressMax { SelectNum := limitedTimeEventCfg.GetProgressSelectNum(Lv) RandMap := limitedTimeEventCfg.GetProgressRewardRand(Lv) r := GoUtil.RandMapNum(RandMap, SelectNum) @@ -233,6 +240,7 @@ func (l *LimitedTimeEventMod) SelectProgressReward(Id int) ([]*item.Item, error) Item := limitedTimeEventCfg.GetProgressReward(RewardId) l.LastSelect = RewardId l.ProgressReward = make(map[int]int) + l.Progress = 0 return Item, nil } diff --git a/src/server/game/mod/msg/Msg.go b/src/server/game/mod/msg/Msg.go index 2c69828b..15e018df 100644 --- a/src/server/game/mod/msg/Msg.go +++ b/src/server/game/mod/msg/Msg.go @@ -44,11 +44,12 @@ const ( // 邮件操作 HANDLE_TYPE_MAIL = 201 //邮件操作 // 锦标赛 - HANDLE_TYPE_CHAMPSHIP_GROUP = 301 //锦标赛分组操作 - HANDLE_TYPE_CHAMPSHIP_INRANK = 302 //锦标赛入榜操作 - HANDLE_TYPE_CHAMPSHIP_AI = 303 //锦标赛入榜操作 - HANDLE_TYPE_CHAMPSHIP_NOTIFY = 304 //锦标赛排名变动通知 - HANDLE_TYPE_CHAMPSHIP_ZERO = 305 //锦标赛0点更新 + HANDLE_TYPE_CHAMPSHIP_GROUP = 301 //锦标赛分组操作 + HANDLE_TYPE_CHAMPSHIP_INRANK = 302 //锦标赛入榜操作 + HANDLE_TYPE_CHAMPSHIP_AI = 303 //锦标赛入榜操作 + HANDLE_TYPE_CHAMPSHIP_NOTIFY = 304 //锦标赛排名变动通知 + HANDLE_TYPE_CHAMPSHIP_ZERO = 305 //锦标赛0点更新 + HANDLE_TYPE_CHAMPSHIP_NOTIFY2 = 306 //锦标赛0.30点通知 //server mod handle SERVER_ZERO_UPDATE = 1000 //zero update ) diff --git a/src/server/msg/Gameapi.pb.go b/src/server/msg/Gameapi.pb.go index 0db2684f..52980ef2 100644 --- a/src/server/msg/Gameapi.pb.go +++ b/src/server/msg/Gameapi.pb.go @@ -26862,6 +26862,104 @@ func (x *ResLimitEventReward) GetMsg() string { return "" } +type ReqSelectLimitEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` +} + +func (x *ReqSelectLimitEvent) Reset() { + *x = ReqSelectLimitEvent{} + mi := &file_Gameapi_proto_msgTypes[460] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReqSelectLimitEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReqSelectLimitEvent) ProtoMessage() {} + +func (x *ReqSelectLimitEvent) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[460] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReqSelectLimitEvent.ProtoReflect.Descriptor instead. +func (*ReqSelectLimitEvent) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{460} +} + +func (x *ReqSelectLimitEvent) GetId() int32 { + if x != nil { + return x.Id + } + return 0 +} + +type ResSelectLimitEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code RES_CODE `protobuf:"varint,1,opt,name=Code,proto3,enum=tutorial.RES_CODE" json:"Code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` +} + +func (x *ResSelectLimitEvent) Reset() { + *x = ResSelectLimitEvent{} + mi := &file_Gameapi_proto_msgTypes[461] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResSelectLimitEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResSelectLimitEvent) ProtoMessage() {} + +func (x *ResSelectLimitEvent) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[461] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResSelectLimitEvent.ProtoReflect.Descriptor instead. +func (*ResSelectLimitEvent) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{461} +} + +func (x *ResSelectLimitEvent) GetCode() RES_CODE { + if x != nil { + return x.Code + } + return RES_CODE_FAIL +} + +func (x *ResSelectLimitEvent) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + type LimitEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -26873,7 +26971,7 @@ type LimitEvent struct { func (x *LimitEvent) Reset() { *x = LimitEvent{} - mi := &file_Gameapi_proto_msgTypes[460] + mi := &file_Gameapi_proto_msgTypes[462] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26885,7 +26983,7 @@ func (x *LimitEvent) String() string { func (*LimitEvent) ProtoMessage() {} func (x *LimitEvent) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[460] + mi := &file_Gameapi_proto_msgTypes[462] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26898,7 +26996,7 @@ func (x *LimitEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LimitEvent.ProtoReflect.Descriptor instead. func (*LimitEvent) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{460} + return file_Gameapi_proto_rawDescGZIP(), []int{462} } func (x *LimitEvent) GetEndTime() int32 { @@ -26928,7 +27026,7 @@ type LimitEventNotify struct { func (x *LimitEventNotify) Reset() { *x = LimitEventNotify{} - mi := &file_Gameapi_proto_msgTypes[461] + mi := &file_Gameapi_proto_msgTypes[463] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -26940,7 +27038,7 @@ func (x *LimitEventNotify) String() string { func (*LimitEventNotify) ProtoMessage() {} func (x *LimitEventNotify) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[461] + mi := &file_Gameapi_proto_msgTypes[463] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -26953,7 +27051,7 @@ func (x *LimitEventNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use LimitEventNotify.ProtoReflect.Descriptor instead. func (*LimitEventNotify) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{461} + return file_Gameapi_proto_rawDescGZIP(), []int{463} } func (x *LimitEventNotify) GetId() int32 { @@ -26992,7 +27090,7 @@ type ReqLimitSenceReward struct { func (x *ReqLimitSenceReward) Reset() { *x = ReqLimitSenceReward{} - mi := &file_Gameapi_proto_msgTypes[462] + mi := &file_Gameapi_proto_msgTypes[464] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27004,7 +27102,7 @@ func (x *ReqLimitSenceReward) String() string { func (*ReqLimitSenceReward) ProtoMessage() {} func (x *ReqLimitSenceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[462] + mi := &file_Gameapi_proto_msgTypes[464] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27017,7 +27115,7 @@ func (x *ReqLimitSenceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqLimitSenceReward.ProtoReflect.Descriptor instead. func (*ReqLimitSenceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{462} + return file_Gameapi_proto_rawDescGZIP(), []int{464} } type ResLimitSenceReward struct { @@ -27031,7 +27129,7 @@ type ResLimitSenceReward struct { func (x *ResLimitSenceReward) Reset() { *x = ResLimitSenceReward{} - mi := &file_Gameapi_proto_msgTypes[463] + mi := &file_Gameapi_proto_msgTypes[465] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27043,7 +27141,7 @@ func (x *ResLimitSenceReward) String() string { func (*ResLimitSenceReward) ProtoMessage() {} func (x *ResLimitSenceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[463] + mi := &file_Gameapi_proto_msgTypes[465] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27056,7 +27154,7 @@ func (x *ResLimitSenceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResLimitSenceReward.ProtoReflect.Descriptor instead. func (*ResLimitSenceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{463} + return file_Gameapi_proto_rawDescGZIP(), []int{465} } func (x *ResLimitSenceReward) GetCode() RES_CODE { @@ -27083,7 +27181,7 @@ type ResChessRainReward struct { func (x *ResChessRainReward) Reset() { *x = ResChessRainReward{} - mi := &file_Gameapi_proto_msgTypes[464] + mi := &file_Gameapi_proto_msgTypes[466] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27095,7 +27193,7 @@ func (x *ResChessRainReward) String() string { func (*ResChessRainReward) ProtoMessage() {} func (x *ResChessRainReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[464] + mi := &file_Gameapi_proto_msgTypes[466] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27108,7 +27206,7 @@ func (x *ResChessRainReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChessRainReward.ProtoReflect.Descriptor instead. func (*ResChessRainReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{464} + return file_Gameapi_proto_rawDescGZIP(), []int{466} } func (x *ResChessRainReward) GetChest() int32 { @@ -27129,7 +27227,7 @@ type ReqFastProduceReward struct { func (x *ReqFastProduceReward) Reset() { *x = ReqFastProduceReward{} - mi := &file_Gameapi_proto_msgTypes[465] + mi := &file_Gameapi_proto_msgTypes[467] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27141,7 +27239,7 @@ func (x *ReqFastProduceReward) String() string { func (*ReqFastProduceReward) ProtoMessage() {} func (x *ReqFastProduceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[465] + mi := &file_Gameapi_proto_msgTypes[467] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27154,7 +27252,7 @@ func (x *ReqFastProduceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFastProduceReward.ProtoReflect.Descriptor instead. func (*ReqFastProduceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{465} + return file_Gameapi_proto_rawDescGZIP(), []int{467} } func (x *ReqFastProduceReward) GetEnergy() int32 { @@ -27175,7 +27273,7 @@ type ResFastProduceReward struct { func (x *ResFastProduceReward) Reset() { *x = ResFastProduceReward{} - mi := &file_Gameapi_proto_msgTypes[466] + mi := &file_Gameapi_proto_msgTypes[468] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27187,7 +27285,7 @@ func (x *ResFastProduceReward) String() string { func (*ResFastProduceReward) ProtoMessage() {} func (x *ResFastProduceReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[466] + mi := &file_Gameapi_proto_msgTypes[468] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27200,7 +27298,7 @@ func (x *ResFastProduceReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFastProduceReward.ProtoReflect.Descriptor instead. func (*ResFastProduceReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{466} + return file_Gameapi_proto_rawDescGZIP(), []int{468} } func (x *ResFastProduceReward) GetCode() RES_CODE { @@ -27228,7 +27326,7 @@ type ReqSearchPlayer struct { func (x *ReqSearchPlayer) Reset() { *x = ReqSearchPlayer{} - mi := &file_Gameapi_proto_msgTypes[467] + mi := &file_Gameapi_proto_msgTypes[469] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27240,7 +27338,7 @@ func (x *ReqSearchPlayer) String() string { func (*ReqSearchPlayer) ProtoMessage() {} func (x *ReqSearchPlayer) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[467] + mi := &file_Gameapi_proto_msgTypes[469] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27253,7 +27351,7 @@ func (x *ReqSearchPlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSearchPlayer.ProtoReflect.Descriptor instead. func (*ReqSearchPlayer) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{467} + return file_Gameapi_proto_rawDescGZIP(), []int{469} } func (x *ReqSearchPlayer) GetUid() string { @@ -27274,7 +27372,7 @@ type ResSearchPlayer struct { func (x *ResSearchPlayer) Reset() { *x = ResSearchPlayer{} - mi := &file_Gameapi_proto_msgTypes[468] + mi := &file_Gameapi_proto_msgTypes[470] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27286,7 +27384,7 @@ func (x *ResSearchPlayer) String() string { func (*ResSearchPlayer) ProtoMessage() {} func (x *ResSearchPlayer) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[468] + mi := &file_Gameapi_proto_msgTypes[470] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27299,7 +27397,7 @@ func (x *ResSearchPlayer) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSearchPlayer.ProtoReflect.Descriptor instead. func (*ResSearchPlayer) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{468} + return file_Gameapi_proto_rawDescGZIP(), []int{470} } func (x *ResSearchPlayer) GetCode() int32 { @@ -27334,7 +27432,7 @@ type ResPlayerSimple struct { func (x *ResPlayerSimple) Reset() { *x = ResPlayerSimple{} - mi := &file_Gameapi_proto_msgTypes[469] + mi := &file_Gameapi_proto_msgTypes[471] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27346,7 +27444,7 @@ func (x *ResPlayerSimple) String() string { func (*ResPlayerSimple) ProtoMessage() {} func (x *ResPlayerSimple) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[469] + mi := &file_Gameapi_proto_msgTypes[471] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27359,7 +27457,7 @@ func (x *ResPlayerSimple) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayerSimple.ProtoReflect.Descriptor instead. func (*ResPlayerSimple) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{469} + return file_Gameapi_proto_rawDescGZIP(), []int{471} } func (x *ResPlayerSimple) GetUid() int32 { @@ -27440,7 +27538,7 @@ type ResPlayerRank struct { func (x *ResPlayerRank) Reset() { *x = ResPlayerRank{} - mi := &file_Gameapi_proto_msgTypes[470] + mi := &file_Gameapi_proto_msgTypes[472] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27452,7 +27550,7 @@ func (x *ResPlayerRank) String() string { func (*ResPlayerRank) ProtoMessage() {} func (x *ResPlayerRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[470] + mi := &file_Gameapi_proto_msgTypes[472] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27465,7 +27563,7 @@ func (x *ResPlayerRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPlayerRank.ProtoReflect.Descriptor instead. func (*ResPlayerRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{470} + return file_Gameapi_proto_rawDescGZIP(), []int{472} } func (x *ResPlayerRank) GetUid() int32 { @@ -27524,7 +27622,7 @@ type ResFriendLog struct { func (x *ResFriendLog) Reset() { *x = ResFriendLog{} - mi := &file_Gameapi_proto_msgTypes[471] + mi := &file_Gameapi_proto_msgTypes[473] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27536,7 +27634,7 @@ func (x *ResFriendLog) String() string { func (*ResFriendLog) ProtoMessage() {} func (x *ResFriendLog) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[471] + mi := &file_Gameapi_proto_msgTypes[473] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27549,7 +27647,7 @@ func (x *ResFriendLog) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendLog.ProtoReflect.Descriptor instead. func (*ResFriendLog) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{471} + return file_Gameapi_proto_rawDescGZIP(), []int{473} } func (x *ResFriendLog) GetPlayer() *ResPlayerSimple { @@ -27597,7 +27695,7 @@ type NotifyFriendLog struct { func (x *NotifyFriendLog) Reset() { *x = NotifyFriendLog{} - mi := &file_Gameapi_proto_msgTypes[472] + mi := &file_Gameapi_proto_msgTypes[474] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27609,7 +27707,7 @@ func (x *NotifyFriendLog) String() string { func (*NotifyFriendLog) ProtoMessage() {} func (x *NotifyFriendLog) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[472] + mi := &file_Gameapi_proto_msgTypes[474] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27622,7 +27720,7 @@ func (x *NotifyFriendLog) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyFriendLog.ProtoReflect.Descriptor instead. func (*NotifyFriendLog) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{472} + return file_Gameapi_proto_rawDescGZIP(), []int{474} } func (x *NotifyFriendLog) GetInfo() *ResFriendLog { @@ -27642,7 +27740,7 @@ type NotifyFriendCard struct { func (x *NotifyFriendCard) Reset() { *x = NotifyFriendCard{} - mi := &file_Gameapi_proto_msgTypes[473] + mi := &file_Gameapi_proto_msgTypes[475] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27654,7 +27752,7 @@ func (x *NotifyFriendCard) String() string { func (*NotifyFriendCard) ProtoMessage() {} func (x *NotifyFriendCard) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[473] + mi := &file_Gameapi_proto_msgTypes[475] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27667,7 +27765,7 @@ func (x *NotifyFriendCard) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyFriendCard.ProtoReflect.Descriptor instead. func (*NotifyFriendCard) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{473} + return file_Gameapi_proto_rawDescGZIP(), []int{475} } func (x *NotifyFriendCard) GetInfo() *ResFriendCard { @@ -27697,7 +27795,7 @@ type ResFriendCard struct { func (x *ResFriendCard) Reset() { *x = ResFriendCard{} - mi := &file_Gameapi_proto_msgTypes[474] + mi := &file_Gameapi_proto_msgTypes[476] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27709,7 +27807,7 @@ func (x *ResFriendCard) String() string { func (*ResFriendCard) ProtoMessage() {} func (x *ResFriendCard) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[474] + mi := &file_Gameapi_proto_msgTypes[476] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27722,7 +27820,7 @@ func (x *ResFriendCard) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendCard.ProtoReflect.Descriptor instead. func (*ResFriendCard) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{474} + return file_Gameapi_proto_rawDescGZIP(), []int{476} } func (x *ResFriendCard) GetUid() int32 { @@ -27813,7 +27911,7 @@ type ReqKv struct { func (x *ReqKv) Reset() { *x = ReqKv{} - mi := &file_Gameapi_proto_msgTypes[475] + mi := &file_Gameapi_proto_msgTypes[477] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27825,7 +27923,7 @@ func (x *ReqKv) String() string { func (*ReqKv) ProtoMessage() {} func (x *ReqKv) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[475] + mi := &file_Gameapi_proto_msgTypes[477] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27838,7 +27936,7 @@ func (x *ReqKv) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqKv.ProtoReflect.Descriptor instead. func (*ReqKv) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{475} + return file_Gameapi_proto_rawDescGZIP(), []int{477} } func (x *ReqKv) GetKey() int32 { @@ -27865,7 +27963,7 @@ type ResKv struct { func (x *ResKv) Reset() { *x = ResKv{} - mi := &file_Gameapi_proto_msgTypes[476] + mi := &file_Gameapi_proto_msgTypes[478] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27877,7 +27975,7 @@ func (x *ResKv) String() string { func (*ResKv) ProtoMessage() {} func (x *ResKv) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[476] + mi := &file_Gameapi_proto_msgTypes[478] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27890,7 +27988,7 @@ func (x *ResKv) ProtoReflect() protoreflect.Message { // Deprecated: Use ResKv.ProtoReflect.Descriptor instead. func (*ResKv) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{476} + return file_Gameapi_proto_rawDescGZIP(), []int{478} } func (x *ResKv) GetKv() map[int32]string { @@ -27909,7 +28007,7 @@ type ReqFriendRecommend struct { func (x *ReqFriendRecommend) Reset() { *x = ReqFriendRecommend{} - mi := &file_Gameapi_proto_msgTypes[477] + mi := &file_Gameapi_proto_msgTypes[479] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27921,7 +28019,7 @@ func (x *ReqFriendRecommend) String() string { func (*ReqFriendRecommend) ProtoMessage() {} func (x *ReqFriendRecommend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[477] + mi := &file_Gameapi_proto_msgTypes[479] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27934,7 +28032,7 @@ func (x *ReqFriendRecommend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendRecommend.ProtoReflect.Descriptor instead. func (*ReqFriendRecommend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{477} + return file_Gameapi_proto_rawDescGZIP(), []int{479} } type ResFriendRecommend struct { @@ -27947,7 +28045,7 @@ type ResFriendRecommend struct { func (x *ResFriendRecommend) Reset() { *x = ResFriendRecommend{} - mi := &file_Gameapi_proto_msgTypes[478] + mi := &file_Gameapi_proto_msgTypes[480] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -27959,7 +28057,7 @@ func (x *ResFriendRecommend) String() string { func (*ResFriendRecommend) ProtoMessage() {} func (x *ResFriendRecommend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[478] + mi := &file_Gameapi_proto_msgTypes[480] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -27972,7 +28070,7 @@ func (x *ResFriendRecommend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendRecommend.ProtoReflect.Descriptor instead. func (*ResFriendRecommend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{478} + return file_Gameapi_proto_rawDescGZIP(), []int{480} } func (x *ResFriendRecommend) GetList() []*ResPlayerSimple { @@ -27993,7 +28091,7 @@ type ReqFriendIgnore struct { func (x *ReqFriendIgnore) Reset() { *x = ReqFriendIgnore{} - mi := &file_Gameapi_proto_msgTypes[479] + mi := &file_Gameapi_proto_msgTypes[481] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28005,7 +28103,7 @@ func (x *ReqFriendIgnore) String() string { func (*ReqFriendIgnore) ProtoMessage() {} func (x *ReqFriendIgnore) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[479] + mi := &file_Gameapi_proto_msgTypes[481] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28018,7 +28116,7 @@ func (x *ReqFriendIgnore) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendIgnore.ProtoReflect.Descriptor instead. func (*ReqFriendIgnore) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{479} + return file_Gameapi_proto_rawDescGZIP(), []int{481} } func (x *ReqFriendIgnore) GetUid() int32 { @@ -28039,7 +28137,7 @@ type ResFriendIgnore struct { func (x *ResFriendIgnore) Reset() { *x = ResFriendIgnore{} - mi := &file_Gameapi_proto_msgTypes[480] + mi := &file_Gameapi_proto_msgTypes[482] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28051,7 +28149,7 @@ func (x *ResFriendIgnore) String() string { func (*ResFriendIgnore) ProtoMessage() {} func (x *ResFriendIgnore) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[480] + mi := &file_Gameapi_proto_msgTypes[482] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28064,7 +28162,7 @@ func (x *ResFriendIgnore) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendIgnore.ProtoReflect.Descriptor instead. func (*ResFriendIgnore) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{480} + return file_Gameapi_proto_rawDescGZIP(), []int{482} } func (x *ResFriendIgnore) GetCode() RES_CODE { @@ -28090,7 +28188,7 @@ type ReqFriendList struct { func (x *ReqFriendList) Reset() { *x = ReqFriendList{} - mi := &file_Gameapi_proto_msgTypes[481] + mi := &file_Gameapi_proto_msgTypes[483] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28102,7 +28200,7 @@ func (x *ReqFriendList) String() string { func (*ReqFriendList) ProtoMessage() {} func (x *ReqFriendList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[481] + mi := &file_Gameapi_proto_msgTypes[483] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28115,7 +28213,7 @@ func (x *ReqFriendList) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendList.ProtoReflect.Descriptor instead. func (*ReqFriendList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{481} + return file_Gameapi_proto_rawDescGZIP(), []int{483} } type ResFriendList struct { @@ -28128,7 +28226,7 @@ type ResFriendList struct { func (x *ResFriendList) Reset() { *x = ResFriendList{} - mi := &file_Gameapi_proto_msgTypes[482] + mi := &file_Gameapi_proto_msgTypes[484] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28140,7 +28238,7 @@ func (x *ResFriendList) String() string { func (*ResFriendList) ProtoMessage() {} func (x *ResFriendList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[482] + mi := &file_Gameapi_proto_msgTypes[484] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28153,7 +28251,7 @@ func (x *ResFriendList) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendList.ProtoReflect.Descriptor instead. func (*ResFriendList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{482} + return file_Gameapi_proto_rawDescGZIP(), []int{484} } func (x *ResFriendList) GetFriendList() []*ResPlayerSimple { @@ -28172,7 +28270,7 @@ type ReqFriendApply struct { func (x *ReqFriendApply) Reset() { *x = ReqFriendApply{} - mi := &file_Gameapi_proto_msgTypes[483] + mi := &file_Gameapi_proto_msgTypes[485] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28184,7 +28282,7 @@ func (x *ReqFriendApply) String() string { func (*ReqFriendApply) ProtoMessage() {} func (x *ReqFriendApply) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[483] + mi := &file_Gameapi_proto_msgTypes[485] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28197,7 +28295,7 @@ func (x *ReqFriendApply) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendApply.ProtoReflect.Descriptor instead. func (*ReqFriendApply) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{483} + return file_Gameapi_proto_rawDescGZIP(), []int{485} } type ResFriendApply struct { @@ -28205,12 +28303,12 @@ type ResFriendApply struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ApplyList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` + ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` } func (x *ResFriendApply) Reset() { *x = ResFriendApply{} - mi := &file_Gameapi_proto_msgTypes[484] + mi := &file_Gameapi_proto_msgTypes[486] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28222,7 +28320,7 @@ func (x *ResFriendApply) String() string { func (*ResFriendApply) ProtoMessage() {} func (x *ResFriendApply) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[484] + mi := &file_Gameapi_proto_msgTypes[486] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28235,16 +28333,69 @@ func (x *ResFriendApply) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendApply.ProtoReflect.Descriptor instead. func (*ResFriendApply) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{484} + return file_Gameapi_proto_rawDescGZIP(), []int{486} } -func (x *ResFriendApply) GetApplyList() []*ResPlayerSimple { +func (x *ResFriendApply) GetApplyList() []*ResFriendApplyInfo { if x != nil { return x.ApplyList } return nil } +type ResFriendApplyInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` + Time int32 `protobuf:"varint,2,opt,name=Time,proto3" json:"Time,omitempty"` +} + +func (x *ResFriendApplyInfo) Reset() { + *x = ResFriendApplyInfo{} + mi := &file_Gameapi_proto_msgTypes[487] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResFriendApplyInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResFriendApplyInfo) ProtoMessage() {} + +func (x *ResFriendApplyInfo) ProtoReflect() protoreflect.Message { + mi := &file_Gameapi_proto_msgTypes[487] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResFriendApplyInfo.ProtoReflect.Descriptor instead. +func (*ResFriendApplyInfo) Descriptor() ([]byte, []int) { + return file_Gameapi_proto_rawDescGZIP(), []int{487} +} + +func (x *ResFriendApplyInfo) GetPlayer() *ResPlayerSimple { + if x != nil { + return x.Player + } + return nil +} + +func (x *ResFriendApplyInfo) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + // 好友卡牌交换列表 type ReqFriendCardMsg struct { state protoimpl.MessageState @@ -28254,7 +28405,7 @@ type ReqFriendCardMsg struct { func (x *ReqFriendCardMsg) Reset() { *x = ReqFriendCardMsg{} - mi := &file_Gameapi_proto_msgTypes[485] + mi := &file_Gameapi_proto_msgTypes[488] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28266,7 +28417,7 @@ func (x *ReqFriendCardMsg) String() string { func (*ReqFriendCardMsg) ProtoMessage() {} func (x *ReqFriendCardMsg) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[485] + mi := &file_Gameapi_proto_msgTypes[488] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28279,7 +28430,7 @@ func (x *ReqFriendCardMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendCardMsg.ProtoReflect.Descriptor instead. func (*ReqFriendCardMsg) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{485} + return file_Gameapi_proto_rawDescGZIP(), []int{488} } type ResFriendCardMsg struct { @@ -28292,7 +28443,7 @@ type ResFriendCardMsg struct { func (x *ResFriendCardMsg) Reset() { *x = ResFriendCardMsg{} - mi := &file_Gameapi_proto_msgTypes[486] + mi := &file_Gameapi_proto_msgTypes[489] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28304,7 +28455,7 @@ func (x *ResFriendCardMsg) String() string { func (*ResFriendCardMsg) ProtoMessage() {} func (x *ResFriendCardMsg) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[486] + mi := &file_Gameapi_proto_msgTypes[489] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28317,7 +28468,7 @@ func (x *ResFriendCardMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendCardMsg.ProtoReflect.Descriptor instead. func (*ResFriendCardMsg) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{486} + return file_Gameapi_proto_rawDescGZIP(), []int{489} } func (x *ResFriendCardMsg) GetMsgList() []*ResFriendCard { @@ -28336,7 +28487,7 @@ type ReqFriendTimeLine struct { func (x *ReqFriendTimeLine) Reset() { *x = ReqFriendTimeLine{} - mi := &file_Gameapi_proto_msgTypes[487] + mi := &file_Gameapi_proto_msgTypes[490] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28348,7 +28499,7 @@ func (x *ReqFriendTimeLine) String() string { func (*ReqFriendTimeLine) ProtoMessage() {} func (x *ReqFriendTimeLine) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[487] + mi := &file_Gameapi_proto_msgTypes[490] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28361,7 +28512,7 @@ func (x *ReqFriendTimeLine) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFriendTimeLine.ProtoReflect.Descriptor instead. func (*ReqFriendTimeLine) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{487} + return file_Gameapi_proto_rawDescGZIP(), []int{490} } type ResFriendTimeLine struct { @@ -28374,7 +28525,7 @@ type ResFriendTimeLine struct { func (x *ResFriendTimeLine) Reset() { *x = ResFriendTimeLine{} - mi := &file_Gameapi_proto_msgTypes[488] + mi := &file_Gameapi_proto_msgTypes[491] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28386,7 +28537,7 @@ func (x *ResFriendTimeLine) String() string { func (*ResFriendTimeLine) ProtoMessage() {} func (x *ResFriendTimeLine) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[488] + mi := &file_Gameapi_proto_msgTypes[491] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28399,7 +28550,7 @@ func (x *ResFriendTimeLine) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendTimeLine.ProtoReflect.Descriptor instead. func (*ResFriendTimeLine) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{488} + return file_Gameapi_proto_rawDescGZIP(), []int{491} } func (x *ResFriendTimeLine) GetLog() []*ResFriendLog { @@ -28416,11 +28567,12 @@ type ResFriendApplyNotify struct { Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1:申请 2:同意 3:拒绝 4:删除 + Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` } func (x *ResFriendApplyNotify) Reset() { *x = ResFriendApplyNotify{} - mi := &file_Gameapi_proto_msgTypes[489] + mi := &file_Gameapi_proto_msgTypes[492] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28432,7 +28584,7 @@ func (x *ResFriendApplyNotify) String() string { func (*ResFriendApplyNotify) ProtoMessage() {} func (x *ResFriendApplyNotify) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[489] + mi := &file_Gameapi_proto_msgTypes[492] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28445,7 +28597,7 @@ func (x *ResFriendApplyNotify) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFriendApplyNotify.ProtoReflect.Descriptor instead. func (*ResFriendApplyNotify) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{489} + return file_Gameapi_proto_rawDescGZIP(), []int{492} } func (x *ResFriendApplyNotify) GetPlayer() *ResPlayerSimple { @@ -28462,6 +28614,13 @@ func (x *ResFriendApplyNotify) GetType() int32 { return 0 } +func (x *ResFriendApplyNotify) GetTime() int32 { + if x != nil { + return x.Time + } + return 0 +} + // 申请好友 type ReqApplyFriend struct { state protoimpl.MessageState @@ -28473,7 +28632,7 @@ type ReqApplyFriend struct { func (x *ReqApplyFriend) Reset() { *x = ReqApplyFriend{} - mi := &file_Gameapi_proto_msgTypes[490] + mi := &file_Gameapi_proto_msgTypes[493] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28485,7 +28644,7 @@ func (x *ReqApplyFriend) String() string { func (*ReqApplyFriend) ProtoMessage() {} func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[490] + mi := &file_Gameapi_proto_msgTypes[493] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28498,7 +28657,7 @@ func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqApplyFriend.ProtoReflect.Descriptor instead. func (*ReqApplyFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{490} + return file_Gameapi_proto_rawDescGZIP(), []int{493} } func (x *ReqApplyFriend) GetUid() int32 { @@ -28519,7 +28678,7 @@ type ResApplyFriend struct { func (x *ResApplyFriend) Reset() { *x = ResApplyFriend{} - mi := &file_Gameapi_proto_msgTypes[491] + mi := &file_Gameapi_proto_msgTypes[494] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28531,7 +28690,7 @@ func (x *ResApplyFriend) String() string { func (*ResApplyFriend) ProtoMessage() {} func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[491] + mi := &file_Gameapi_proto_msgTypes[494] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28544,7 +28703,7 @@ func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResApplyFriend.ProtoReflect.Descriptor instead. func (*ResApplyFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{491} + return file_Gameapi_proto_rawDescGZIP(), []int{494} } func (x *ResApplyFriend) GetCode() RES_CODE { @@ -28572,7 +28731,7 @@ type ReqAgreeFriend struct { func (x *ReqAgreeFriend) Reset() { *x = ReqAgreeFriend{} - mi := &file_Gameapi_proto_msgTypes[492] + mi := &file_Gameapi_proto_msgTypes[495] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28584,7 +28743,7 @@ func (x *ReqAgreeFriend) String() string { func (*ReqAgreeFriend) ProtoMessage() {} func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[492] + mi := &file_Gameapi_proto_msgTypes[495] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28597,7 +28756,7 @@ func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAgreeFriend.ProtoReflect.Descriptor instead. func (*ReqAgreeFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{492} + return file_Gameapi_proto_rawDescGZIP(), []int{495} } func (x *ReqAgreeFriend) GetUid() int32 { @@ -28620,7 +28779,7 @@ type ResAgreeFriend struct { func (x *ResAgreeFriend) Reset() { *x = ResAgreeFriend{} - mi := &file_Gameapi_proto_msgTypes[493] + mi := &file_Gameapi_proto_msgTypes[496] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28632,7 +28791,7 @@ func (x *ResAgreeFriend) String() string { func (*ResAgreeFriend) ProtoMessage() {} func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[493] + mi := &file_Gameapi_proto_msgTypes[496] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28645,7 +28804,7 @@ func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAgreeFriend.ProtoReflect.Descriptor instead. func (*ResAgreeFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{493} + return file_Gameapi_proto_rawDescGZIP(), []int{496} } func (x *ResAgreeFriend) GetCode() RES_CODE { @@ -28687,7 +28846,7 @@ type ReqRefuseFriend struct { func (x *ReqRefuseFriend) Reset() { *x = ReqRefuseFriend{} - mi := &file_Gameapi_proto_msgTypes[494] + mi := &file_Gameapi_proto_msgTypes[497] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28699,7 +28858,7 @@ func (x *ReqRefuseFriend) String() string { func (*ReqRefuseFriend) ProtoMessage() {} func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[494] + mi := &file_Gameapi_proto_msgTypes[497] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28712,7 +28871,7 @@ func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefuseFriend.ProtoReflect.Descriptor instead. func (*ReqRefuseFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{494} + return file_Gameapi_proto_rawDescGZIP(), []int{497} } func (x *ReqRefuseFriend) GetUid() int32 { @@ -28734,7 +28893,7 @@ type ResRefuseFriend struct { func (x *ResRefuseFriend) Reset() { *x = ResRefuseFriend{} - mi := &file_Gameapi_proto_msgTypes[495] + mi := &file_Gameapi_proto_msgTypes[498] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28746,7 +28905,7 @@ func (x *ResRefuseFriend) String() string { func (*ResRefuseFriend) ProtoMessage() {} func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[495] + mi := &file_Gameapi_proto_msgTypes[498] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28759,7 +28918,7 @@ func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefuseFriend.ProtoReflect.Descriptor instead. func (*ResRefuseFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{495} + return file_Gameapi_proto_rawDescGZIP(), []int{498} } func (x *ResRefuseFriend) GetCode() RES_CODE { @@ -28794,7 +28953,7 @@ type ReqDelFriend struct { func (x *ReqDelFriend) Reset() { *x = ReqDelFriend{} - mi := &file_Gameapi_proto_msgTypes[496] + mi := &file_Gameapi_proto_msgTypes[499] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28806,7 +28965,7 @@ func (x *ReqDelFriend) String() string { func (*ReqDelFriend) ProtoMessage() {} func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[496] + mi := &file_Gameapi_proto_msgTypes[499] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28819,7 +28978,7 @@ func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDelFriend.ProtoReflect.Descriptor instead. func (*ReqDelFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{496} + return file_Gameapi_proto_rawDescGZIP(), []int{499} } func (x *ReqDelFriend) GetUid() int32 { @@ -28841,7 +29000,7 @@ type ResDelFriend struct { func (x *ResDelFriend) Reset() { *x = ResDelFriend{} - mi := &file_Gameapi_proto_msgTypes[497] + mi := &file_Gameapi_proto_msgTypes[500] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28853,7 +29012,7 @@ func (x *ResDelFriend) String() string { func (*ResDelFriend) ProtoMessage() {} func (x *ResDelFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[497] + mi := &file_Gameapi_proto_msgTypes[500] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28866,7 +29025,7 @@ func (x *ResDelFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDelFriend.ProtoReflect.Descriptor instead. func (*ResDelFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{497} + return file_Gameapi_proto_rawDescGZIP(), []int{500} } func (x *ResDelFriend) GetCode() RES_CODE { @@ -28901,7 +29060,7 @@ type ReqRank struct { func (x *ReqRank) Reset() { *x = ReqRank{} - mi := &file_Gameapi_proto_msgTypes[498] + mi := &file_Gameapi_proto_msgTypes[501] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28913,7 +29072,7 @@ func (x *ReqRank) String() string { func (*ReqRank) ProtoMessage() {} func (x *ReqRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[498] + mi := &file_Gameapi_proto_msgTypes[501] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28926,7 +29085,7 @@ func (x *ReqRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRank.ProtoReflect.Descriptor instead. func (*ReqRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{498} + return file_Gameapi_proto_rawDescGZIP(), []int{501} } func (x *ReqRank) GetType() int32 { @@ -28947,7 +29106,7 @@ type ResRank struct { func (x *ResRank) Reset() { *x = ResRank{} - mi := &file_Gameapi_proto_msgTypes[499] + mi := &file_Gameapi_proto_msgTypes[502] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -28959,7 +29118,7 @@ func (x *ResRank) String() string { func (*ResRank) ProtoMessage() {} func (x *ResRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[499] + mi := &file_Gameapi_proto_msgTypes[502] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -28972,7 +29131,7 @@ func (x *ResRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRank.ProtoReflect.Descriptor instead. func (*ResRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{499} + return file_Gameapi_proto_rawDescGZIP(), []int{502} } func (x *ResRank) GetType() int32 { @@ -28998,7 +29157,7 @@ type ReqMailList struct { func (x *ReqMailList) Reset() { *x = ReqMailList{} - mi := &file_Gameapi_proto_msgTypes[500] + mi := &file_Gameapi_proto_msgTypes[503] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29010,7 +29169,7 @@ func (x *ReqMailList) String() string { func (*ReqMailList) ProtoMessage() {} func (x *ReqMailList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[500] + mi := &file_Gameapi_proto_msgTypes[503] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29023,7 +29182,7 @@ func (x *ReqMailList) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqMailList.ProtoReflect.Descriptor instead. func (*ReqMailList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{500} + return file_Gameapi_proto_rawDescGZIP(), []int{503} } type ResMailList struct { @@ -29036,7 +29195,7 @@ type ResMailList struct { func (x *ResMailList) Reset() { *x = ResMailList{} - mi := &file_Gameapi_proto_msgTypes[501] + mi := &file_Gameapi_proto_msgTypes[504] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29048,7 +29207,7 @@ func (x *ResMailList) String() string { func (*ResMailList) ProtoMessage() {} func (x *ResMailList) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[501] + mi := &file_Gameapi_proto_msgTypes[504] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29061,7 +29220,7 @@ func (x *ResMailList) ProtoReflect() protoreflect.Message { // Deprecated: Use ResMailList.ProtoReflect.Descriptor instead. func (*ResMailList) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{501} + return file_Gameapi_proto_rawDescGZIP(), []int{504} } func (x *ResMailList) GetMailList() map[int32]*MailInfo { @@ -29085,7 +29244,7 @@ type MailInfo struct { func (x *MailInfo) Reset() { *x = MailInfo{} - mi := &file_Gameapi_proto_msgTypes[502] + mi := &file_Gameapi_proto_msgTypes[505] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29097,7 +29256,7 @@ func (x *MailInfo) String() string { func (*MailInfo) ProtoMessage() {} func (x *MailInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[502] + mi := &file_Gameapi_proto_msgTypes[505] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29110,7 +29269,7 @@ func (x *MailInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use MailInfo.ProtoReflect.Descriptor instead. func (*MailInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{502} + return file_Gameapi_proto_rawDescGZIP(), []int{505} } func (x *MailInfo) GetTitle() string { @@ -29159,7 +29318,7 @@ type ReqReadMail struct { func (x *ReqReadMail) Reset() { *x = ReqReadMail{} - mi := &file_Gameapi_proto_msgTypes[503] + mi := &file_Gameapi_proto_msgTypes[506] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29171,7 +29330,7 @@ func (x *ReqReadMail) String() string { func (*ReqReadMail) ProtoMessage() {} func (x *ReqReadMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[503] + mi := &file_Gameapi_proto_msgTypes[506] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29184,7 +29343,7 @@ func (x *ReqReadMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqReadMail.ProtoReflect.Descriptor instead. func (*ReqReadMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{503} + return file_Gameapi_proto_rawDescGZIP(), []int{506} } func (x *ReqReadMail) GetId() int32 { @@ -29205,7 +29364,7 @@ type ResReadMail struct { func (x *ResReadMail) Reset() { *x = ResReadMail{} - mi := &file_Gameapi_proto_msgTypes[504] + mi := &file_Gameapi_proto_msgTypes[507] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29217,7 +29376,7 @@ func (x *ResReadMail) String() string { func (*ResReadMail) ProtoMessage() {} func (x *ResReadMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[504] + mi := &file_Gameapi_proto_msgTypes[507] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29230,7 +29389,7 @@ func (x *ResReadMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ResReadMail.ProtoReflect.Descriptor instead. func (*ResReadMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{504} + return file_Gameapi_proto_rawDescGZIP(), []int{507} } func (x *ResReadMail) GetCode() RES_CODE { @@ -29258,7 +29417,7 @@ type ReqGetMailReward struct { func (x *ReqGetMailReward) Reset() { *x = ReqGetMailReward{} - mi := &file_Gameapi_proto_msgTypes[505] + mi := &file_Gameapi_proto_msgTypes[508] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29270,7 +29429,7 @@ func (x *ReqGetMailReward) String() string { func (*ReqGetMailReward) ProtoMessage() {} func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[505] + mi := &file_Gameapi_proto_msgTypes[508] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29283,7 +29442,7 @@ func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetMailReward.ProtoReflect.Descriptor instead. func (*ReqGetMailReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{505} + return file_Gameapi_proto_rawDescGZIP(), []int{508} } func (x *ReqGetMailReward) GetId() int32 { @@ -29304,7 +29463,7 @@ type ResGetMailReward struct { func (x *ResGetMailReward) Reset() { *x = ResGetMailReward{} - mi := &file_Gameapi_proto_msgTypes[506] + mi := &file_Gameapi_proto_msgTypes[509] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29316,7 +29475,7 @@ func (x *ResGetMailReward) String() string { func (*ResGetMailReward) ProtoMessage() {} func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[506] + mi := &file_Gameapi_proto_msgTypes[509] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29329,7 +29488,7 @@ func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetMailReward.ProtoReflect.Descriptor instead. func (*ResGetMailReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{506} + return file_Gameapi_proto_rawDescGZIP(), []int{509} } func (x *ResGetMailReward) GetCode() RES_CODE { @@ -29357,7 +29516,7 @@ type ReqDeleteMail struct { func (x *ReqDeleteMail) Reset() { *x = ReqDeleteMail{} - mi := &file_Gameapi_proto_msgTypes[507] + mi := &file_Gameapi_proto_msgTypes[510] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29369,7 +29528,7 @@ func (x *ReqDeleteMail) String() string { func (*ReqDeleteMail) ProtoMessage() {} func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[507] + mi := &file_Gameapi_proto_msgTypes[510] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29382,7 +29541,7 @@ func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqDeleteMail.ProtoReflect.Descriptor instead. func (*ReqDeleteMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{507} + return file_Gameapi_proto_rawDescGZIP(), []int{510} } func (x *ReqDeleteMail) GetId() int32 { @@ -29403,7 +29562,7 @@ type ResDeleteMail struct { func (x *ResDeleteMail) Reset() { *x = ResDeleteMail{} - mi := &file_Gameapi_proto_msgTypes[508] + mi := &file_Gameapi_proto_msgTypes[511] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29415,7 +29574,7 @@ func (x *ResDeleteMail) String() string { func (*ResDeleteMail) ProtoMessage() {} func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[508] + mi := &file_Gameapi_proto_msgTypes[511] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29428,7 +29587,7 @@ func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { // Deprecated: Use ResDeleteMail.ProtoReflect.Descriptor instead. func (*ResDeleteMail) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{508} + return file_Gameapi_proto_rawDescGZIP(), []int{511} } func (x *ResDeleteMail) GetCode() RES_CODE { @@ -29462,7 +29621,7 @@ type ResCharge struct { func (x *ResCharge) Reset() { *x = ResCharge{} - mi := &file_Gameapi_proto_msgTypes[509] + mi := &file_Gameapi_proto_msgTypes[512] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29474,7 +29633,7 @@ func (x *ResCharge) String() string { func (*ResCharge) ProtoMessage() {} func (x *ResCharge) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[509] + mi := &file_Gameapi_proto_msgTypes[512] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29487,7 +29646,7 @@ func (x *ResCharge) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCharge.ProtoReflect.Descriptor instead. func (*ResCharge) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{509} + return file_Gameapi_proto_rawDescGZIP(), []int{512} } func (x *ResCharge) GetCharge() float32 { @@ -29557,7 +29716,7 @@ type ResSpecialShop struct { func (x *ResSpecialShop) Reset() { *x = ResSpecialShop{} - mi := &file_Gameapi_proto_msgTypes[510] + mi := &file_Gameapi_proto_msgTypes[513] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29569,7 +29728,7 @@ func (x *ResSpecialShop) String() string { func (*ResSpecialShop) ProtoMessage() {} func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[510] + mi := &file_Gameapi_proto_msgTypes[513] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29582,7 +29741,7 @@ func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSpecialShop.ProtoReflect.Descriptor instead. func (*ResSpecialShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{510} + return file_Gameapi_proto_rawDescGZIP(), []int{513} } func (x *ResSpecialShop) GetGrade() int32 { @@ -29611,7 +29770,7 @@ type ResChessShop struct { func (x *ResChessShop) Reset() { *x = ResChessShop{} - mi := &file_Gameapi_proto_msgTypes[511] + mi := &file_Gameapi_proto_msgTypes[514] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29623,7 +29782,7 @@ func (x *ResChessShop) String() string { func (*ResChessShop) ProtoMessage() {} func (x *ResChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[511] + mi := &file_Gameapi_proto_msgTypes[514] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29636,7 +29795,7 @@ func (x *ResChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChessShop.ProtoReflect.Descriptor instead. func (*ResChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{511} + return file_Gameapi_proto_rawDescGZIP(), []int{514} } func (x *ResChessShop) GetDiamond() int32 { @@ -29668,7 +29827,7 @@ type ReqFreeShop struct { func (x *ReqFreeShop) Reset() { *x = ReqFreeShop{} - mi := &file_Gameapi_proto_msgTypes[512] + mi := &file_Gameapi_proto_msgTypes[515] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29680,7 +29839,7 @@ func (x *ReqFreeShop) String() string { func (*ReqFreeShop) ProtoMessage() {} func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[512] + mi := &file_Gameapi_proto_msgTypes[515] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29693,7 +29852,7 @@ func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqFreeShop.ProtoReflect.Descriptor instead. func (*ReqFreeShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{512} + return file_Gameapi_proto_rawDescGZIP(), []int{515} } type ResFreeShop struct { @@ -29707,7 +29866,7 @@ type ResFreeShop struct { func (x *ResFreeShop) Reset() { *x = ResFreeShop{} - mi := &file_Gameapi_proto_msgTypes[513] + mi := &file_Gameapi_proto_msgTypes[516] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29719,7 +29878,7 @@ func (x *ResFreeShop) String() string { func (*ResFreeShop) ProtoMessage() {} func (x *ResFreeShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[513] + mi := &file_Gameapi_proto_msgTypes[516] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29732,7 +29891,7 @@ func (x *ResFreeShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResFreeShop.ProtoReflect.Descriptor instead. func (*ResFreeShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{513} + return file_Gameapi_proto_rawDescGZIP(), []int{516} } func (x *ResFreeShop) GetCode() RES_CODE { @@ -29760,7 +29919,7 @@ type ReqBuyChessShop struct { func (x *ReqBuyChessShop) Reset() { *x = ReqBuyChessShop{} - mi := &file_Gameapi_proto_msgTypes[514] + mi := &file_Gameapi_proto_msgTypes[517] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29772,7 +29931,7 @@ func (x *ReqBuyChessShop) String() string { func (*ReqBuyChessShop) ProtoMessage() {} func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[514] + mi := &file_Gameapi_proto_msgTypes[517] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29785,7 +29944,7 @@ func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqBuyChessShop.ProtoReflect.Descriptor instead. func (*ReqBuyChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{514} + return file_Gameapi_proto_rawDescGZIP(), []int{517} } func (x *ReqBuyChessShop) GetId() int32 { @@ -29806,7 +29965,7 @@ type ResBuyChessShop struct { func (x *ResBuyChessShop) Reset() { *x = ResBuyChessShop{} - mi := &file_Gameapi_proto_msgTypes[515] + mi := &file_Gameapi_proto_msgTypes[518] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29818,7 +29977,7 @@ func (x *ResBuyChessShop) String() string { func (*ResBuyChessShop) ProtoMessage() {} func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[515] + mi := &file_Gameapi_proto_msgTypes[518] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29831,7 +29990,7 @@ func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResBuyChessShop.ProtoReflect.Descriptor instead. func (*ResBuyChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{515} + return file_Gameapi_proto_rawDescGZIP(), []int{518} } func (x *ResBuyChessShop) GetCode() RES_CODE { @@ -29857,7 +30016,7 @@ type ReqRefreshChessShop struct { func (x *ReqRefreshChessShop) Reset() { *x = ReqRefreshChessShop{} - mi := &file_Gameapi_proto_msgTypes[516] + mi := &file_Gameapi_proto_msgTypes[519] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29869,7 +30028,7 @@ func (x *ReqRefreshChessShop) String() string { func (*ReqRefreshChessShop) ProtoMessage() {} func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[516] + mi := &file_Gameapi_proto_msgTypes[519] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29882,7 +30041,7 @@ func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqRefreshChessShop.ProtoReflect.Descriptor instead. func (*ReqRefreshChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{516} + return file_Gameapi_proto_rawDescGZIP(), []int{519} } type ResRefreshChessShop struct { @@ -29896,7 +30055,7 @@ type ResRefreshChessShop struct { func (x *ResRefreshChessShop) Reset() { *x = ResRefreshChessShop{} - mi := &file_Gameapi_proto_msgTypes[517] + mi := &file_Gameapi_proto_msgTypes[520] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29908,7 +30067,7 @@ func (x *ResRefreshChessShop) String() string { func (*ResRefreshChessShop) ProtoMessage() {} func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[517] + mi := &file_Gameapi_proto_msgTypes[520] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29921,7 +30080,7 @@ func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { // Deprecated: Use ResRefreshChessShop.ProtoReflect.Descriptor instead. func (*ResRefreshChessShop) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{517} + return file_Gameapi_proto_rawDescGZIP(), []int{520} } func (x *ResRefreshChessShop) GetCode() RES_CODE { @@ -29946,7 +30105,7 @@ type ReqEndless struct { func (x *ReqEndless) Reset() { *x = ReqEndless{} - mi := &file_Gameapi_proto_msgTypes[518] + mi := &file_Gameapi_proto_msgTypes[521] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29958,7 +30117,7 @@ func (x *ReqEndless) String() string { func (*ReqEndless) ProtoMessage() {} func (x *ReqEndless) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[518] + mi := &file_Gameapi_proto_msgTypes[521] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -29971,7 +30130,7 @@ func (x *ReqEndless) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqEndless.ProtoReflect.Descriptor instead. func (*ReqEndless) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{518} + return file_Gameapi_proto_rawDescGZIP(), []int{521} } type ResEndless struct { @@ -29985,7 +30144,7 @@ type ResEndless struct { func (x *ResEndless) Reset() { *x = ResEndless{} - mi := &file_Gameapi_proto_msgTypes[519] + mi := &file_Gameapi_proto_msgTypes[522] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -29997,7 +30156,7 @@ func (x *ResEndless) String() string { func (*ResEndless) ProtoMessage() {} func (x *ResEndless) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[519] + mi := &file_Gameapi_proto_msgTypes[522] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30010,7 +30169,7 @@ func (x *ResEndless) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndless.ProtoReflect.Descriptor instead. func (*ResEndless) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{519} + return file_Gameapi_proto_rawDescGZIP(), []int{522} } func (x *ResEndless) GetId() int32 { @@ -30039,7 +30198,7 @@ type ResEndlessInfo struct { func (x *ResEndlessInfo) Reset() { *x = ResEndlessInfo{} - mi := &file_Gameapi_proto_msgTypes[520] + mi := &file_Gameapi_proto_msgTypes[523] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30051,7 +30210,7 @@ func (x *ResEndlessInfo) String() string { func (*ResEndlessInfo) ProtoMessage() {} func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[520] + mi := &file_Gameapi_proto_msgTypes[523] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30064,7 +30223,7 @@ func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndlessInfo.ProtoReflect.Descriptor instead. func (*ResEndlessInfo) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{520} + return file_Gameapi_proto_rawDescGZIP(), []int{523} } func (x *ResEndlessInfo) GetChargeId() int32 { @@ -30096,7 +30255,7 @@ type ReqEndlessReward struct { func (x *ReqEndlessReward) Reset() { *x = ReqEndlessReward{} - mi := &file_Gameapi_proto_msgTypes[521] + mi := &file_Gameapi_proto_msgTypes[524] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30108,7 +30267,7 @@ func (x *ReqEndlessReward) String() string { func (*ReqEndlessReward) ProtoMessage() {} func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[521] + mi := &file_Gameapi_proto_msgTypes[524] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30121,7 +30280,7 @@ func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqEndlessReward.ProtoReflect.Descriptor instead. func (*ReqEndlessReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{521} + return file_Gameapi_proto_rawDescGZIP(), []int{524} } type ResEndlessReward struct { @@ -30135,7 +30294,7 @@ type ResEndlessReward struct { func (x *ResEndlessReward) Reset() { *x = ResEndlessReward{} - mi := &file_Gameapi_proto_msgTypes[522] + mi := &file_Gameapi_proto_msgTypes[525] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30147,7 +30306,7 @@ func (x *ResEndlessReward) String() string { func (*ResEndlessReward) ProtoMessage() {} func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[522] + mi := &file_Gameapi_proto_msgTypes[525] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30160,7 +30319,7 @@ func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResEndlessReward.ProtoReflect.Descriptor instead. func (*ResEndlessReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{522} + return file_Gameapi_proto_rawDescGZIP(), []int{525} } func (x *ResEndlessReward) GetCode() RES_CODE { @@ -30190,7 +30349,7 @@ type ResPiggyBank struct { func (x *ResPiggyBank) Reset() { *x = ResPiggyBank{} - mi := &file_Gameapi_proto_msgTypes[523] + mi := &file_Gameapi_proto_msgTypes[526] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30202,7 +30361,7 @@ func (x *ResPiggyBank) String() string { func (*ResPiggyBank) ProtoMessage() {} func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[523] + mi := &file_Gameapi_proto_msgTypes[526] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30215,7 +30374,7 @@ func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPiggyBank.ProtoReflect.Descriptor instead. func (*ResPiggyBank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{523} + return file_Gameapi_proto_rawDescGZIP(), []int{526} } func (x *ResPiggyBank) GetType() int32 { @@ -30254,7 +30413,7 @@ type ReqPiggyBankReward struct { func (x *ReqPiggyBankReward) Reset() { *x = ReqPiggyBankReward{} - mi := &file_Gameapi_proto_msgTypes[524] + mi := &file_Gameapi_proto_msgTypes[527] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30266,7 +30425,7 @@ func (x *ReqPiggyBankReward) String() string { func (*ReqPiggyBankReward) ProtoMessage() {} func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[524] + mi := &file_Gameapi_proto_msgTypes[527] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30279,7 +30438,7 @@ func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqPiggyBankReward.ProtoReflect.Descriptor instead. func (*ReqPiggyBankReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{524} + return file_Gameapi_proto_rawDescGZIP(), []int{527} } type ResPiggyBankReward struct { @@ -30293,7 +30452,7 @@ type ResPiggyBankReward struct { func (x *ResPiggyBankReward) Reset() { *x = ResPiggyBankReward{} - mi := &file_Gameapi_proto_msgTypes[525] + mi := &file_Gameapi_proto_msgTypes[528] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30305,7 +30464,7 @@ func (x *ResPiggyBankReward) String() string { func (*ResPiggyBankReward) ProtoMessage() {} func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[525] + mi := &file_Gameapi_proto_msgTypes[528] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30318,7 +30477,7 @@ func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResPiggyBankReward.ProtoReflect.Descriptor instead. func (*ResPiggyBankReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{525} + return file_Gameapi_proto_rawDescGZIP(), []int{528} } func (x *ResPiggyBankReward) GetCode() RES_CODE { @@ -30347,7 +30506,7 @@ type ReqCreateOrderSn struct { func (x *ReqCreateOrderSn) Reset() { *x = ReqCreateOrderSn{} - mi := &file_Gameapi_proto_msgTypes[526] + mi := &file_Gameapi_proto_msgTypes[529] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30359,7 +30518,7 @@ func (x *ReqCreateOrderSn) String() string { func (*ReqCreateOrderSn) ProtoMessage() {} func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[526] + mi := &file_Gameapi_proto_msgTypes[529] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30372,7 +30531,7 @@ func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqCreateOrderSn.ProtoReflect.Descriptor instead. func (*ReqCreateOrderSn) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{526} + return file_Gameapi_proto_rawDescGZIP(), []int{529} } func (x *ReqCreateOrderSn) GetChargeId() int32 { @@ -30406,7 +30565,7 @@ type ResCreateOrderSn struct { func (x *ResCreateOrderSn) Reset() { *x = ResCreateOrderSn{} - mi := &file_Gameapi_proto_msgTypes[527] + mi := &file_Gameapi_proto_msgTypes[530] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30418,7 +30577,7 @@ func (x *ResCreateOrderSn) String() string { func (*ResCreateOrderSn) ProtoMessage() {} func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[527] + mi := &file_Gameapi_proto_msgTypes[530] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30431,7 +30590,7 @@ func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { // Deprecated: Use ResCreateOrderSn.ProtoReflect.Descriptor instead. func (*ResCreateOrderSn) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{527} + return file_Gameapi_proto_rawDescGZIP(), []int{530} } func (x *ResCreateOrderSn) GetOrderSn() string { @@ -30453,7 +30612,7 @@ type ReqShippingOrder struct { func (x *ReqShippingOrder) Reset() { *x = ReqShippingOrder{} - mi := &file_Gameapi_proto_msgTypes[528] + mi := &file_Gameapi_proto_msgTypes[531] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30465,7 +30624,7 @@ func (x *ReqShippingOrder) String() string { func (*ReqShippingOrder) ProtoMessage() {} func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[528] + mi := &file_Gameapi_proto_msgTypes[531] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30478,7 +30637,7 @@ func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqShippingOrder.ProtoReflect.Descriptor instead. func (*ReqShippingOrder) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{528} + return file_Gameapi_proto_rawDescGZIP(), []int{531} } func (x *ReqShippingOrder) GetOrderSn() string { @@ -30513,7 +30672,7 @@ type ResShippingOrder struct { func (x *ResShippingOrder) Reset() { *x = ResShippingOrder{} - mi := &file_Gameapi_proto_msgTypes[529] + mi := &file_Gameapi_proto_msgTypes[532] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30525,7 +30684,7 @@ func (x *ResShippingOrder) String() string { func (*ResShippingOrder) ProtoMessage() {} func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[529] + mi := &file_Gameapi_proto_msgTypes[532] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30538,7 +30697,7 @@ func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { // Deprecated: Use ResShippingOrder.ProtoReflect.Descriptor instead. func (*ResShippingOrder) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{529} + return file_Gameapi_proto_rawDescGZIP(), []int{532} } func (x *ResShippingOrder) GetCode() RES_CODE { @@ -30563,7 +30722,7 @@ type ReqChampship struct { func (x *ReqChampship) Reset() { *x = ReqChampship{} - mi := &file_Gameapi_proto_msgTypes[530] + mi := &file_Gameapi_proto_msgTypes[533] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30575,7 +30734,7 @@ func (x *ReqChampship) String() string { func (*ReqChampship) ProtoMessage() {} func (x *ReqChampship) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[530] + mi := &file_Gameapi_proto_msgTypes[533] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30588,7 +30747,7 @@ func (x *ReqChampship) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampship.ProtoReflect.Descriptor instead. func (*ReqChampship) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{530} + return file_Gameapi_proto_rawDescGZIP(), []int{533} } type ResChampship struct { @@ -30602,11 +30761,12 @@ type ResChampship struct { Period int32 `protobuf:"varint,4,opt,name=Period,proto3" json:"Period,omitempty"` Rank int32 `protobuf:"varint,5,opt,name=Rank,proto3" json:"Rank,omitempty"` RankReward int32 `protobuf:"varint,6,opt,name=RankReward,proto3" json:"RankReward,omitempty"` + Status int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status,omitempty"` } func (x *ResChampship) Reset() { *x = ResChampship{} - mi := &file_Gameapi_proto_msgTypes[531] + mi := &file_Gameapi_proto_msgTypes[534] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30618,7 +30778,7 @@ func (x *ResChampship) String() string { func (*ResChampship) ProtoMessage() {} func (x *ResChampship) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[531] + mi := &file_Gameapi_proto_msgTypes[534] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30631,7 +30791,7 @@ func (x *ResChampship) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampship.ProtoReflect.Descriptor instead. func (*ResChampship) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{531} + return file_Gameapi_proto_rawDescGZIP(), []int{534} } func (x *ResChampship) GetScore() int32 { @@ -30676,6 +30836,13 @@ func (x *ResChampship) GetRankReward() int32 { return 0 } +func (x *ResChampship) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + type ReqChampshipReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -30684,7 +30851,7 @@ type ReqChampshipReward struct { func (x *ReqChampshipReward) Reset() { *x = ReqChampshipReward{} - mi := &file_Gameapi_proto_msgTypes[532] + mi := &file_Gameapi_proto_msgTypes[535] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30696,7 +30863,7 @@ func (x *ReqChampshipReward) String() string { func (*ReqChampshipReward) ProtoMessage() {} func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[532] + mi := &file_Gameapi_proto_msgTypes[535] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30709,7 +30876,7 @@ func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipReward.ProtoReflect.Descriptor instead. func (*ReqChampshipReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{532} + return file_Gameapi_proto_rawDescGZIP(), []int{535} } type ResChampshipReward struct { @@ -30723,7 +30890,7 @@ type ResChampshipReward struct { func (x *ResChampshipReward) Reset() { *x = ResChampshipReward{} - mi := &file_Gameapi_proto_msgTypes[533] + mi := &file_Gameapi_proto_msgTypes[536] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30735,7 +30902,7 @@ func (x *ResChampshipReward) String() string { func (*ResChampshipReward) ProtoMessage() {} func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[533] + mi := &file_Gameapi_proto_msgTypes[536] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30748,7 +30915,7 @@ func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipReward.ProtoReflect.Descriptor instead. func (*ResChampshipReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{533} + return file_Gameapi_proto_rawDescGZIP(), []int{536} } func (x *ResChampshipReward) GetCode() RES_CODE { @@ -30773,7 +30940,7 @@ type ReqChampshipRankReward struct { func (x *ReqChampshipRankReward) Reset() { *x = ReqChampshipRankReward{} - mi := &file_Gameapi_proto_msgTypes[534] + mi := &file_Gameapi_proto_msgTypes[537] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30785,7 +30952,7 @@ func (x *ReqChampshipRankReward) String() string { func (*ReqChampshipRankReward) ProtoMessage() {} func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[534] + mi := &file_Gameapi_proto_msgTypes[537] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30798,7 +30965,7 @@ func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipRankReward.ProtoReflect.Descriptor instead. func (*ReqChampshipRankReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{534} + return file_Gameapi_proto_rawDescGZIP(), []int{537} } type ResChampshipRankReward struct { @@ -30812,7 +30979,7 @@ type ResChampshipRankReward struct { func (x *ResChampshipRankReward) Reset() { *x = ResChampshipRankReward{} - mi := &file_Gameapi_proto_msgTypes[535] + mi := &file_Gameapi_proto_msgTypes[538] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30824,7 +30991,7 @@ func (x *ResChampshipRankReward) String() string { func (*ResChampshipRankReward) ProtoMessage() {} func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[535] + mi := &file_Gameapi_proto_msgTypes[538] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30837,7 +31004,7 @@ func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipRankReward.ProtoReflect.Descriptor instead. func (*ResChampshipRankReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{535} + return file_Gameapi_proto_rawDescGZIP(), []int{538} } func (x *ResChampshipRankReward) GetCode() RES_CODE { @@ -30862,7 +31029,7 @@ type ReqChampshipRank struct { func (x *ReqChampshipRank) Reset() { *x = ReqChampshipRank{} - mi := &file_Gameapi_proto_msgTypes[536] + mi := &file_Gameapi_proto_msgTypes[539] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30874,7 +31041,7 @@ func (x *ReqChampshipRank) String() string { func (*ReqChampshipRank) ProtoMessage() {} func (x *ReqChampshipRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[536] + mi := &file_Gameapi_proto_msgTypes[539] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30887,7 +31054,7 @@ func (x *ReqChampshipRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipRank.ProtoReflect.Descriptor instead. func (*ReqChampshipRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{536} + return file_Gameapi_proto_rawDescGZIP(), []int{539} } type ResChampshipRank struct { @@ -30902,7 +31069,7 @@ type ResChampshipRank struct { func (x *ResChampshipRank) Reset() { *x = ResChampshipRank{} - mi := &file_Gameapi_proto_msgTypes[537] + mi := &file_Gameapi_proto_msgTypes[540] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30914,7 +31081,7 @@ func (x *ResChampshipRank) String() string { func (*ResChampshipRank) ProtoMessage() {} func (x *ResChampshipRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[537] + mi := &file_Gameapi_proto_msgTypes[540] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30927,7 +31094,7 @@ func (x *ResChampshipRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipRank.ProtoReflect.Descriptor instead. func (*ResChampshipRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{537} + return file_Gameapi_proto_rawDescGZIP(), []int{540} } func (x *ResChampshipRank) GetRankList() map[int32]*ResPlayerRank { @@ -30959,7 +31126,7 @@ type ReqChampshipPreRank struct { func (x *ReqChampshipPreRank) Reset() { *x = ReqChampshipPreRank{} - mi := &file_Gameapi_proto_msgTypes[538] + mi := &file_Gameapi_proto_msgTypes[541] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -30971,7 +31138,7 @@ func (x *ReqChampshipPreRank) String() string { func (*ReqChampshipPreRank) ProtoMessage() {} func (x *ReqChampshipPreRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[538] + mi := &file_Gameapi_proto_msgTypes[541] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -30984,7 +31151,7 @@ func (x *ReqChampshipPreRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqChampshipPreRank.ProtoReflect.Descriptor instead. func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{538} + return file_Gameapi_proto_rawDescGZIP(), []int{541} } type ResChampshipPreRank struct { @@ -30999,7 +31166,7 @@ type ResChampshipPreRank struct { func (x *ResChampshipPreRank) Reset() { *x = ResChampshipPreRank{} - mi := &file_Gameapi_proto_msgTypes[539] + mi := &file_Gameapi_proto_msgTypes[542] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31011,7 +31178,7 @@ func (x *ResChampshipPreRank) String() string { func (*ResChampshipPreRank) ProtoMessage() {} func (x *ResChampshipPreRank) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[539] + mi := &file_Gameapi_proto_msgTypes[542] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31024,7 +31191,7 @@ func (x *ResChampshipPreRank) ProtoReflect() protoreflect.Message { // Deprecated: Use ResChampshipPreRank.ProtoReflect.Descriptor instead. func (*ResChampshipPreRank) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{539} + return file_Gameapi_proto_rawDescGZIP(), []int{542} } func (x *ResChampshipPreRank) GetRankList() map[int32]*ResPlayerRank { @@ -31060,7 +31227,7 @@ type ResNotifyCard struct { func (x *ResNotifyCard) Reset() { *x = ResNotifyCard{} - mi := &file_Gameapi_proto_msgTypes[540] + mi := &file_Gameapi_proto_msgTypes[543] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31072,7 +31239,7 @@ func (x *ResNotifyCard) String() string { func (*ResNotifyCard) ProtoMessage() {} func (x *ResNotifyCard) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[540] + mi := &file_Gameapi_proto_msgTypes[543] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31085,7 +31252,7 @@ func (x *ResNotifyCard) ProtoReflect() protoreflect.Message { // Deprecated: Use ResNotifyCard.ProtoReflect.Descriptor instead. func (*ResNotifyCard) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{540} + return file_Gameapi_proto_rawDescGZIP(), []int{543} } func (x *ResNotifyCard) GetCard() map[int32]int32 { @@ -31119,7 +31286,7 @@ type ReqSetFacebookUrl struct { func (x *ReqSetFacebookUrl) Reset() { *x = ReqSetFacebookUrl{} - mi := &file_Gameapi_proto_msgTypes[541] + mi := &file_Gameapi_proto_msgTypes[544] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31131,7 +31298,7 @@ func (x *ReqSetFacebookUrl) String() string { func (*ReqSetFacebookUrl) ProtoMessage() {} func (x *ReqSetFacebookUrl) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[541] + mi := &file_Gameapi_proto_msgTypes[544] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31144,7 +31311,7 @@ func (x *ReqSetFacebookUrl) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSetFacebookUrl.ProtoReflect.Descriptor instead. func (*ReqSetFacebookUrl) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{541} + return file_Gameapi_proto_rawDescGZIP(), []int{544} } func (x *ReqSetFacebookUrl) GetUrl() string { @@ -31165,7 +31332,7 @@ type ResSetFacebookUrl struct { func (x *ResSetFacebookUrl) Reset() { *x = ResSetFacebookUrl{} - mi := &file_Gameapi_proto_msgTypes[542] + mi := &file_Gameapi_proto_msgTypes[545] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31177,7 +31344,7 @@ func (x *ResSetFacebookUrl) String() string { func (*ResSetFacebookUrl) ProtoMessage() {} func (x *ResSetFacebookUrl) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[542] + mi := &file_Gameapi_proto_msgTypes[545] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31190,7 +31357,7 @@ func (x *ResSetFacebookUrl) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSetFacebookUrl.ProtoReflect.Descriptor instead. func (*ResSetFacebookUrl) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{542} + return file_Gameapi_proto_rawDescGZIP(), []int{545} } func (x *ResSetFacebookUrl) GetCode() RES_CODE { @@ -31218,7 +31385,7 @@ type ReqInviteFriendData struct { func (x *ReqInviteFriendData) Reset() { *x = ReqInviteFriendData{} - mi := &file_Gameapi_proto_msgTypes[543] + mi := &file_Gameapi_proto_msgTypes[546] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31230,7 +31397,7 @@ func (x *ReqInviteFriendData) String() string { func (*ReqInviteFriendData) ProtoMessage() {} func (x *ReqInviteFriendData) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[543] + mi := &file_Gameapi_proto_msgTypes[546] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31243,7 +31410,7 @@ func (x *ReqInviteFriendData) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqInviteFriendData.ProtoReflect.Descriptor instead. func (*ReqInviteFriendData) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{543} + return file_Gameapi_proto_rawDescGZIP(), []int{546} } func (x *ReqInviteFriendData) GetDwUin() int32 { @@ -31264,7 +31431,7 @@ type ResInviteFriendData struct { func (x *ResInviteFriendData) Reset() { *x = ResInviteFriendData{} - mi := &file_Gameapi_proto_msgTypes[544] + mi := &file_Gameapi_proto_msgTypes[547] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31276,7 +31443,7 @@ func (x *ResInviteFriendData) String() string { func (*ResInviteFriendData) ProtoMessage() {} func (x *ResInviteFriendData) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[544] + mi := &file_Gameapi_proto_msgTypes[547] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31289,7 +31456,7 @@ func (x *ResInviteFriendData) ProtoReflect() protoreflect.Message { // Deprecated: Use ResInviteFriendData.ProtoReflect.Descriptor instead. func (*ResInviteFriendData) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{544} + return file_Gameapi_proto_rawDescGZIP(), []int{547} } func (x *ResInviteFriendData) GetIdLists() []int32 { @@ -31316,7 +31483,7 @@ type ReqSelfInvited struct { func (x *ReqSelfInvited) Reset() { *x = ReqSelfInvited{} - mi := &file_Gameapi_proto_msgTypes[545] + mi := &file_Gameapi_proto_msgTypes[548] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31328,7 +31495,7 @@ func (x *ReqSelfInvited) String() string { func (*ReqSelfInvited) ProtoMessage() {} func (x *ReqSelfInvited) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[545] + mi := &file_Gameapi_proto_msgTypes[548] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31341,7 +31508,7 @@ func (x *ReqSelfInvited) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqSelfInvited.ProtoReflect.Descriptor instead. func (*ReqSelfInvited) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{545} + return file_Gameapi_proto_rawDescGZIP(), []int{548} } func (x *ReqSelfInvited) GetInviterId() int32 { @@ -31361,7 +31528,7 @@ type ResSelfInvited struct { func (x *ResSelfInvited) Reset() { *x = ResSelfInvited{} - mi := &file_Gameapi_proto_msgTypes[546] + mi := &file_Gameapi_proto_msgTypes[549] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31373,7 +31540,7 @@ func (x *ResSelfInvited) String() string { func (*ResSelfInvited) ProtoMessage() {} func (x *ResSelfInvited) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[546] + mi := &file_Gameapi_proto_msgTypes[549] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31386,7 +31553,7 @@ func (x *ResSelfInvited) ProtoReflect() protoreflect.Message { // Deprecated: Use ResSelfInvited.ProtoReflect.Descriptor instead. func (*ResSelfInvited) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{546} + return file_Gameapi_proto_rawDescGZIP(), []int{549} } func (x *ResSelfInvited) GetResultCode() int32 { @@ -31407,7 +31574,7 @@ type NotifyInvitedSuccess struct { func (x *NotifyInvitedSuccess) Reset() { *x = NotifyInvitedSuccess{} - mi := &file_Gameapi_proto_msgTypes[547] + mi := &file_Gameapi_proto_msgTypes[550] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31419,7 +31586,7 @@ func (x *NotifyInvitedSuccess) String() string { func (*NotifyInvitedSuccess) ProtoMessage() {} func (x *NotifyInvitedSuccess) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[547] + mi := &file_Gameapi_proto_msgTypes[550] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31432,7 +31599,7 @@ func (x *NotifyInvitedSuccess) ProtoReflect() protoreflect.Message { // Deprecated: Use NotifyInvitedSuccess.ProtoReflect.Descriptor instead. func (*NotifyInvitedSuccess) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{547} + return file_Gameapi_proto_rawDescGZIP(), []int{550} } func (x *NotifyInvitedSuccess) GetResultCode() int32 { @@ -31459,7 +31626,7 @@ type ReqGetInviteReward struct { func (x *ReqGetInviteReward) Reset() { *x = ReqGetInviteReward{} - mi := &file_Gameapi_proto_msgTypes[548] + mi := &file_Gameapi_proto_msgTypes[551] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31471,7 +31638,7 @@ func (x *ReqGetInviteReward) String() string { func (*ReqGetInviteReward) ProtoMessage() {} func (x *ReqGetInviteReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[548] + mi := &file_Gameapi_proto_msgTypes[551] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31484,7 +31651,7 @@ func (x *ReqGetInviteReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqGetInviteReward.ProtoReflect.Descriptor instead. func (*ReqGetInviteReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{548} + return file_Gameapi_proto_rawDescGZIP(), []int{551} } func (x *ReqGetInviteReward) GetGetIndex() int32 { @@ -31504,7 +31671,7 @@ type ResGetInviteReward struct { func (x *ResGetInviteReward) Reset() { *x = ResGetInviteReward{} - mi := &file_Gameapi_proto_msgTypes[549] + mi := &file_Gameapi_proto_msgTypes[552] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31516,7 +31683,7 @@ func (x *ResGetInviteReward) String() string { func (*ResGetInviteReward) ProtoMessage() {} func (x *ResGetInviteReward) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[549] + mi := &file_Gameapi_proto_msgTypes[552] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31529,7 +31696,7 @@ func (x *ResGetInviteReward) ProtoReflect() protoreflect.Message { // Deprecated: Use ResGetInviteReward.ProtoReflect.Descriptor instead. func (*ResGetInviteReward) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{549} + return file_Gameapi_proto_rawDescGZIP(), []int{552} } func (x *ResGetInviteReward) GetResultCode() int32 { @@ -31549,7 +31716,7 @@ type ReqAutoAddInviteFriend struct { func (x *ReqAutoAddInviteFriend) Reset() { *x = ReqAutoAddInviteFriend{} - mi := &file_Gameapi_proto_msgTypes[550] + mi := &file_Gameapi_proto_msgTypes[553] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31561,7 +31728,7 @@ func (x *ReqAutoAddInviteFriend) String() string { func (*ReqAutoAddInviteFriend) ProtoMessage() {} func (x *ReqAutoAddInviteFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[550] + mi := &file_Gameapi_proto_msgTypes[553] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31574,7 +31741,7 @@ func (x *ReqAutoAddInviteFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ReqAutoAddInviteFriend.ProtoReflect.Descriptor instead. func (*ReqAutoAddInviteFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{550} + return file_Gameapi_proto_rawDescGZIP(), []int{553} } func (x *ReqAutoAddInviteFriend) GetId() int32 { @@ -31594,7 +31761,7 @@ type ResAutoAddInviteFriend struct { func (x *ResAutoAddInviteFriend) Reset() { *x = ResAutoAddInviteFriend{} - mi := &file_Gameapi_proto_msgTypes[551] + mi := &file_Gameapi_proto_msgTypes[554] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -31606,7 +31773,7 @@ func (x *ResAutoAddInviteFriend) String() string { func (*ResAutoAddInviteFriend) ProtoMessage() {} func (x *ResAutoAddInviteFriend) ProtoReflect() protoreflect.Message { - mi := &file_Gameapi_proto_msgTypes[551] + mi := &file_Gameapi_proto_msgTypes[554] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -31619,7 +31786,7 @@ func (x *ResAutoAddInviteFriend) ProtoReflect() protoreflect.Message { // Deprecated: Use ResAutoAddInviteFriend.ProtoReflect.Descriptor instead. func (*ResAutoAddInviteFriend) Descriptor() ([]byte, []int) { - return file_Gameapi_proto_rawDescGZIP(), []int{551} + return file_Gameapi_proto_rawDescGZIP(), []int{554} } func (x *ResAutoAddInviteFriend) GetResultCode() int32 { @@ -34953,482 +35120,498 @@ var file_Gameapi_proto_rawDesc = []byte{ 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x36, 0x0a, 0x0a, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x43, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0x60, 0x0a, 0x10, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0x15, - 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, - 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x43, 0x68, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x68, 0x65, - 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, - 0x67, 0x79, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x73, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0xe3, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, - 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, - 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, - 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0x8d, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, - 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, - 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x3f, 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xfb, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, - 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, - 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x05, 0x52, 0x65, 0x71, 0x4b, 0x76, 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, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, 0x0a, 0x05, 0x52, 0x65, 0x73, 0x4b, 0x76, 0x12, - 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, - 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4b, 0x76, 0x2e, 0x4b, 0x76, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, 0x1a, 0x35, 0x0a, 0x07, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, - 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x22, 0x43, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, - 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, - 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, - 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4a, 0x0a, - 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, - 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0a, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x22, 0x49, 0x0a, 0x0e, 0x52, - 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x37, 0x0a, - 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x09, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x45, 0x0a, 0x10, 0x52, 0x65, - 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x31, - 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x3d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x4c, - 0x6f, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, - 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x5d, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, - 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, - 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, - 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, - 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, - 0x5d, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, - 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x20, - 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x22, 0x5a, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, - 0x52, 0x65, 0x71, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x07, - 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x52, - 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x56, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x9f, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x3f, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, - 0x1a, 0x4f, 0x0a, 0x0d, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, - 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x90, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x22, 0x1d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x4d, - 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, - 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, - 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, - 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, - 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x36, 0x0a, 0x0a, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x02, 0x43, 0x64, 0x22, 0x60, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x43, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x43, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, + 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x1f, - 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, - 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, - 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, - 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, - 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xa1, 0x04, 0x0a, 0x09, 0x52, - 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0b, - 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, - 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x53, 0x68, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, - 0x12, 0x40, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, - 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, - 0x6f, 0x70, 0x12, 0x31, 0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x2e, 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x04, 0x47, 0x69, 0x66, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x02, 0x41, 0x64, 0x1a, 0x58, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x54, 0x0a, 0x0e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, - 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, 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, 0x3c, - 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x0c, - 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, - 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, - 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x46, 0x72, 0x65, - 0x65, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, - 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, - 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, - 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, - 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, - 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, - 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, - 0x73, 0x53, 0x68, 0x6f, 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, - 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, - 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x02, 0x49, 0x64, 0x12, 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, - 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x45, - 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x58, 0x0a, 0x10, - 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, - 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2a, + 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x68, 0x65, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x14, 0x52, 0x65, + 0x71, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, + 0x73, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x23, 0x0a, 0x0f, + 0x52, 0x65, 0x71, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, + 0x64, 0x22, 0x54, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, + 0x65, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xe3, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x6f, 0x75, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0x8d, 0x01, + 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x12, + 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, + 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, 0x46, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, + 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0x8f, 0x01, + 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x12, 0x31, + 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x3d, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, + 0x6f, 0x67, 0x12, 0x2a, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x3f, + 0x0a, 0x10, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, + 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0xfb, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x55, 0x69, 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, 0x46, 0x61, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x78, 0x43, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x78, 0x43, + 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x2f, 0x0a, + 0x05, 0x52, 0x65, 0x71, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x67, + 0x0a, 0x05, 0x52, 0x65, 0x73, 0x4b, 0x76, 0x12, 0x27, 0x0a, 0x02, 0x6b, 0x76, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x4b, 0x76, 0x2e, 0x4b, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x02, 0x6b, 0x76, + 0x1a, 0x35, 0x0a, 0x07, 0x4b, 0x76, 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, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x64, 0x22, 0x43, 0x0a, + 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x04, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, + 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x4d, 0x73, 0x67, 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, - 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, - 0x6f, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, - 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, - 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, - 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, - 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x64, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1a, 0x0a, 0x08, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, - 0x46, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, - 0x46, 0x6f, 0x72, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x2c, - 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x53, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x22, 0x64, 0x0a, 0x10, - 0x52, 0x65, 0x71, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, - 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x3a, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x5b, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, + 0x6c, 0x65, 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x12, + 0x0a, 0x10, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4d, + 0x73, 0x67, 0x22, 0x45, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x31, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, + 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x52, 0x07, 0x4d, 0x73, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x22, 0x3d, + 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4c, + 0x69, 0x6e, 0x65, 0x12, 0x28, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x4c, 0x6f, 0x67, 0x22, 0x71, 0x0a, + 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, + 0x52, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x55, 0x69, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, - 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, - 0x22, 0xa2, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, - 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, - 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x52, - 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, - 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, - 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, - 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, - 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x71, - 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe0, 0x01, - 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, - 0x6e, 0x6b, 0x12, 0x44, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, - 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, - 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, - 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, - 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe6, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x43, - 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, - 0x47, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, - 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, - 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, - 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, - 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, - 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x54, 0x0a, 0x0d, 0x52, 0x61, - 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, - 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x8f, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, - 0x72, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x4d, 0x61, 0x73, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, - 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, - 0x72, 0x64, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x1a, 0x37, - 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x39, 0x0a, 0x0b, 0x4d, 0x61, 0x73, 0x74, 0x65, - 0x72, 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, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, - 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x26, + 0x22, 0x22, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x55, 0x69, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, + 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, + 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x55, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x06, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, + 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5d, 0x0a, 0x0f, 0x52, + 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x4b, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, - 0x65, 0x78, 0x22, 0x2e, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, - 0x49, 0x64, 0x22, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x66, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x49, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x22, 0x30, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x34, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x28, - 0x0a, 0x16, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x41, - 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, + 0x71, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x5a, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x1d, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, + 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, + 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, + 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, + 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x56, 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x69, 0x6d, 0x70, 0x6c, + 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x0d, 0x0a, 0x0b, + 0x52, 0x65, 0x71, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x0b, + 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x08, 0x4d, + 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x69, 0x6c, + 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x4f, 0x0a, 0x0d, + 0x4d, 0x61, 0x69, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, + 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x69, + 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x22, 0x1d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, + 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, + 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4c, 0x0a, 0x10, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x1f, 0x0a, 0x0d, 0x52, 0x65, + 0x71, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, + 0x65, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x26, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, + 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0xa1, 0x04, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x05, 0x46, 0x69, 0x72, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0b, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x0b, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, + 0x12, 0x1a, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x40, 0x0a, 0x09, + 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x31, + 0x0a, 0x04, 0x47, 0x69, 0x66, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, + 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x2e, 0x47, 0x69, 0x66, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x47, 0x69, 0x66, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x41, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x41, + 0x64, 0x1a, 0x58, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x54, 0x0a, 0x0e, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, + 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x69, 0x66, 0x74, 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, 0x3c, 0x0a, 0x0e, 0x52, 0x65, + 0x73, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x14, 0x0a, 0x05, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x58, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, + 0x6f, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, + 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, + 0x70, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x21, 0x0a, 0x0f, 0x52, 0x65, + 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x0e, 0x0a, + 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, + 0x0f, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, + 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, + 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, + 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, + 0x71, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, + 0x70, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, + 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, + 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x22, 0x0c, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, + 0x22, 0xbf, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x12, + 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, + 0x47, 0x0a, 0x0b, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x2e, 0x45, 0x6e, 0x64, 0x6c, 0x65, + 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x45, 0x6e, 0x64, + 0x6c, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x58, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2e, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x6a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, + 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x12, + 0x0a, 0x10, 0x52, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, + 0x22, 0x6c, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, + 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x44, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, + 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x69, 0x67, 0x67, 0x79, + 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x22, 0x64, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, + 0x73, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x22, 0x64, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, + 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x53, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x50, 0x61, 0x79, 0x4f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4c, + 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x68, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x0e, 0x0a, 0x0c, + 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x22, 0xba, 0x01, 0x0a, + 0x0c, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x52, 0x61, 0x6e, + 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, + 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, + 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, + 0x45, 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, + 0x18, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, + 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, + 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, + 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x12, 0x0a, + 0x10, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, + 0x6b, 0x22, 0xe0, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, + 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x44, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, + 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, + 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, + 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x54, + 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x43, 0x68, 0x61, 0x6d, 0x70, + 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x22, 0xe6, 0x01, 0x0a, 0x13, + 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, 0x52, + 0x61, 0x6e, 0x6b, 0x12, 0x47, 0x0a, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x50, 0x72, 0x65, + 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, + 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x54, + 0x0a, 0x0d, 0x52, 0x61, 0x6e, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8f, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x43, 0x61, + 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x3b, 0x0a, + 0x06, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, + 0x53, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, + 0x61, 0x72, 0x1a, 0x37, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 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, 0x39, 0x0a, 0x0b, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 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, 0x25, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, + 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x55, + 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x72, 0x6c, 0x22, 0x4d, 0x0a, + 0x11, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x55, + 0x72, 0x6c, 0x12, 0x26, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x45, 0x53, 0x5f, + 0x43, 0x4f, 0x44, 0x45, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x2b, 0x0a, 0x13, + 0x52, 0x65, 0x71, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x4b, 0x0a, 0x13, 0x52, 0x65, 0x73, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x18, 0x0a, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x2e, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, + 0x66, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, + 0x66, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x50, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x07, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x73, 0x22, 0x30, 0x0a, 0x12, 0x52, 0x65, + 0x71, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x34, 0x0a, 0x12, + 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x2a, 0x42, 0x0a, 0x0b, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, - 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x55, 0x59, 0x10, 0x02, - 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, - 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, 0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, - 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, 0x09, 0x49, 0x54, 0x45, - 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, 0x45, 0x52, 0x47, 0x59, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x41, 0x52, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x2e, 0x2f, - 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x64, 0x65, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x22, 0x38, 0x0a, 0x16, + 0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x2a, 0x42, 0x0a, 0x0b, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, 0x0b, + 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x53, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, + 0x55, 0x59, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4c, 0x4c, 0x10, 0x03, 0x12, 0x0a, + 0x0a, 0x06, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x04, 0x2a, 0x21, 0x0a, 0x08, 0x52, 0x45, + 0x53, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x01, 0x2a, 0x2e, 0x0a, + 0x09, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x4e, + 0x45, 0x52, 0x47, 0x59, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x54, 0x41, 0x52, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x41, 0x4d, 0x4f, 0x4e, 0x44, 0x10, 0x02, 0x42, 0x08, 0x5a, + 0x06, 0x2e, 0x2e, 0x2f, 0x6d, 0x73, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -35444,7 +35627,7 @@ func file_Gameapi_proto_rawDescGZIP() []byte { } var file_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 619) +var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 622) var file_Gameapi_proto_goTypes = []any{ (HANDLE_TYPE)(0), // 0: tutorial.HANDLE_TYPE (RES_CODE)(0), // 1: tutorial.RES_CODE @@ -35910,232 +36093,235 @@ var file_Gameapi_proto_goTypes = []any{ (*ResLimitEventProgress)(nil), // 461: tutorial.ResLimitEventProgress (*ReqLimitEventReward)(nil), // 462: tutorial.ReqLimitEventReward (*ResLimitEventReward)(nil), // 463: tutorial.ResLimitEventReward - (*LimitEvent)(nil), // 464: tutorial.LimitEvent - (*LimitEventNotify)(nil), // 465: tutorial.LimitEventNotify - (*ReqLimitSenceReward)(nil), // 466: tutorial.ReqLimitSenceReward - (*ResLimitSenceReward)(nil), // 467: tutorial.ResLimitSenceReward - (*ResChessRainReward)(nil), // 468: tutorial.ResChessRainReward - (*ReqFastProduceReward)(nil), // 469: tutorial.ReqFastProduceReward - (*ResFastProduceReward)(nil), // 470: tutorial.ResFastProduceReward - (*ReqSearchPlayer)(nil), // 471: tutorial.ReqSearchPlayer - (*ResSearchPlayer)(nil), // 472: tutorial.ResSearchPlayer - (*ResPlayerSimple)(nil), // 473: tutorial.ResPlayerSimple - (*ResPlayerRank)(nil), // 474: tutorial.ResPlayerRank - (*ResFriendLog)(nil), // 475: tutorial.ResFriendLog - (*NotifyFriendLog)(nil), // 476: tutorial.NotifyFriendLog - (*NotifyFriendCard)(nil), // 477: tutorial.NotifyFriendCard - (*ResFriendCard)(nil), // 478: tutorial.ResFriendCard - (*ReqKv)(nil), // 479: tutorial.ReqKv - (*ResKv)(nil), // 480: tutorial.ResKv - (*ReqFriendRecommend)(nil), // 481: tutorial.ReqFriendRecommend - (*ResFriendRecommend)(nil), // 482: tutorial.ResFriendRecommend - (*ReqFriendIgnore)(nil), // 483: tutorial.ReqFriendIgnore - (*ResFriendIgnore)(nil), // 484: tutorial.ResFriendIgnore - (*ReqFriendList)(nil), // 485: tutorial.ReqFriendList - (*ResFriendList)(nil), // 486: tutorial.ResFriendList - (*ReqFriendApply)(nil), // 487: tutorial.ReqFriendApply - (*ResFriendApply)(nil), // 488: tutorial.ResFriendApply - (*ReqFriendCardMsg)(nil), // 489: tutorial.ReqFriendCardMsg - (*ResFriendCardMsg)(nil), // 490: tutorial.ResFriendCardMsg - (*ReqFriendTimeLine)(nil), // 491: tutorial.ReqFriendTimeLine - (*ResFriendTimeLine)(nil), // 492: tutorial.ResFriendTimeLine - (*ResFriendApplyNotify)(nil), // 493: tutorial.ResFriendApplyNotify - (*ReqApplyFriend)(nil), // 494: tutorial.ReqApplyFriend - (*ResApplyFriend)(nil), // 495: tutorial.ResApplyFriend - (*ReqAgreeFriend)(nil), // 496: tutorial.ReqAgreeFriend - (*ResAgreeFriend)(nil), // 497: tutorial.ResAgreeFriend - (*ReqRefuseFriend)(nil), // 498: tutorial.ReqRefuseFriend - (*ResRefuseFriend)(nil), // 499: tutorial.ResRefuseFriend - (*ReqDelFriend)(nil), // 500: tutorial.ReqDelFriend - (*ResDelFriend)(nil), // 501: tutorial.ResDelFriend - (*ReqRank)(nil), // 502: tutorial.ReqRank - (*ResRank)(nil), // 503: tutorial.ResRank - (*ReqMailList)(nil), // 504: tutorial.ReqMailList - (*ResMailList)(nil), // 505: tutorial.ResMailList - (*MailInfo)(nil), // 506: tutorial.MailInfo - (*ReqReadMail)(nil), // 507: tutorial.ReqReadMail - (*ResReadMail)(nil), // 508: tutorial.ResReadMail - (*ReqGetMailReward)(nil), // 509: tutorial.ReqGetMailReward - (*ResGetMailReward)(nil), // 510: tutorial.ResGetMailReward - (*ReqDeleteMail)(nil), // 511: tutorial.ReqDeleteMail - (*ResDeleteMail)(nil), // 512: tutorial.ResDeleteMail - (*ResCharge)(nil), // 513: tutorial.ResCharge - (*ResSpecialShop)(nil), // 514: tutorial.ResSpecialShop - (*ResChessShop)(nil), // 515: tutorial.ResChessShop - (*ReqFreeShop)(nil), // 516: tutorial.ReqFreeShop - (*ResFreeShop)(nil), // 517: tutorial.ResFreeShop - (*ReqBuyChessShop)(nil), // 518: tutorial.ReqBuyChessShop - (*ResBuyChessShop)(nil), // 519: tutorial.ResBuyChessShop - (*ReqRefreshChessShop)(nil), // 520: tutorial.ReqRefreshChessShop - (*ResRefreshChessShop)(nil), // 521: tutorial.ResRefreshChessShop - (*ReqEndless)(nil), // 522: tutorial.ReqEndless - (*ResEndless)(nil), // 523: tutorial.ResEndless - (*ResEndlessInfo)(nil), // 524: tutorial.ResEndlessInfo - (*ReqEndlessReward)(nil), // 525: tutorial.ReqEndlessReward - (*ResEndlessReward)(nil), // 526: tutorial.ResEndlessReward - (*ResPiggyBank)(nil), // 527: tutorial.ResPiggyBank - (*ReqPiggyBankReward)(nil), // 528: tutorial.ReqPiggyBankReward - (*ResPiggyBankReward)(nil), // 529: tutorial.ResPiggyBankReward - (*ReqCreateOrderSn)(nil), // 530: tutorial.ReqCreateOrderSn - (*ResCreateOrderSn)(nil), // 531: tutorial.ResCreateOrderSn - (*ReqShippingOrder)(nil), // 532: tutorial.ReqShippingOrder - (*ResShippingOrder)(nil), // 533: tutorial.ResShippingOrder - (*ReqChampship)(nil), // 534: tutorial.ReqChampship - (*ResChampship)(nil), // 535: tutorial.ResChampship - (*ReqChampshipReward)(nil), // 536: tutorial.ReqChampshipReward - (*ResChampshipReward)(nil), // 537: tutorial.ResChampshipReward - (*ReqChampshipRankReward)(nil), // 538: tutorial.ReqChampshipRankReward - (*ResChampshipRankReward)(nil), // 539: tutorial.ResChampshipRankReward - (*ReqChampshipRank)(nil), // 540: tutorial.ReqChampshipRank - (*ResChampshipRank)(nil), // 541: tutorial.ResChampshipRank - (*ReqChampshipPreRank)(nil), // 542: tutorial.ReqChampshipPreRank - (*ResChampshipPreRank)(nil), // 543: tutorial.ResChampshipPreRank - (*ResNotifyCard)(nil), // 544: tutorial.ResNotifyCard - (*ReqSetFacebookUrl)(nil), // 545: tutorial.ReqSetFacebookUrl - (*ResSetFacebookUrl)(nil), // 546: tutorial.ResSetFacebookUrl - (*ReqInviteFriendData)(nil), // 547: tutorial.ReqInviteFriendData - (*ResInviteFriendData)(nil), // 548: tutorial.ResInviteFriendData - (*ReqSelfInvited)(nil), // 549: tutorial.ReqSelfInvited - (*ResSelfInvited)(nil), // 550: tutorial.ResSelfInvited - (*NotifyInvitedSuccess)(nil), // 551: tutorial.NotifyInvitedSuccess - (*ReqGetInviteReward)(nil), // 552: tutorial.ReqGetInviteReward - (*ResGetInviteReward)(nil), // 553: tutorial.ResGetInviteReward - (*ReqAutoAddInviteFriend)(nil), // 554: tutorial.ReqAutoAddInviteFriend - (*ResAutoAddInviteFriend)(nil), // 555: tutorial.ResAutoAddInviteFriend - nil, // 556: tutorial.UpdateBaseItemInfo.MUpdateItemEntry - nil, // 557: tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry - nil, // 558: tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry - nil, // 559: tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry - nil, // 560: tutorial.ResPlayerPackData.MPackDataEntry - nil, // 561: tutorial.UpdatePlayerPackData.MPackDataEntry - nil, // 562: tutorial.ResPlayerChessData.MChessDataEntry - nil, // 563: tutorial.UpdatePlayerChessData.MChessDataEntry - nil, // 564: tutorial.ReqGetChessFromBuff.MChessDataEntry - nil, // 565: tutorial.ReqChessEx.MChessDataEntry - nil, // 566: tutorial.ReqPutChessInBag.MChessDataEntry - nil, // 567: tutorial.ReqTakeChessOutBag.MChessDataEntry - nil, // 568: tutorial.ResPlayerGiftData.MGiftDataEntry - nil, // 569: tutorial.UpdatePlayerGiftData.MGiftDataEntry - nil, // 570: tutorial.ResPlayerOrderData.MOrderDataEntry - nil, // 571: tutorial.UpdatePlayerOrderData.MOrderDataEntry - nil, // 572: tutorial.ResChessColorData.MChessColorDataEntry - nil, // 573: tutorial.UpdateChessColorData.MChessColorDataEntry - nil, // 574: tutorial.ResEmitMergeMap.MEmitMergeDataEntry - nil, // 575: tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry - nil, // 576: tutorial.ResEmitCountMap.MEmitCountDataEntry - nil, // 577: tutorial.UpdateEmitCountMap.MEmitCountDataEntry - nil, // 578: tutorial.ResEmitCDStartData.MEmitCDDataEntry - nil, // 579: tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry - nil, // 580: tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry - nil, // 581: tutorial.ResDecorateData.MDecorateDataEntry - nil, // 582: tutorial.UpdateDecorateData.MDecorateDataEntry - nil, // 583: tutorial.ResShopData.MShopTimeBuyDataEntry - nil, // 584: tutorial.ResShopData.MShopSaleBuyDataEntry - nil, // 585: tutorial.ResShopData.MPackBuyDataEntry - nil, // 586: tutorial.ResShopData.MSpecialOfferBuyDataEntry - nil, // 587: tutorial.ResShopData.MUISpecialOfferBuyDataEntry - nil, // 588: tutorial.ResShopData.MFreePackBuyDataEntry - nil, // 589: tutorial.ResShopData.MDiamondFirstBuyDataEntry - nil, // 590: tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry - nil, // 591: tutorial.ResShopBuy.MShopTimeBuyDataEntry - nil, // 592: tutorial.ReqRenewItemBuyCnt.MShopDataEntry - nil, // 593: tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry - nil, // 594: tutorial.ResKeyValueData.KeyValuesEntry - nil, // 595: tutorial.UpdateKeyValueData.KeyValuesEntry - nil, // 596: tutorial.ResAdPackData.PackDataEntry - nil, // 597: tutorial.NotifyAdPackData.PackDataEntry - nil, // 598: tutorial.ResWatchAdPack.PackDataEntry - nil, // 599: tutorial.ResPetHomeData.SelectDecorateMapEntry - nil, // 600: tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry - nil, // 601: tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry - nil, // 602: tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry - nil, // 603: tutorial.ResShiftVisitPet.SelectDecorateMapEntry - nil, // 604: tutorial.UseItemRequest.AttrsEntry - nil, // 605: tutorial.UseItemResponse.AttrsEntry - nil, // 606: tutorial.ResCardInfo.AllCardEntry - nil, // 607: tutorial.ResGuildInfo.RewardEntry - nil, // 608: tutorial.ResDailyTask.WeekRewardEntry - nil, // 609: tutorial.ResDailyTask.DailyTaskEntry - nil, // 610: tutorial.ResLimitEvent.LimitEventListEntry - nil, // 611: tutorial.ResLimitEventProgress.ProgressRewardEntry - nil, // 612: tutorial.ResKv.KvEntry - nil, // 613: tutorial.ResRank.RankListEntry - nil, // 614: tutorial.ResMailList.MailListEntry - nil, // 615: tutorial.ResCharge.SpecialShopEntry - nil, // 616: tutorial.ResCharge.ChessShopEntry - nil, // 617: tutorial.ResCharge.GiftEntry - nil, // 618: tutorial.ResEndless.EndlessListEntry - nil, // 619: tutorial.ResChampshipRank.RankListEntry - nil, // 620: tutorial.ResChampshipPreRank.RankListEntry - nil, // 621: tutorial.ResNotifyCard.CardEntry - nil, // 622: tutorial.ResNotifyCard.MasterEntry + (*ReqSelectLimitEvent)(nil), // 464: tutorial.ReqSelectLimitEvent + (*ResSelectLimitEvent)(nil), // 465: tutorial.ResSelectLimitEvent + (*LimitEvent)(nil), // 466: tutorial.LimitEvent + (*LimitEventNotify)(nil), // 467: tutorial.LimitEventNotify + (*ReqLimitSenceReward)(nil), // 468: tutorial.ReqLimitSenceReward + (*ResLimitSenceReward)(nil), // 469: tutorial.ResLimitSenceReward + (*ResChessRainReward)(nil), // 470: tutorial.ResChessRainReward + (*ReqFastProduceReward)(nil), // 471: tutorial.ReqFastProduceReward + (*ResFastProduceReward)(nil), // 472: tutorial.ResFastProduceReward + (*ReqSearchPlayer)(nil), // 473: tutorial.ReqSearchPlayer + (*ResSearchPlayer)(nil), // 474: tutorial.ResSearchPlayer + (*ResPlayerSimple)(nil), // 475: tutorial.ResPlayerSimple + (*ResPlayerRank)(nil), // 476: tutorial.ResPlayerRank + (*ResFriendLog)(nil), // 477: tutorial.ResFriendLog + (*NotifyFriendLog)(nil), // 478: tutorial.NotifyFriendLog + (*NotifyFriendCard)(nil), // 479: tutorial.NotifyFriendCard + (*ResFriendCard)(nil), // 480: tutorial.ResFriendCard + (*ReqKv)(nil), // 481: tutorial.ReqKv + (*ResKv)(nil), // 482: tutorial.ResKv + (*ReqFriendRecommend)(nil), // 483: tutorial.ReqFriendRecommend + (*ResFriendRecommend)(nil), // 484: tutorial.ResFriendRecommend + (*ReqFriendIgnore)(nil), // 485: tutorial.ReqFriendIgnore + (*ResFriendIgnore)(nil), // 486: tutorial.ResFriendIgnore + (*ReqFriendList)(nil), // 487: tutorial.ReqFriendList + (*ResFriendList)(nil), // 488: tutorial.ResFriendList + (*ReqFriendApply)(nil), // 489: tutorial.ReqFriendApply + (*ResFriendApply)(nil), // 490: tutorial.ResFriendApply + (*ResFriendApplyInfo)(nil), // 491: tutorial.ResFriendApplyInfo + (*ReqFriendCardMsg)(nil), // 492: tutorial.ReqFriendCardMsg + (*ResFriendCardMsg)(nil), // 493: tutorial.ResFriendCardMsg + (*ReqFriendTimeLine)(nil), // 494: tutorial.ReqFriendTimeLine + (*ResFriendTimeLine)(nil), // 495: tutorial.ResFriendTimeLine + (*ResFriendApplyNotify)(nil), // 496: tutorial.ResFriendApplyNotify + (*ReqApplyFriend)(nil), // 497: tutorial.ReqApplyFriend + (*ResApplyFriend)(nil), // 498: tutorial.ResApplyFriend + (*ReqAgreeFriend)(nil), // 499: tutorial.ReqAgreeFriend + (*ResAgreeFriend)(nil), // 500: tutorial.ResAgreeFriend + (*ReqRefuseFriend)(nil), // 501: tutorial.ReqRefuseFriend + (*ResRefuseFriend)(nil), // 502: tutorial.ResRefuseFriend + (*ReqDelFriend)(nil), // 503: tutorial.ReqDelFriend + (*ResDelFriend)(nil), // 504: tutorial.ResDelFriend + (*ReqRank)(nil), // 505: tutorial.ReqRank + (*ResRank)(nil), // 506: tutorial.ResRank + (*ReqMailList)(nil), // 507: tutorial.ReqMailList + (*ResMailList)(nil), // 508: tutorial.ResMailList + (*MailInfo)(nil), // 509: tutorial.MailInfo + (*ReqReadMail)(nil), // 510: tutorial.ReqReadMail + (*ResReadMail)(nil), // 511: tutorial.ResReadMail + (*ReqGetMailReward)(nil), // 512: tutorial.ReqGetMailReward + (*ResGetMailReward)(nil), // 513: tutorial.ResGetMailReward + (*ReqDeleteMail)(nil), // 514: tutorial.ReqDeleteMail + (*ResDeleteMail)(nil), // 515: tutorial.ResDeleteMail + (*ResCharge)(nil), // 516: tutorial.ResCharge + (*ResSpecialShop)(nil), // 517: tutorial.ResSpecialShop + (*ResChessShop)(nil), // 518: tutorial.ResChessShop + (*ReqFreeShop)(nil), // 519: tutorial.ReqFreeShop + (*ResFreeShop)(nil), // 520: tutorial.ResFreeShop + (*ReqBuyChessShop)(nil), // 521: tutorial.ReqBuyChessShop + (*ResBuyChessShop)(nil), // 522: tutorial.ResBuyChessShop + (*ReqRefreshChessShop)(nil), // 523: tutorial.ReqRefreshChessShop + (*ResRefreshChessShop)(nil), // 524: tutorial.ResRefreshChessShop + (*ReqEndless)(nil), // 525: tutorial.ReqEndless + (*ResEndless)(nil), // 526: tutorial.ResEndless + (*ResEndlessInfo)(nil), // 527: tutorial.ResEndlessInfo + (*ReqEndlessReward)(nil), // 528: tutorial.ReqEndlessReward + (*ResEndlessReward)(nil), // 529: tutorial.ResEndlessReward + (*ResPiggyBank)(nil), // 530: tutorial.ResPiggyBank + (*ReqPiggyBankReward)(nil), // 531: tutorial.ReqPiggyBankReward + (*ResPiggyBankReward)(nil), // 532: tutorial.ResPiggyBankReward + (*ReqCreateOrderSn)(nil), // 533: tutorial.ReqCreateOrderSn + (*ResCreateOrderSn)(nil), // 534: tutorial.ResCreateOrderSn + (*ReqShippingOrder)(nil), // 535: tutorial.ReqShippingOrder + (*ResShippingOrder)(nil), // 536: tutorial.ResShippingOrder + (*ReqChampship)(nil), // 537: tutorial.ReqChampship + (*ResChampship)(nil), // 538: tutorial.ResChampship + (*ReqChampshipReward)(nil), // 539: tutorial.ReqChampshipReward + (*ResChampshipReward)(nil), // 540: tutorial.ResChampshipReward + (*ReqChampshipRankReward)(nil), // 541: tutorial.ReqChampshipRankReward + (*ResChampshipRankReward)(nil), // 542: tutorial.ResChampshipRankReward + (*ReqChampshipRank)(nil), // 543: tutorial.ReqChampshipRank + (*ResChampshipRank)(nil), // 544: tutorial.ResChampshipRank + (*ReqChampshipPreRank)(nil), // 545: tutorial.ReqChampshipPreRank + (*ResChampshipPreRank)(nil), // 546: tutorial.ResChampshipPreRank + (*ResNotifyCard)(nil), // 547: tutorial.ResNotifyCard + (*ReqSetFacebookUrl)(nil), // 548: tutorial.ReqSetFacebookUrl + (*ResSetFacebookUrl)(nil), // 549: tutorial.ResSetFacebookUrl + (*ReqInviteFriendData)(nil), // 550: tutorial.ReqInviteFriendData + (*ResInviteFriendData)(nil), // 551: tutorial.ResInviteFriendData + (*ReqSelfInvited)(nil), // 552: tutorial.ReqSelfInvited + (*ResSelfInvited)(nil), // 553: tutorial.ResSelfInvited + (*NotifyInvitedSuccess)(nil), // 554: tutorial.NotifyInvitedSuccess + (*ReqGetInviteReward)(nil), // 555: tutorial.ReqGetInviteReward + (*ResGetInviteReward)(nil), // 556: tutorial.ResGetInviteReward + (*ReqAutoAddInviteFriend)(nil), // 557: tutorial.ReqAutoAddInviteFriend + (*ResAutoAddInviteFriend)(nil), // 558: tutorial.ResAutoAddInviteFriend + nil, // 559: tutorial.UpdateBaseItemInfo.MUpdateItemEntry + nil, // 560: tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry + nil, // 561: tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry + nil, // 562: tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry + nil, // 563: tutorial.ResPlayerPackData.MPackDataEntry + nil, // 564: tutorial.UpdatePlayerPackData.MPackDataEntry + nil, // 565: tutorial.ResPlayerChessData.MChessDataEntry + nil, // 566: tutorial.UpdatePlayerChessData.MChessDataEntry + nil, // 567: tutorial.ReqGetChessFromBuff.MChessDataEntry + nil, // 568: tutorial.ReqChessEx.MChessDataEntry + nil, // 569: tutorial.ReqPutChessInBag.MChessDataEntry + nil, // 570: tutorial.ReqTakeChessOutBag.MChessDataEntry + nil, // 571: tutorial.ResPlayerGiftData.MGiftDataEntry + nil, // 572: tutorial.UpdatePlayerGiftData.MGiftDataEntry + nil, // 573: tutorial.ResPlayerOrderData.MOrderDataEntry + nil, // 574: tutorial.UpdatePlayerOrderData.MOrderDataEntry + nil, // 575: tutorial.ResChessColorData.MChessColorDataEntry + nil, // 576: tutorial.UpdateChessColorData.MChessColorDataEntry + nil, // 577: tutorial.ResEmitMergeMap.MEmitMergeDataEntry + nil, // 578: tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry + nil, // 579: tutorial.ResEmitCountMap.MEmitCountDataEntry + nil, // 580: tutorial.UpdateEmitCountMap.MEmitCountDataEntry + nil, // 581: tutorial.ResEmitCDStartData.MEmitCDDataEntry + nil, // 582: tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry + nil, // 583: tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry + nil, // 584: tutorial.ResDecorateData.MDecorateDataEntry + nil, // 585: tutorial.UpdateDecorateData.MDecorateDataEntry + nil, // 586: tutorial.ResShopData.MShopTimeBuyDataEntry + nil, // 587: tutorial.ResShopData.MShopSaleBuyDataEntry + nil, // 588: tutorial.ResShopData.MPackBuyDataEntry + nil, // 589: tutorial.ResShopData.MSpecialOfferBuyDataEntry + nil, // 590: tutorial.ResShopData.MUISpecialOfferBuyDataEntry + nil, // 591: tutorial.ResShopData.MFreePackBuyDataEntry + nil, // 592: tutorial.ResShopData.MDiamondFirstBuyDataEntry + nil, // 593: tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry + nil, // 594: tutorial.ResShopBuy.MShopTimeBuyDataEntry + nil, // 595: tutorial.ReqRenewItemBuyCnt.MShopDataEntry + nil, // 596: tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry + nil, // 597: tutorial.ResKeyValueData.KeyValuesEntry + nil, // 598: tutorial.UpdateKeyValueData.KeyValuesEntry + nil, // 599: tutorial.ResAdPackData.PackDataEntry + nil, // 600: tutorial.NotifyAdPackData.PackDataEntry + nil, // 601: tutorial.ResWatchAdPack.PackDataEntry + nil, // 602: tutorial.ResPetHomeData.SelectDecorateMapEntry + nil, // 603: tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry + nil, // 604: tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry + nil, // 605: tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry + nil, // 606: tutorial.ResShiftVisitPet.SelectDecorateMapEntry + nil, // 607: tutorial.UseItemRequest.AttrsEntry + nil, // 608: tutorial.UseItemResponse.AttrsEntry + nil, // 609: tutorial.ResCardInfo.AllCardEntry + nil, // 610: tutorial.ResGuildInfo.RewardEntry + nil, // 611: tutorial.ResDailyTask.WeekRewardEntry + nil, // 612: tutorial.ResDailyTask.DailyTaskEntry + nil, // 613: tutorial.ResLimitEvent.LimitEventListEntry + nil, // 614: tutorial.ResLimitEventProgress.ProgressRewardEntry + nil, // 615: tutorial.ResKv.KvEntry + nil, // 616: tutorial.ResRank.RankListEntry + nil, // 617: tutorial.ResMailList.MailListEntry + nil, // 618: tutorial.ResCharge.SpecialShopEntry + nil, // 619: tutorial.ResCharge.ChessShopEntry + nil, // 620: tutorial.ResCharge.GiftEntry + nil, // 621: tutorial.ResEndless.EndlessListEntry + nil, // 622: tutorial.ResChampshipRank.RankListEntry + nil, // 623: tutorial.ResChampshipPreRank.RankListEntry + nil, // 624: tutorial.ResNotifyCard.CardEntry + nil, // 625: tutorial.ResNotifyCard.MasterEntry } var file_Gameapi_proto_depIdxs = []int32{ - 556, // 0: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry - 557, // 1: tutorial.ResPlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry - 558, // 2: tutorial.NotifyDailyRenewEmitUnlock.mEmitUnlockData:type_name -> tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry - 559, // 3: tutorial.UpdatePlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry - 560, // 4: tutorial.ResPlayerPackData.mPackData:type_name -> tutorial.ResPlayerPackData.MPackDataEntry - 561, // 5: tutorial.UpdatePlayerPackData.mPackData:type_name -> tutorial.UpdatePlayerPackData.MPackDataEntry - 562, // 6: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry + 559, // 0: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry + 560, // 1: tutorial.ResPlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.ResPlayerEmitUnlockData.MEmitUnlockDataEntry + 561, // 2: tutorial.NotifyDailyRenewEmitUnlock.mEmitUnlockData:type_name -> tutorial.NotifyDailyRenewEmitUnlock.MEmitUnlockDataEntry + 562, // 3: tutorial.UpdatePlayerEmitUnlockData.mEmitUnlockData:type_name -> tutorial.UpdatePlayerEmitUnlockData.MEmitUnlockDataEntry + 563, // 4: tutorial.ResPlayerPackData.mPackData:type_name -> tutorial.ResPlayerPackData.MPackDataEntry + 564, // 5: tutorial.UpdatePlayerPackData.mPackData:type_name -> tutorial.UpdatePlayerPackData.MPackDataEntry + 565, // 6: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry 37, // 7: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag 0, // 8: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE - 563, // 9: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry + 566, // 9: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry 30, // 10: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle 1, // 11: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE - 564, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry + 567, // 12: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry 1, // 13: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE - 565, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry + 568, // 14: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry 1, // 15: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE 38, // 16: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid - 566, // 17: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry + 569, // 17: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry 1, // 18: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE - 567, // 19: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry + 570, // 19: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry 1, // 20: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE 1, // 21: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE - 568, // 22: tutorial.ResPlayerGiftData.mGiftData:type_name -> tutorial.ResPlayerGiftData.MGiftDataEntry - 569, // 23: tutorial.UpdatePlayerGiftData.mGiftData:type_name -> tutorial.UpdatePlayerGiftData.MGiftDataEntry - 570, // 24: tutorial.ResPlayerOrderData.mOrderData:type_name -> tutorial.ResPlayerOrderData.MOrderDataEntry - 571, // 25: tutorial.UpdatePlayerOrderData.mOrderData:type_name -> tutorial.UpdatePlayerOrderData.MOrderDataEntry - 572, // 26: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry - 573, // 27: tutorial.UpdateChessColorData.mChessColorData:type_name -> tutorial.UpdateChessColorData.MChessColorDataEntry - 574, // 28: tutorial.ResEmitMergeMap.mEmitMergeData:type_name -> tutorial.ResEmitMergeMap.MEmitMergeDataEntry - 575, // 29: tutorial.UpdateEmitMergeMap.mEmitMergeData:type_name -> tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry - 576, // 30: tutorial.ResEmitCountMap.mEmitCountData:type_name -> tutorial.ResEmitCountMap.MEmitCountDataEntry - 577, // 31: tutorial.UpdateEmitCountMap.mEmitCountData:type_name -> tutorial.UpdateEmitCountMap.MEmitCountDataEntry - 578, // 32: tutorial.ResEmitCDStartData.mEmitCDData:type_name -> tutorial.ResEmitCDStartData.MEmitCDDataEntry - 579, // 33: tutorial.NotifyInitEmitCDTimeData.mEmitCDData:type_name -> tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry - 580, // 34: tutorial.NotifyEmitCDTimeEndData.mEmitCDData:type_name -> tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry - 581, // 35: tutorial.ResDecorateData.mDecorateData:type_name -> tutorial.ResDecorateData.MDecorateDataEntry - 582, // 36: tutorial.UpdateDecorateData.mDecorateData:type_name -> tutorial.UpdateDecorateData.MDecorateDataEntry - 583, // 37: tutorial.ResShopData.mShopTimeBuyData:type_name -> tutorial.ResShopData.MShopTimeBuyDataEntry - 584, // 38: tutorial.ResShopData.mShopSaleBuyData:type_name -> tutorial.ResShopData.MShopSaleBuyDataEntry - 585, // 39: tutorial.ResShopData.mPackBuyData:type_name -> tutorial.ResShopData.MPackBuyDataEntry - 586, // 40: tutorial.ResShopData.mSpecialOfferBuyData:type_name -> tutorial.ResShopData.MSpecialOfferBuyDataEntry - 587, // 41: tutorial.ResShopData.mUISpecialOfferBuyData:type_name -> tutorial.ResShopData.MUISpecialOfferBuyDataEntry - 588, // 42: tutorial.ResShopData.mFreePackBuyData:type_name -> tutorial.ResShopData.MFreePackBuyDataEntry - 589, // 43: tutorial.ResShopData.mDiamondFirstBuyData:type_name -> tutorial.ResShopData.MDiamondFirstBuyDataEntry - 590, // 44: tutorial.NotifyShopStatusChange.mShopTimeBuyData:type_name -> tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry - 591, // 45: tutorial.ResShopBuy.mShopTimeBuyData:type_name -> tutorial.ResShopBuy.MShopTimeBuyDataEntry - 592, // 46: tutorial.ReqRenewItemBuyCnt.mShopData:type_name -> tutorial.ReqRenewItemBuyCnt.MShopDataEntry - 593, // 47: tutorial.ResRenewItemBuyCnt.mShopTimeBuyData:type_name -> tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry + 571, // 22: tutorial.ResPlayerGiftData.mGiftData:type_name -> tutorial.ResPlayerGiftData.MGiftDataEntry + 572, // 23: tutorial.UpdatePlayerGiftData.mGiftData:type_name -> tutorial.UpdatePlayerGiftData.MGiftDataEntry + 573, // 24: tutorial.ResPlayerOrderData.mOrderData:type_name -> tutorial.ResPlayerOrderData.MOrderDataEntry + 574, // 25: tutorial.UpdatePlayerOrderData.mOrderData:type_name -> tutorial.UpdatePlayerOrderData.MOrderDataEntry + 575, // 26: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry + 576, // 27: tutorial.UpdateChessColorData.mChessColorData:type_name -> tutorial.UpdateChessColorData.MChessColorDataEntry + 577, // 28: tutorial.ResEmitMergeMap.mEmitMergeData:type_name -> tutorial.ResEmitMergeMap.MEmitMergeDataEntry + 578, // 29: tutorial.UpdateEmitMergeMap.mEmitMergeData:type_name -> tutorial.UpdateEmitMergeMap.MEmitMergeDataEntry + 579, // 30: tutorial.ResEmitCountMap.mEmitCountData:type_name -> tutorial.ResEmitCountMap.MEmitCountDataEntry + 580, // 31: tutorial.UpdateEmitCountMap.mEmitCountData:type_name -> tutorial.UpdateEmitCountMap.MEmitCountDataEntry + 581, // 32: tutorial.ResEmitCDStartData.mEmitCDData:type_name -> tutorial.ResEmitCDStartData.MEmitCDDataEntry + 582, // 33: tutorial.NotifyInitEmitCDTimeData.mEmitCDData:type_name -> tutorial.NotifyInitEmitCDTimeData.MEmitCDDataEntry + 583, // 34: tutorial.NotifyEmitCDTimeEndData.mEmitCDData:type_name -> tutorial.NotifyEmitCDTimeEndData.MEmitCDDataEntry + 584, // 35: tutorial.ResDecorateData.mDecorateData:type_name -> tutorial.ResDecorateData.MDecorateDataEntry + 585, // 36: tutorial.UpdateDecorateData.mDecorateData:type_name -> tutorial.UpdateDecorateData.MDecorateDataEntry + 586, // 37: tutorial.ResShopData.mShopTimeBuyData:type_name -> tutorial.ResShopData.MShopTimeBuyDataEntry + 587, // 38: tutorial.ResShopData.mShopSaleBuyData:type_name -> tutorial.ResShopData.MShopSaleBuyDataEntry + 588, // 39: tutorial.ResShopData.mPackBuyData:type_name -> tutorial.ResShopData.MPackBuyDataEntry + 589, // 40: tutorial.ResShopData.mSpecialOfferBuyData:type_name -> tutorial.ResShopData.MSpecialOfferBuyDataEntry + 590, // 41: tutorial.ResShopData.mUISpecialOfferBuyData:type_name -> tutorial.ResShopData.MUISpecialOfferBuyDataEntry + 591, // 42: tutorial.ResShopData.mFreePackBuyData:type_name -> tutorial.ResShopData.MFreePackBuyDataEntry + 592, // 43: tutorial.ResShopData.mDiamondFirstBuyData:type_name -> tutorial.ResShopData.MDiamondFirstBuyDataEntry + 593, // 44: tutorial.NotifyShopStatusChange.mShopTimeBuyData:type_name -> tutorial.NotifyShopStatusChange.MShopTimeBuyDataEntry + 594, // 45: tutorial.ResShopBuy.mShopTimeBuyData:type_name -> tutorial.ResShopBuy.MShopTimeBuyDataEntry + 595, // 46: tutorial.ReqRenewItemBuyCnt.mShopData:type_name -> tutorial.ReqRenewItemBuyCnt.MShopDataEntry + 596, // 47: tutorial.ResRenewItemBuyCnt.mShopTimeBuyData:type_name -> tutorial.ResRenewItemBuyCnt.MShopTimeBuyDataEntry 89, // 48: tutorial.ResBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct 89, // 49: tutorial.NotifyNewBriefEmailData.mEmailList:type_name -> tutorial.BriefEmailStruct 99, // 50: tutorial.NotifyLimitedTimeActiveData.mActiveList:type_name -> tutorial.LimitedTimeActiveStruct 100, // 51: tutorial.NotifyLimitedTimeActiveEnd.mActiveList:type_name -> tutorial.LimitedTimeEndStruct 154, // 52: tutorial.CategoryIllustratedData.Items:type_name -> tutorial.SingleIllustratedItem 155, // 53: tutorial.ResIllustratedInfo.Datas:type_name -> tutorial.CategoryIllustratedData - 594, // 54: tutorial.ResKeyValueData.KeyValues:type_name -> tutorial.ResKeyValueData.KeyValuesEntry - 595, // 55: tutorial.UpdateKeyValueData.KeyValues:type_name -> tutorial.UpdateKeyValueData.KeyValuesEntry + 597, // 54: tutorial.ResKeyValueData.KeyValues:type_name -> tutorial.ResKeyValueData.KeyValuesEntry + 598, // 55: tutorial.UpdateKeyValueData.KeyValues:type_name -> tutorial.UpdateKeyValueData.KeyValuesEntry 203, // 56: tutorial.ResChampshipData.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo 203, // 57: tutorial.NotifyNewChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo 203, // 58: tutorial.NotifyUpdateChampshipRank.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo 203, // 59: tutorial.ResChampshipAddScore.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo 203, // 60: tutorial.ResChampshipAddTime.GroupRankDataList:type_name -> tutorial.ChampshipsPlayerInfo 217, // 61: tutorial.ResPlayerPayData.PlayerPayData:type_name -> tutorial.PlayerPayItem - 596, // 62: tutorial.ResAdPackData.PackData:type_name -> tutorial.ResAdPackData.PackDataEntry - 597, // 63: tutorial.NotifyAdPackData.PackData:type_name -> tutorial.NotifyAdPackData.PackDataEntry - 598, // 64: tutorial.ResWatchAdPack.PackData:type_name -> tutorial.ResWatchAdPack.PackDataEntry + 599, // 62: tutorial.ResAdPackData.PackData:type_name -> tutorial.ResAdPackData.PackDataEntry + 600, // 63: tutorial.NotifyAdPackData.PackData:type_name -> tutorial.NotifyAdPackData.PackDataEntry + 601, // 64: tutorial.ResWatchAdPack.PackData:type_name -> tutorial.ResWatchAdPack.PackDataEntry 262, // 65: tutorial.ResFriendData.FriendInfos:type_name -> tutorial.FriendInfo 262, // 66: tutorial.AddFriendData.Finfo:type_name -> tutorial.FriendInfo 262, // 67: tutorial.ResWillPlayerDetail.PlayerInfos:type_name -> tutorial.FriendInfo @@ -36183,21 +36369,21 @@ var file_Gameapi_proto_depIdxs = []int32{ 341, // 109: tutorial.ResFriendEventData.MFriendEventData:type_name -> tutorial.FriendEventData 341, // 110: tutorial.NotifyNewFriendEvent.NewEvent:type_name -> tutorial.FriendEventData 257, // 111: tutorial.PetHomeInterActST.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData - 599, // 112: tutorial.ResPetHomeData.SelectDecorateMap:type_name -> tutorial.ResPetHomeData.SelectDecorateMapEntry - 600, // 113: tutorial.ReqSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry - 601, // 114: tutorial.ResSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry + 602, // 112: tutorial.ResPetHomeData.SelectDecorateMap:type_name -> tutorial.ResPetHomeData.SelectDecorateMapEntry + 603, // 113: tutorial.ReqSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ReqSaveSelectDecorate.SelectDecorateMapEntry + 604, // 114: tutorial.ResSaveSelectDecorate.SelectDecorateMap:type_name -> tutorial.ResSaveSelectDecorate.SelectDecorateMapEntry 257, // 115: tutorial.ResOpenOtherPetHome.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData - 602, // 116: tutorial.ResOpenOtherPetHome.SelectDecorateMap:type_name -> tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry + 605, // 116: tutorial.ResOpenOtherPetHome.SelectDecorateMap:type_name -> tutorial.ResOpenOtherPetHome.SelectDecorateMapEntry 349, // 117: tutorial.ResPetHomeInterActST.mPetHomeInterActSTs:type_name -> tutorial.PetHomeInterActST 257, // 118: tutorial.ResShiftVisitPet.BriefProfile:type_name -> tutorial.ResPlayerBriefProfileData - 603, // 119: tutorial.ResShiftVisitPet.SelectDecorateMap:type_name -> tutorial.ResShiftVisitPet.SelectDecorateMapEntry + 606, // 119: tutorial.ResShiftVisitPet.SelectDecorateMap:type_name -> tutorial.ResShiftVisitPet.SelectDecorateMapEntry 372, // 120: tutorial.UseItemRequest.items:type_name -> tutorial.Item 371, // 121: tutorial.UseItemRequest.price:type_name -> tutorial.IntPack - 604, // 122: tutorial.UseItemRequest.attrs:type_name -> tutorial.UseItemRequest.AttrsEntry + 607, // 122: tutorial.UseItemRequest.attrs:type_name -> tutorial.UseItemRequest.AttrsEntry 3, // 123: tutorial.UseItemResponse.code:type_name -> tutorial.UseItemResponse.CODE 372, // 124: tutorial.UseItemResponse.items:type_name -> tutorial.Item 371, // 125: tutorial.UseItemResponse.price:type_name -> tutorial.IntPack - 605, // 126: tutorial.UseItemResponse.attrs:type_name -> tutorial.UseItemResponse.AttrsEntry + 608, // 126: tutorial.UseItemResponse.attrs:type_name -> tutorial.UseItemResponse.AttrsEntry 1, // 127: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE 448, // 128: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo 444, // 129: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo @@ -36210,7 +36396,7 @@ var file_Gameapi_proto_depIdxs = []int32{ 1, // 136: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE 1, // 137: tutorial.ResDecorateAll.Code:type_name -> tutorial.RES_CODE 399, // 138: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card - 606, // 139: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry + 609, // 139: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry 1, // 140: tutorial.ResMasterCard.Code:type_name -> tutorial.RES_CODE 1, // 141: tutorial.ResCardCollectReward.Code:type_name -> tutorial.RES_CODE 1, // 142: tutorial.ResExStarReward.Code:type_name -> tutorial.RES_CODE @@ -36226,11 +36412,11 @@ var file_Gameapi_proto_depIdxs = []int32{ 1, // 152: tutorial.ResRefuseCardExchange.Code:type_name -> tutorial.RES_CODE 1, // 153: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE 1, // 154: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE - 607, // 155: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry + 610, // 155: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry 433, // 156: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo 434, // 157: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack - 608, // 158: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry - 609, // 159: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry + 611, // 158: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry + 612, // 159: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry 433, // 160: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo 438, // 161: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress 433, // 162: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo @@ -36248,67 +36434,69 @@ var file_Gameapi_proto_depIdxs = []int32{ 1, // 174: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE 1, // 175: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE 458, // 176: tutorial.ResAcitive.ActiveList:type_name -> tutorial.ActiveInfo - 610, // 177: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry - 611, // 178: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry + 613, // 177: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry + 614, // 178: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry 1, // 179: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE - 1, // 180: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE - 1, // 181: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE - 473, // 182: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple - 473, // 183: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple - 475, // 184: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog - 478, // 185: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard - 612, // 186: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry - 473, // 187: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple - 1, // 188: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE - 473, // 189: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple - 473, // 190: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResPlayerSimple - 478, // 191: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard - 475, // 192: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog - 473, // 193: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple - 1, // 194: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE - 1, // 195: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE - 473, // 196: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple - 1, // 197: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE - 1, // 198: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE - 613, // 199: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry - 614, // 200: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry - 433, // 201: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo - 1, // 202: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE - 1, // 203: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE - 1, // 204: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE - 615, // 205: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry - 616, // 206: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry - 617, // 207: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry - 1, // 208: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE - 1, // 209: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE - 1, // 210: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE - 618, // 211: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry - 433, // 212: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo - 1, // 213: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE - 1, // 214: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE - 1, // 215: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE - 1, // 216: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE - 1, // 217: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE - 619, // 218: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry - 620, // 219: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry - 621, // 220: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry - 622, // 221: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry - 1, // 222: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE - 436, // 223: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek - 437, // 224: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask - 464, // 225: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent - 473, // 226: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple - 506, // 227: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo - 514, // 228: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop - 515, // 229: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop - 524, // 230: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo - 474, // 231: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 474, // 232: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank - 233, // [233:233] is the sub-list for method output_type - 233, // [233:233] is the sub-list for method input_type - 233, // [233:233] is the sub-list for extension type_name - 233, // [233:233] is the sub-list for extension extendee - 0, // [0:233] is the sub-list for field type_name + 1, // 180: tutorial.ResSelectLimitEvent.Code:type_name -> tutorial.RES_CODE + 1, // 181: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE + 1, // 182: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE + 475, // 183: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple + 475, // 184: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple + 477, // 185: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog + 480, // 186: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard + 615, // 187: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry + 475, // 188: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple + 1, // 189: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE + 475, // 190: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple + 491, // 191: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo + 475, // 192: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple + 480, // 193: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard + 477, // 194: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog + 475, // 195: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple + 1, // 196: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE + 1, // 197: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE + 475, // 198: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple + 1, // 199: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE + 1, // 200: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE + 616, // 201: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry + 617, // 202: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry + 433, // 203: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo + 1, // 204: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE + 1, // 205: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE + 1, // 206: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE + 618, // 207: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry + 619, // 208: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry + 620, // 209: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry + 1, // 210: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE + 1, // 211: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE + 1, // 212: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE + 621, // 213: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry + 433, // 214: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo + 1, // 215: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE + 1, // 216: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE + 1, // 217: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE + 1, // 218: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE + 1, // 219: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE + 622, // 220: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry + 623, // 221: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry + 624, // 222: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry + 625, // 223: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry + 1, // 224: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE + 436, // 225: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek + 437, // 226: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask + 466, // 227: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent + 475, // 228: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple + 509, // 229: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo + 517, // 230: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop + 518, // 231: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop + 527, // 232: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo + 476, // 233: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 476, // 234: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank + 235, // [235:235] is the sub-list for method output_type + 235, // [235:235] is the sub-list for method input_type + 235, // [235:235] is the sub-list for extension type_name + 235, // [235:235] is the sub-list for extension extendee + 0, // [0:235] is the sub-list for field type_name } func init() { file_Gameapi_proto_init() } @@ -36322,7 +36510,7 @@ func file_Gameapi_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_Gameapi_proto_rawDesc, NumEnums: 4, - NumMessages: 619, + NumMessages: 622, NumExtensions: 0, NumServices: 0, }, diff --git a/src/server/pkg/github.com/name5566/leaf/leaf.go b/src/server/pkg/github.com/name5566/leaf/leaf.go index 2a499a4f..0fe74976 100644 --- a/src/server/pkg/github.com/name5566/leaf/leaf.go +++ b/src/server/pkg/github.com/name5566/leaf/leaf.go @@ -6,6 +6,7 @@ import ( "os/signal" mergeCluster "server/cluster" sconf "server/conf" + "server/game" "server/pkg/github.com/name5566/leaf/cluster" "server/pkg/github.com/name5566/leaf/conf" "server/pkg/github.com/name5566/leaf/console" @@ -44,10 +45,11 @@ func Run(mods ...module.Module) { // close c := make(chan os.Signal, 1) - signal.Notify(c, os.Interrupt, syscall.SIGTERM) + signal.Notify(c, os.Interrupt, syscall.SIGTERM, syscall.SIGINT, syscall.SIGKILL) sig := <-c fmt.Printf("Leaf closing down (signal: %v)\n", sig.String()) console.Destroy() cluster.Destroy() module.Destroy() + game.Destroy() }