// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.35.1 // protoc v5.28.2 // source: Gameapi.proto package msg import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ITEM_POP_LABEL int32 const ( ITEM_POP_LABEL_Playroom ITEM_POP_LABEL = 0 ITEM_POP_LABEL_PiggyBank ITEM_POP_LABEL = 1 ITEM_POP_LABEL_Charge ITEM_POP_LABEL = 2 ITEM_POP_LABEL_Endless ITEM_POP_LABEL = 3 ITEM_POP_LABEL_LevUpReward ITEM_POP_LABEL = 4 ITEM_POP_LABEL_HandleChess ITEM_POP_LABEL = 5 ITEM_POP_LABEL_HandbookReward ITEM_POP_LABEL = 6 ITEM_POP_LABEL_OrderReward ITEM_POP_LABEL = 7 ITEM_POP_LABEL_DecorateCost ITEM_POP_LABEL = 8 ITEM_POP_LABEL_DecorateAdd ITEM_POP_LABEL = 9 ITEM_POP_LABEL_BuyChessBagGrid ITEM_POP_LABEL = 10 ITEM_POP_LABEL_ChessEx ITEM_POP_LABEL = 11 ITEM_POP_LABEL_CardCollectReward ITEM_POP_LABEL = 12 ITEM_POP_LABEL_ExStarReward ITEM_POP_LABEL = 13 ITEM_POP_LABEL_AllCollectReward ITEM_POP_LABEL = 14 ITEM_POP_LABEL_GuideReward ITEM_POP_LABEL = 15 ITEM_POP_LABEL_DailyTaskReward ITEM_POP_LABEL = 16 ITEM_POP_LABEL_DailyWeekReward ITEM_POP_LABEL = 17 ITEM_POP_LABEL_BuyEnergy ITEM_POP_LABEL = 18 ITEM_POP_LABEL_SevenLoginRewardLabel ITEM_POP_LABEL = 19 ITEM_POP_LABEL_MonthLoginReward ITEM_POP_LABEL = 20 ITEM_POP_LABEL_FastProduceReward ITEM_POP_LABEL = 21 ITEM_POP_LABEL_LimitSenceReward ITEM_POP_LABEL = 22 ITEM_POP_LABEL_MailReward ITEM_POP_LABEL = 23 ITEM_POP_LABEL_FreeShop ITEM_POP_LABEL = 24 ITEM_POP_LABEL_ChessShop ITEM_POP_LABEL = 25 ITEM_POP_LABEL_RefreshChessShop ITEM_POP_LABEL = 26 ITEM_POP_LABEL_EndlessReward ITEM_POP_LABEL = 27 ITEM_POP_LABEL_PiggyBankReward ITEM_POP_LABEL = 28 ITEM_POP_LABEL_ChampshipReward ITEM_POP_LABEL = 29 ITEM_POP_LABEL_LimitEventReward ITEM_POP_LABEL = 30 ITEM_POP_LABEL_ChampshipRankReward ITEM_POP_LABEL = 31 ITEM_POP_LABEL_invite ITEM_POP_LABEL = 32 ITEM_POP_LABEL_SelectLimitEvent ITEM_POP_LABEL = 33 ITEM_POP_LABEL_MiningTake ITEM_POP_LABEL = 34 ITEM_POP_LABEL_MiningReward ITEM_POP_LABEL = 35 ITEM_POP_LABEL_GuessColor ITEM_POP_LABEL = 36 ITEM_POP_LABEL_GuessColorReward ITEM_POP_LABEL = 37 ITEM_POP_LABEL_RaceReward ITEM_POP_LABEL = 38 ITEM_POP_LABEL_PlayroomGame ITEM_POP_LABEL = 39 ITEM_POP_LABEL_PlayroomDraw ITEM_POP_LABEL = 40 ITEM_POP_LABEL_PlayroomChip ITEM_POP_LABEL = 41 ITEM_POP_LABEL_PlayroomFlip ITEM_POP_LABEL = 42 ITEM_POP_LABEL_FriendtreasureFilp ITEM_POP_LABEL = 43 // 宠物宝藏翻牌 ITEM_POP_LABEL_FriendtreasureEnd ITEM_POP_LABEL = 44 ITEM_POP_LABEL_GM ITEM_POP_LABEL = 45 ITEM_POP_LABEL_Friendtreasure ITEM_POP_LABEL = 46 ITEM_POP_LABEL_CardHandbookReward ITEM_POP_LABEL = 47 // 卡牌图鉴奖励 ITEM_POP_LABEL_LimitEventChestRain ITEM_POP_LABEL = 48 // 限时事件宝箱雨 ITEM_POP_LABEL_GetEnergyByAD ITEM_POP_LABEL = 49 // 看广告获取体力 ITEM_POP_LABEL_SourceChest ITEM_POP_LABEL = 50 // 开启资源宝箱 ITEM_POP_LABEL_PlayroomBuyItem ITEM_POP_LABEL = 51 // playroom打工购买物品 ITEM_POP_LABEL_CardSeasonFirstReward ITEM_POP_LABEL = 52 // 卡牌赛季初奖励 ) // Enum value maps for ITEM_POP_LABEL. var ( ITEM_POP_LABEL_name = map[int32]string{ 0: "Playroom", 1: "PiggyBank", 2: "Charge", 3: "Endless", 4: "LevUpReward", 5: "HandleChess", 6: "HandbookReward", 7: "OrderReward", 8: "DecorateCost", 9: "DecorateAdd", 10: "BuyChessBagGrid", 11: "ChessEx", 12: "CardCollectReward", 13: "ExStarReward", 14: "AllCollectReward", 15: "GuideReward", 16: "DailyTaskReward", 17: "DailyWeekReward", 18: "BuyEnergy", 19: "SevenLoginRewardLabel", 20: "MonthLoginReward", 21: "FastProduceReward", 22: "LimitSenceReward", 23: "MailReward", 24: "FreeShop", 25: "ChessShop", 26: "RefreshChessShop", 27: "EndlessReward", 28: "PiggyBankReward", 29: "ChampshipReward", 30: "LimitEventReward", 31: "ChampshipRankReward", 32: "invite", 33: "SelectLimitEvent", 34: "MiningTake", 35: "MiningReward", 36: "GuessColor", 37: "GuessColorReward", 38: "RaceReward", 39: "PlayroomGame", 40: "PlayroomDraw", 41: "PlayroomChip", 42: "PlayroomFlip", 43: "FriendtreasureFilp", 44: "FriendtreasureEnd", 45: "GM", 46: "Friendtreasure", 47: "CardHandbookReward", 48: "LimitEventChestRain", 49: "GetEnergyByAD", 50: "SourceChest", 51: "PlayroomBuyItem", 52: "CardSeasonFirstReward", } ITEM_POP_LABEL_value = map[string]int32{ "Playroom": 0, "PiggyBank": 1, "Charge": 2, "Endless": 3, "LevUpReward": 4, "HandleChess": 5, "HandbookReward": 6, "OrderReward": 7, "DecorateCost": 8, "DecorateAdd": 9, "BuyChessBagGrid": 10, "ChessEx": 11, "CardCollectReward": 12, "ExStarReward": 13, "AllCollectReward": 14, "GuideReward": 15, "DailyTaskReward": 16, "DailyWeekReward": 17, "BuyEnergy": 18, "SevenLoginRewardLabel": 19, "MonthLoginReward": 20, "FastProduceReward": 21, "LimitSenceReward": 22, "MailReward": 23, "FreeShop": 24, "ChessShop": 25, "RefreshChessShop": 26, "EndlessReward": 27, "PiggyBankReward": 28, "ChampshipReward": 29, "LimitEventReward": 30, "ChampshipRankReward": 31, "invite": 32, "SelectLimitEvent": 33, "MiningTake": 34, "MiningReward": 35, "GuessColor": 36, "GuessColorReward": 37, "RaceReward": 38, "PlayroomGame": 39, "PlayroomDraw": 40, "PlayroomChip": 41, "PlayroomFlip": 42, "FriendtreasureFilp": 43, "FriendtreasureEnd": 44, "GM": 45, "Friendtreasure": 46, "CardHandbookReward": 47, "LimitEventChestRain": 48, "GetEnergyByAD": 49, "SourceChest": 50, "PlayroomBuyItem": 51, "CardSeasonFirstReward": 52, } ) func (x ITEM_POP_LABEL) Enum() *ITEM_POP_LABEL { p := new(ITEM_POP_LABEL) *p = x return p } func (x ITEM_POP_LABEL) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ITEM_POP_LABEL) Descriptor() protoreflect.EnumDescriptor { return file_Gameapi_proto_enumTypes[0].Descriptor() } func (ITEM_POP_LABEL) Type() protoreflect.EnumType { return &file_Gameapi_proto_enumTypes[0] } func (x ITEM_POP_LABEL) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ITEM_POP_LABEL.Descriptor instead. func (ITEM_POP_LABEL) EnumDescriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{0} } type HANDLE_TYPE int32 const ( HANDLE_TYPE_ADD HANDLE_TYPE = 0 HANDLE_TYPE_COMPOSE HANDLE_TYPE = 1 HANDLE_TYPE_BUY HANDLE_TYPE = 2 HANDLE_TYPE_SELL HANDLE_TYPE = 3 HANDLE_TYPE_REMOVE HANDLE_TYPE = 4 ) // Enum value maps for HANDLE_TYPE. var ( HANDLE_TYPE_name = map[int32]string{ 0: "ADD", 1: "COMPOSE", 2: "BUY", 3: "SELL", 4: "REMOVE", } HANDLE_TYPE_value = map[string]int32{ "ADD": 0, "COMPOSE": 1, "BUY": 2, "SELL": 3, "REMOVE": 4, } ) func (x HANDLE_TYPE) Enum() *HANDLE_TYPE { p := new(HANDLE_TYPE) *p = x return p } func (x HANDLE_TYPE) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (HANDLE_TYPE) Descriptor() protoreflect.EnumDescriptor { return file_Gameapi_proto_enumTypes[1].Descriptor() } func (HANDLE_TYPE) Type() protoreflect.EnumType { return &file_Gameapi_proto_enumTypes[1] } func (x HANDLE_TYPE) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use HANDLE_TYPE.Descriptor instead. func (HANDLE_TYPE) EnumDescriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{1} } type RES_CODE int32 const ( RES_CODE_FAIL RES_CODE = 0 RES_CODE_SUCCESS RES_CODE = 1 ) // Enum value maps for RES_CODE. var ( RES_CODE_name = map[int32]string{ 0: "FAIL", 1: "SUCCESS", } RES_CODE_value = map[string]int32{ "FAIL": 0, "SUCCESS": 1, } ) func (x RES_CODE) Enum() *RES_CODE { p := new(RES_CODE) *p = x return p } func (x RES_CODE) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RES_CODE) Descriptor() protoreflect.EnumDescriptor { return file_Gameapi_proto_enumTypes[2].Descriptor() } func (RES_CODE) Type() protoreflect.EnumType { return &file_Gameapi_proto_enumTypes[2] } func (x RES_CODE) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use RES_CODE.Descriptor instead. func (RES_CODE) EnumDescriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{2} } type ITEM_TYPE int32 const ( ITEM_TYPE_ENERGY ITEM_TYPE = 0 ITEM_TYPE_STAR ITEM_TYPE = 1 ITEM_TYPE_DIAMOND ITEM_TYPE = 2 ) // Enum value maps for ITEM_TYPE. var ( ITEM_TYPE_name = map[int32]string{ 0: "ENERGY", 1: "STAR", 2: "DIAMOND", } ITEM_TYPE_value = map[string]int32{ "ENERGY": 0, "STAR": 1, "DIAMOND": 2, } ) func (x ITEM_TYPE) Enum() *ITEM_TYPE { p := new(ITEM_TYPE) *p = x return p } func (x ITEM_TYPE) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ITEM_TYPE) Descriptor() protoreflect.EnumDescriptor { return file_Gameapi_proto_enumTypes[3].Descriptor() } func (ITEM_TYPE) Type() protoreflect.EnumType { return &file_Gameapi_proto_enumTypes[3] } func (x ITEM_TYPE) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ITEM_TYPE.Descriptor instead. func (ITEM_TYPE) EnumDescriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{3} } type ClientReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` // serverMode/functionID Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` SessionId string `protobuf:"bytes,4,opt,name=sessionId,proto3" json:"sessionId,omitempty"` GatewayId string `protobuf:"bytes,5,opt,name=gatewayId,proto3" json:"gatewayId,omitempty"` UserId string `protobuf:"bytes,6,opt,name=userId,proto3" json:"userId,omitempty"` UserBase string `protobuf:"bytes,7,opt,name=userBase,proto3" json:"userBase,omitempty"` } func (x *ClientReq) Reset() { *x = ClientReq{} mi := &file_Gameapi_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ClientReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClientReq) ProtoMessage() {} func (x *ClientReq) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[0] 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 ClientReq.ProtoReflect.Descriptor instead. func (*ClientReq) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{0} } func (x *ClientReq) GetFunc() string { if x != nil { return x.Func } return "" } func (x *ClientReq) GetCid() string { if x != nil { return x.Cid } return "" } func (x *ClientReq) GetInfo() []byte { if x != nil { return x.Info } return nil } func (x *ClientReq) GetSessionId() string { if x != nil { return x.SessionId } return "" } func (x *ClientReq) GetGatewayId() string { if x != nil { return x.GatewayId } return "" } func (x *ClientReq) GetUserId() string { if x != nil { return x.UserId } return "" } func (x *ClientReq) GetUserBase() string { if x != nil { return x.UserBase } return "" } type ReqOfflineReconnect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqOfflineReconnect) Reset() { *x = ReqOfflineReconnect{} mi := &file_Gameapi_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqOfflineReconnect) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqOfflineReconnect) ProtoMessage() {} func (x *ReqOfflineReconnect) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[1] 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 ReqOfflineReconnect.ProtoReflect.Descriptor instead. func (*ReqOfflineReconnect) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{1} } func (x *ReqOfflineReconnect) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } type ResOfflineReconnect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` } func (x *ResOfflineReconnect) Reset() { *x = ResOfflineReconnect{} mi := &file_Gameapi_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResOfflineReconnect) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResOfflineReconnect) ProtoMessage() {} func (x *ResOfflineReconnect) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[2] 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 ResOfflineReconnect.ProtoReflect.Descriptor instead. func (*ResOfflineReconnect) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{2} } func (x *ResOfflineReconnect) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResOfflineReconnect) GetResult() int32 { if x != nil { return x.Result } return 0 } type ReqBindFacebookAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ReqBindFacebookAccount) Reset() { *x = ReqBindFacebookAccount{} mi := &file_Gameapi_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqBindFacebookAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqBindFacebookAccount) ProtoMessage() {} func (x *ReqBindFacebookAccount) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[3] 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 ReqBindFacebookAccount.ProtoReflect.Descriptor instead. func (*ReqBindFacebookAccount) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{3} } func (x *ReqBindFacebookAccount) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ReqBindFacebookAccount) GetBindAccountId() string { if x != nil { return x.BindAccountId } return "" } type ResBindFacebookAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResBindFacebookAccount) Reset() { *x = ResBindFacebookAccount{} mi := &file_Gameapi_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResBindFacebookAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResBindFacebookAccount) ProtoMessage() {} func (x *ResBindFacebookAccount) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[4] 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 ResBindFacebookAccount.ProtoReflect.Descriptor instead. func (*ResBindFacebookAccount) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{4} } func (x *ResBindFacebookAccount) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResBindFacebookAccount) GetBindAccountId() string { if x != nil { return x.BindAccountId } return "" } func (x *ResBindFacebookAccount) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } // //请求强制绑定已绑过其他设备的fb并且不同步数据 type ReqOnlyBindFacebook struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ReqOnlyBindFacebook) Reset() { *x = ReqOnlyBindFacebook{} mi := &file_Gameapi_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqOnlyBindFacebook) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqOnlyBindFacebook) ProtoMessage() {} func (x *ReqOnlyBindFacebook) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[5] 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 ReqOnlyBindFacebook.ProtoReflect.Descriptor instead. func (*ReqOnlyBindFacebook) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{5} } func (x *ReqOnlyBindFacebook) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ReqOnlyBindFacebook) GetBindAccountId() string { if x != nil { return x.BindAccountId } return "" } type ResOnlyBindFacebook struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` ResultCode int32 `protobuf:"varint,3,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResOnlyBindFacebook) Reset() { *x = ResOnlyBindFacebook{} mi := &file_Gameapi_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResOnlyBindFacebook) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResOnlyBindFacebook) ProtoMessage() {} func (x *ResOnlyBindFacebook) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[6] 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 ResOnlyBindFacebook.ProtoReflect.Descriptor instead. func (*ResOnlyBindFacebook) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{6} } func (x *ResOnlyBindFacebook) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResOnlyBindFacebook) GetBindAccountId() string { if x != nil { return x.BindAccountId } return "" } func (x *ResOnlyBindFacebook) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } // //请求接触绑定 type ReqUnBindFacebook struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ReqUnBindFacebook) Reset() { *x = ReqUnBindFacebook{} mi := &file_Gameapi_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqUnBindFacebook) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqUnBindFacebook) ProtoMessage() {} func (x *ReqUnBindFacebook) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[7] 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 ReqUnBindFacebook.ProtoReflect.Descriptor instead. func (*ReqUnBindFacebook) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{7} } func (x *ReqUnBindFacebook) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ReqUnBindFacebook) GetBindAccountId() string { if x != nil { return x.BindAccountId } return "" } type ResUnBindFacebook struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` BindAccountId string `protobuf:"bytes,2,opt,name=BindAccountId,proto3" json:"BindAccountId,omitempty"` } func (x *ResUnBindFacebook) Reset() { *x = ResUnBindFacebook{} mi := &file_Gameapi_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResUnBindFacebook) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResUnBindFacebook) ProtoMessage() {} func (x *ResUnBindFacebook) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[8] 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 ResUnBindFacebook.ProtoReflect.Descriptor instead. func (*ResUnBindFacebook) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{8} } func (x *ResUnBindFacebook) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } func (x *ResUnBindFacebook) GetBindAccountId() string { if x != nil { return x.BindAccountId } return "" } // //请求强制绑定已绑过其他设备的fb并且同步数据 type ReqSynGameData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` NewFBId string `protobuf:"bytes,2,opt,name=NewFBId,proto3" json:"NewFBId,omitempty"` } func (x *ReqSynGameData) Reset() { *x = ReqSynGameData{} mi := &file_Gameapi_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSynGameData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSynGameData) ProtoMessage() {} func (x *ReqSynGameData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[9] 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 ReqSynGameData.ProtoReflect.Descriptor instead. func (*ReqSynGameData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{9} } func (x *ReqSynGameData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ReqSynGameData) GetNewFBId() string { if x != nil { return x.NewFBId } return "" } type ResSynGameData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` ResultCode int32 `protobuf:"varint,2,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResSynGameData) Reset() { *x = ResSynGameData{} mi := &file_Gameapi_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSynGameData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSynGameData) ProtoMessage() {} func (x *ResSynGameData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[10] 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 ResSynGameData.ProtoReflect.Descriptor instead. func (*ResSynGameData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{10} } func (x *ResSynGameData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResSynGameData) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } type ForceKickOut struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ForceKickOut) Reset() { *x = ForceKickOut{} mi := &file_Gameapi_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ForceKickOut) String() string { return protoimpl.X.MessageStringOf(x) } func (*ForceKickOut) ProtoMessage() {} func (x *ForceKickOut) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[11] 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 ForceKickOut.ProtoReflect.Descriptor instead. func (*ForceKickOut) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{11} } type ResServerVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Version int32 `protobuf:"varint,1,opt,name=Version,proto3" json:"Version,omitempty"` } func (x *ResServerVersion) Reset() { *x = ResServerVersion{} mi := &file_Gameapi_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResServerVersion) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResServerVersion) ProtoMessage() {} func (x *ResServerVersion) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[12] 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 ResServerVersion.ProtoReflect.Descriptor instead. func (*ResServerVersion) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{12} } func (x *ResServerVersion) GetVersion() int32 { if x != nil { return x.Version } return 0 } type ResChessColorData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MChessColorData map[string]int32 `protobuf:"bytes,1,rep,name=mChessColorData,proto3" json:"mChessColorData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResChessColorData) Reset() { *x = ResChessColorData{} mi := &file_Gameapi_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChessColorData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChessColorData) ProtoMessage() {} func (x *ResChessColorData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[13] 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 ResChessColorData.ProtoReflect.Descriptor instead. func (*ResChessColorData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{13} } func (x *ResChessColorData) GetMChessColorData() map[string]int32 { if x != nil { return x.MChessColorData } return nil } type ClientRes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Func string `protobuf:"bytes,1,opt,name=func,proto3" json:"func,omitempty"` Cid string `protobuf:"bytes,2,opt,name=cid,proto3" json:"cid,omitempty"` Info []byte `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"` } func (x *ClientRes) Reset() { *x = ClientRes{} mi := &file_Gameapi_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ClientRes) String() string { return protoimpl.X.MessageStringOf(x) } func (*ClientRes) ProtoMessage() {} func (x *ClientRes) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[14] 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 ClientRes.ProtoReflect.Descriptor instead. func (*ClientRes) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{14} } func (x *ClientRes) GetFunc() string { if x != nil { return x.Func } return "" } func (x *ClientRes) GetCid() string { if x != nil { return x.Cid } return "" } func (x *ClientRes) GetInfo() []byte { if x != nil { return x.Info } return nil } // //请求注册账号 type ReqRegisterAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` DwUin int32 `protobuf:"varint,3,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqRegisterAccount) Reset() { *x = ReqRegisterAccount{} mi := &file_Gameapi_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRegisterAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRegisterAccount) ProtoMessage() {} func (x *ReqRegisterAccount) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[15] 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 ReqRegisterAccount.ProtoReflect.Descriptor instead. func (*ReqRegisterAccount) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{15} } func (x *ReqRegisterAccount) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *ReqRegisterAccount) GetUserPwd() string { if x != nil { return x.UserPwd } return "" } func (x *ReqRegisterAccount) GetDwUin() int32 { if x != nil { return x.DwUin } return 0 } // //响应注册账号 type ResRegisterAccount struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResRegisterAccount) Reset() { *x = ResRegisterAccount{} mi := &file_Gameapi_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRegisterAccount) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRegisterAccount) ProtoMessage() {} func (x *ResRegisterAccount) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[16] 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 ResRegisterAccount.ProtoReflect.Descriptor instead. func (*ResRegisterAccount) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{16} } func (x *ResRegisterAccount) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } // //请求登录 type ReqLogin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` UserPwd string `protobuf:"bytes,2,opt,name=UserPwd,proto3" json:"UserPwd,omitempty"` } func (x *ReqLogin) Reset() { *x = ReqLogin{} mi := &file_Gameapi_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqLogin) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqLogin) ProtoMessage() {} func (x *ReqLogin) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[17] 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 ReqLogin.ProtoReflect.Descriptor instead. func (*ReqLogin) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{17} } func (x *ReqLogin) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *ReqLogin) GetUserPwd() string { if x != nil { return x.UserPwd } return "" } // //响应登录 type ResLogin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` DwUin int64 `protobuf:"varint,2,opt,name=dwUin,proto3" json:"dwUin,omitempty"` UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` FaceBookId string `protobuf:"bytes,4,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` } func (x *ResLogin) Reset() { *x = ResLogin{} mi := &file_Gameapi_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResLogin) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResLogin) ProtoMessage() {} func (x *ResLogin) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[18] 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 ResLogin.ProtoReflect.Descriptor instead. func (*ResLogin) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{18} } func (x *ResLogin) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } func (x *ResLogin) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResLogin) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *ResLogin) GetFaceBookId() string { if x != nil { return x.FaceBookId } return "" } // /请求玩家基本信息(玩家登入成功后,第一条请求信息) type ReqPlayerBaseInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerBaseInfo) Reset() { *x = ReqPlayerBaseInfo{} mi := &file_Gameapi_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayerBaseInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayerBaseInfo) ProtoMessage() {} func (x *ReqPlayerBaseInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[19] 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 ReqPlayerBaseInfo.ProtoReflect.Descriptor instead. func (*ReqPlayerBaseInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{19} } func (x *ReqPlayerBaseInfo) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } // 响应基本信息 type ResPlayerBaseInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` StartOrderId string `protobuf:"bytes,8,opt,name=start_order_id,json=startOrderId,proto3" json:"start_order_id,omitempty"` MusicCode int32 `protobuf:"varint,9,opt,name=music_code,json=musicCode,proto3" json:"music_code,omitempty"` Guild int32 `protobuf:"varint,10,opt,name=guild,proto3" json:"guild,omitempty"` PackUnlockCount int32 `protobuf:"varint,11,opt,name=pack_unlock_count,json=packUnlockCount,proto3" json:"pack_unlock_count,omitempty"` LastPlayTime int32 `protobuf:"varint,12,opt,name=last_play_time,json=lastPlayTime,proto3" json:"last_play_time,omitempty"` EnergyBuyCount int32 `protobuf:"varint,13,opt,name=EnergyBuyCount,proto3" json:"EnergyBuyCount,omitempty"` UserName string `protobuf:"bytes,14,opt,name=user_name,json=userName,proto3" json:"user_name,omitempty"` LoginTime int32 `protobuf:"varint,15,opt,name=login_time,json=loginTime,proto3" json:"login_time,omitempty"` LogoutTime int32 `protobuf:"varint,16,opt,name=logout_time,json=logoutTime,proto3" json:"logout_time,omitempty"` Todayolinetime int32 `protobuf:"varint,17,opt,name=todayolinetime,proto3" json:"todayolinetime,omitempty"` Rolecreatetime int32 `protobuf:"varint,18,opt,name=rolecreatetime,proto3" json:"rolecreatetime,omitempty"` EmitOrderCnt int32 `protobuf:"varint,19,opt,name=EmitOrderCnt,proto3" json:"EmitOrderCnt,omitempty"` NoAd int32 `protobuf:"varint,20,opt,name=NoAd,proto3" json:"NoAd,omitempty"` ChampshipsGroupID int32 `protobuf:"varint,21,opt,name=ChampshipsGroupID,proto3" json:"ChampshipsGroupID,omitempty"` LastChampGroupID int32 `protobuf:"varint,22,opt,name=LastChampGroupID,proto3" json:"LastChampGroupID,omitempty"` FaceBookId string `protobuf:"bytes,23,opt,name=FaceBookId,proto3" json:"FaceBookId,omitempty"` } func (x *ResPlayerBaseInfo) Reset() { *x = ResPlayerBaseInfo{} mi := &file_Gameapi_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerBaseInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerBaseInfo) ProtoMessage() {} func (x *ResPlayerBaseInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[20] 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 ResPlayerBaseInfo.ProtoReflect.Descriptor instead. func (*ResPlayerBaseInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{20} } func (x *ResPlayerBaseInfo) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResPlayerBaseInfo) GetEnergy() int32 { if x != nil { return x.Energy } return 0 } func (x *ResPlayerBaseInfo) GetStar() int32 { if x != nil { return x.Star } return 0 } func (x *ResPlayerBaseInfo) GetRecoverTime() int32 { if x != nil { return x.RecoverTime } return 0 } func (x *ResPlayerBaseInfo) GetDiamond() int32 { if x != nil { return x.Diamond } return 0 } func (x *ResPlayerBaseInfo) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ResPlayerBaseInfo) GetExp() int32 { if x != nil { return x.Exp } return 0 } func (x *ResPlayerBaseInfo) GetStartOrderId() string { if x != nil { return x.StartOrderId } return "" } func (x *ResPlayerBaseInfo) GetMusicCode() int32 { if x != nil { return x.MusicCode } return 0 } func (x *ResPlayerBaseInfo) GetGuild() int32 { if x != nil { return x.Guild } return 0 } func (x *ResPlayerBaseInfo) GetPackUnlockCount() int32 { if x != nil { return x.PackUnlockCount } return 0 } func (x *ResPlayerBaseInfo) GetLastPlayTime() int32 { if x != nil { return x.LastPlayTime } return 0 } func (x *ResPlayerBaseInfo) GetEnergyBuyCount() int32 { if x != nil { return x.EnergyBuyCount } return 0 } func (x *ResPlayerBaseInfo) GetUserName() string { if x != nil { return x.UserName } return "" } func (x *ResPlayerBaseInfo) GetLoginTime() int32 { if x != nil { return x.LoginTime } return 0 } func (x *ResPlayerBaseInfo) GetLogoutTime() int32 { if x != nil { return x.LogoutTime } return 0 } func (x *ResPlayerBaseInfo) GetTodayolinetime() int32 { if x != nil { return x.Todayolinetime } return 0 } func (x *ResPlayerBaseInfo) GetRolecreatetime() int32 { if x != nil { return x.Rolecreatetime } return 0 } func (x *ResPlayerBaseInfo) GetEmitOrderCnt() int32 { if x != nil { return x.EmitOrderCnt } return 0 } func (x *ResPlayerBaseInfo) GetNoAd() int32 { if x != nil { return x.NoAd } return 0 } func (x *ResPlayerBaseInfo) GetChampshipsGroupID() int32 { if x != nil { return x.ChampshipsGroupID } return 0 } func (x *ResPlayerBaseInfo) GetLastChampGroupID() int32 { if x != nil { return x.LastChampGroupID } return 0 } func (x *ResPlayerBaseInfo) GetFaceBookId() string { if x != nil { return x.FaceBookId } return "" } type ReqPlayerAsset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayerAsset) Reset() { *x = ReqPlayerAsset{} mi := &file_Gameapi_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayerAsset) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayerAsset) ProtoMessage() {} func (x *ReqPlayerAsset) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[21] 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 ReqPlayerAsset.ProtoReflect.Descriptor instead. func (*ReqPlayerAsset) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{21} } // 玩家资产 type ResPlayerAsset struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` Energy int32 `protobuf:"varint,2,opt,name=energy,proto3" json:"energy,omitempty"` Star int32 `protobuf:"varint,3,opt,name=star,proto3" json:"star,omitempty"` RecoverTime int32 `protobuf:"varint,4,opt,name=recover_time,json=recoverTime,proto3" json:"recover_time,omitempty"` Diamond int32 `protobuf:"varint,5,opt,name=diamond,proto3" json:"diamond,omitempty"` Level int32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` Exp int32 `protobuf:"varint,7,opt,name=exp,proto3" json:"exp,omitempty"` Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` Logout int32 `protobuf:"varint,9,opt,name=Logout,proto3" json:"Logout,omitempty"` } func (x *ResPlayerAsset) Reset() { *x = ResPlayerAsset{} mi := &file_Gameapi_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerAsset) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerAsset) ProtoMessage() {} func (x *ResPlayerAsset) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[22] 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 ResPlayerAsset.ProtoReflect.Descriptor instead. func (*ResPlayerAsset) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{22} } func (x *ResPlayerAsset) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResPlayerAsset) GetEnergy() int32 { if x != nil { return x.Energy } return 0 } func (x *ResPlayerAsset) GetStar() int32 { if x != nil { return x.Star } return 0 } func (x *ResPlayerAsset) GetRecoverTime() int32 { if x != nil { return x.RecoverTime } return 0 } func (x *ResPlayerAsset) GetDiamond() int32 { if x != nil { return x.Diamond } return 0 } func (x *ResPlayerAsset) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ResPlayerAsset) GetExp() int32 { if x != nil { return x.Exp } return 0 } func (x *ResPlayerAsset) GetLogin() int32 { if x != nil { return x.Login } return 0 } func (x *ResPlayerAsset) GetLogout() int32 { if x != nil { return x.Logout } return 0 } // 客户端向服务器请求更新基本信息条目(没有响应) type UpdateBaseItemInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` MUpdateItem map[int32]int32 `protobuf:"bytes,2,rep,name=mUpdateItem,proto3" json:"mUpdateItem,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *UpdateBaseItemInfo) Reset() { *x = UpdateBaseItemInfo{} mi := &file_Gameapi_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UpdateBaseItemInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateBaseItemInfo) ProtoMessage() {} func (x *UpdateBaseItemInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[23] 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 UpdateBaseItemInfo.ProtoReflect.Descriptor instead. func (*UpdateBaseItemInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{23} } func (x *UpdateBaseItemInfo) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *UpdateBaseItemInfo) GetMUpdateItem() map[int32]int32 { if x != nil { return x.MUpdateItem } return nil } type NotifyRenewBuyEnergyCnt struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` CurCnt int32 `protobuf:"varint,2,opt,name=CurCnt,proto3" json:"CurCnt,omitempty"` } func (x *NotifyRenewBuyEnergyCnt) Reset() { *x = NotifyRenewBuyEnergyCnt{} mi := &file_Gameapi_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyRenewBuyEnergyCnt) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyRenewBuyEnergyCnt) ProtoMessage() {} func (x *NotifyRenewBuyEnergyCnt) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[24] 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 NotifyRenewBuyEnergyCnt.ProtoReflect.Descriptor instead. func (*NotifyRenewBuyEnergyCnt) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{24} } func (x *NotifyRenewBuyEnergyCnt) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *NotifyRenewBuyEnergyCnt) GetCurCnt() int32 { if x != nil { return x.CurCnt } return 0 } // /请求移除广告 type ReqRemoveAd struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqRemoveAd) Reset() { *x = ReqRemoveAd{} mi := &file_Gameapi_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRemoveAd) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRemoveAd) ProtoMessage() {} func (x *ReqRemoveAd) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[25] 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 ReqRemoveAd.ProtoReflect.Descriptor instead. func (*ReqRemoveAd) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{25} } func (x *ReqRemoveAd) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } // //响应移除广告 type ResRemoveAd struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResRemoveAd) Reset() { *x = ResRemoveAd{} mi := &file_Gameapi_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRemoveAd) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRemoveAd) ProtoMessage() {} func (x *ResRemoveAd) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[26] 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 ResRemoveAd.ProtoReflect.Descriptor instead. func (*ResRemoveAd) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{26} } func (x *ResRemoveAd) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } // 服务器向客户端通知间隔增长的体力 type NotifyAddEnergy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` AddCnt int32 `protobuf:"varint,2,opt,name=addCnt,proto3" json:"addCnt,omitempty"` } func (x *NotifyAddEnergy) Reset() { *x = NotifyAddEnergy{} mi := &file_Gameapi_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyAddEnergy) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyAddEnergy) ProtoMessage() {} func (x *NotifyAddEnergy) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[27] 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 NotifyAddEnergy.ProtoReflect.Descriptor instead. func (*NotifyAddEnergy) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{27} } func (x *NotifyAddEnergy) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *NotifyAddEnergy) GetAddCnt() int32 { if x != nil { return x.AddCnt } return 0 } // /请求服务器时间 type ReqServerTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqServerTime) Reset() { *x = ReqServerTime{} mi := &file_Gameapi_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqServerTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqServerTime) ProtoMessage() {} func (x *ReqServerTime) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[28] 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 ReqServerTime.ProtoReflect.Descriptor instead. func (*ReqServerTime) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{28} } func (x *ReqServerTime) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } // //响应服务器时间 type ResServerTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerTime int32 `protobuf:"varint,1,opt,name=ServerTime,proto3" json:"ServerTime,omitempty"` } func (x *ResServerTime) Reset() { *x = ResServerTime{} mi := &file_Gameapi_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResServerTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResServerTime) ProtoMessage() {} func (x *ResServerTime) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[29] 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 ResServerTime.ProtoReflect.Descriptor instead. func (*ResServerTime) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{29} } func (x *ResServerTime) GetServerTime() int32 { if x != nil { return x.ServerTime } return 0 } type ReqPlayerChessData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerChessData) Reset() { *x = ReqPlayerChessData{} mi := &file_Gameapi_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayerChessData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayerChessData) ProtoMessage() {} func (x *ReqPlayerChessData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[30] 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 ReqPlayerChessData.ProtoReflect.Descriptor instead. func (*ReqPlayerChessData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{30} } func (x *ReqPlayerChessData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } // /响应棋盘数据 type ResPlayerChessData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` ChessList []int32 `protobuf:"varint,3,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` ChessBuff []int32 `protobuf:"varint,4,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` } func (x *ResPlayerChessData) Reset() { *x = ResPlayerChessData{} mi := &file_Gameapi_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerChessData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerChessData) ProtoMessage() {} func (x *ResPlayerChessData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[31] 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 ResPlayerChessData.ProtoReflect.Descriptor instead. func (*ResPlayerChessData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{31} } func (x *ResPlayerChessData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResPlayerChessData) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } func (x *ResPlayerChessData) GetChessList() []int32 { if x != nil { return x.ChessList } return nil } func (x *ResPlayerChessData) GetChessBuff() []int32 { if x != nil { return x.ChessBuff } return nil } type ResPlayerChessInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessList []int32 `protobuf:"varint,1,rep,packed,name=ChessList,proto3" json:"ChessList,omitempty"` ChessBuff []int32 `protobuf:"varint,2,rep,packed,name=ChessBuff,proto3" json:"ChessBuff,omitempty"` ChessBag *ChessBag `protobuf:"bytes,3,opt,name=ChessBag,proto3" json:"ChessBag,omitempty"` RetireEmit []string `protobuf:"bytes,4,rep,name=RetireEmit,proto3" json:"RetireEmit,omitempty"` Honor []int32 `protobuf:"varint,5,rep,packed,name=Honor,proto3" json:"Honor,omitempty"` } func (x *ResPlayerChessInfo) Reset() { *x = ResPlayerChessInfo{} mi := &file_Gameapi_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerChessInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerChessInfo) ProtoMessage() {} func (x *ResPlayerChessInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[32] 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 ResPlayerChessInfo.ProtoReflect.Descriptor instead. func (*ResPlayerChessInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{32} } func (x *ResPlayerChessInfo) GetChessList() []int32 { if x != nil { return x.ChessList } return nil } func (x *ResPlayerChessInfo) GetChessBuff() []int32 { if x != nil { return x.ChessBuff } return nil } func (x *ResPlayerChessInfo) GetChessBag() *ChessBag { if x != nil { return x.ChessBag } return nil } func (x *ResPlayerChessInfo) GetRetireEmit() []string { if x != nil { return x.RetireEmit } return nil } func (x *ResPlayerChessInfo) GetHonor() []int32 { if x != nil { return x.Honor } return nil } // 棋盘操作队列 type ChessHandle struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type HANDLE_TYPE `protobuf:"varint,1,opt,name=type,proto3,enum=tutorial.HANDLE_TYPE" json:"type,omitempty"` Emit int32 `protobuf:"varint,2,opt,name=Emit,proto3" json:"Emit,omitempty"` ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` Id int32 `protobuf:"varint,4,opt,name=Id,proto3" json:"Id,omitempty"` ActType []int32 `protobuf:"varint,5,rep,packed,name=ActType,proto3" json:"ActType,omitempty"` // 活动类型 } func (x *ChessHandle) Reset() { *x = ChessHandle{} mi := &file_Gameapi_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ChessHandle) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChessHandle) ProtoMessage() {} func (x *ChessHandle) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[33] 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 ChessHandle.ProtoReflect.Descriptor instead. func (*ChessHandle) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{33} } func (x *ChessHandle) GetType() HANDLE_TYPE { if x != nil { return x.Type } return HANDLE_TYPE_ADD } func (x *ChessHandle) GetEmit() int32 { if x != nil { return x.Emit } return 0 } func (x *ChessHandle) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } func (x *ChessHandle) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ChessHandle) GetActType() []int32 { if x != nil { return x.ActType } return nil } // ///同步棋盘数据 type UpdatePlayerChessData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` MChessHandle []*ChessHandle `protobuf:"bytes,3,rep,name=mChessHandle,proto3" json:"mChessHandle,omitempty"` } func (x *UpdatePlayerChessData) Reset() { *x = UpdatePlayerChessData{} mi := &file_Gameapi_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UpdatePlayerChessData) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdatePlayerChessData) ProtoMessage() {} func (x *UpdatePlayerChessData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[34] 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 UpdatePlayerChessData.ProtoReflect.Descriptor instead. func (*UpdatePlayerChessData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{34} } func (x *UpdatePlayerChessData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *UpdatePlayerChessData) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } func (x *UpdatePlayerChessData) GetMChessHandle() []*ChessHandle { if x != nil { return x.MChessHandle } return nil } type ResUpdatePlayerChessData 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 *ResUpdatePlayerChessData) Reset() { *x = ResUpdatePlayerChessData{} mi := &file_Gameapi_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResUpdatePlayerChessData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResUpdatePlayerChessData) ProtoMessage() {} func (x *ResUpdatePlayerChessData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[35] 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 ResUpdatePlayerChessData.ProtoReflect.Descriptor instead. func (*ResUpdatePlayerChessData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{35} } func (x *ResUpdatePlayerChessData) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResUpdatePlayerChessData) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqSeparateChess struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqSeparateChess) Reset() { *x = ReqSeparateChess{} mi := &file_Gameapi_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSeparateChess) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSeparateChess) ProtoMessage() {} func (x *ReqSeparateChess) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[36] 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 ReqSeparateChess.ProtoReflect.Descriptor instead. func (*ReqSeparateChess) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{36} } func (x *ReqSeparateChess) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } func (x *ReqSeparateChess) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResSeparateChess 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 *ResSeparateChess) Reset() { *x = ResSeparateChess{} mi := &file_Gameapi_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSeparateChess) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSeparateChess) ProtoMessage() {} func (x *ResSeparateChess) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[37] 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 ResSeparateChess.ProtoReflect.Descriptor instead. func (*ResSeparateChess) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{37} } func (x *ResSeparateChess) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResSeparateChess) GetMsg() string { if x != nil { return x.Msg } return "" } // 从缓存中获取棋子 type ReqGetChessFromBuff struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqGetChessFromBuff) Reset() { *x = ReqGetChessFromBuff{} mi := &file_Gameapi_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetChessFromBuff) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetChessFromBuff) ProtoMessage() {} func (x *ReqGetChessFromBuff) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[38] 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 ReqGetChessFromBuff.ProtoReflect.Descriptor instead. func (*ReqGetChessFromBuff) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{38} } func (x *ReqGetChessFromBuff) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } func (x *ReqGetChessFromBuff) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResGetChessFromBuff 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 *ResGetChessFromBuff) Reset() { *x = ResGetChessFromBuff{} mi := &file_Gameapi_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetChessFromBuff) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetChessFromBuff) ProtoMessage() {} func (x *ResGetChessFromBuff) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[39] 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 ResGetChessFromBuff.ProtoReflect.Descriptor instead. func (*ResGetChessFromBuff) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{39} } func (x *ResGetChessFromBuff) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetChessFromBuff) GetMsg() string { if x != nil { return x.Msg } return "" } // 棋子转换 type ReqChessEx struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqChessEx) Reset() { *x = ReqChessEx{} mi := &file_Gameapi_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqChessEx) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqChessEx) ProtoMessage() {} func (x *ReqChessEx) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[40] 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 ReqChessEx.ProtoReflect.Descriptor instead. func (*ReqChessEx) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{40} } func (x *ReqChessEx) GetOldChessId() int32 { if x != nil { return x.OldChessId } return 0 } func (x *ReqChessEx) GetNewChessId() int32 { if x != nil { return x.NewChessId } return 0 } func (x *ReqChessEx) GetCostDia() int32 { if x != nil { return x.CostDia } return 0 } func (x *ReqChessEx) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ReqChessEx) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResChessEx 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 *ResChessEx) Reset() { *x = ResChessEx{} mi := &file_Gameapi_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChessEx) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChessEx) ProtoMessage() {} func (x *ResChessEx) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[41] 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 ResChessEx.ProtoReflect.Descriptor instead. func (*ResChessEx) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{41} } func (x *ResChessEx) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResChessEx) GetMsg() string { if x != nil { return x.Msg } return "" } // 开启资源宝箱 type ReqSourceChest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChestId int32 `protobuf:"varint,1,opt,name=ChestId,proto3" json:"ChestId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqSourceChest) Reset() { *x = ReqSourceChest{} mi := &file_Gameapi_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSourceChest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSourceChest) ProtoMessage() {} func (x *ReqSourceChest) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[42] 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 ReqSourceChest.ProtoReflect.Descriptor instead. func (*ReqSourceChest) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{42} } func (x *ReqSourceChest) GetChestId() int32 { if x != nil { return x.ChestId } return 0 } func (x *ReqSourceChest) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResSourceChest 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 *ResSourceChest) Reset() { *x = ResSourceChest{} mi := &file_Gameapi_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSourceChest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSourceChest) ProtoMessage() {} func (x *ResSourceChest) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[43] 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 ResSourceChest.ProtoReflect.Descriptor instead. func (*ResSourceChest) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{43} } func (x *ResSourceChest) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResSourceChest) GetMsg() string { if x != nil { return x.Msg } return "" } // playroom 打工离线 type ReqPlayroomOutline struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OldChessId int32 `protobuf:"varint,1,opt,name=OldChessId,proto3" json:"OldChessId,omitempty"` NewChessId int32 `protobuf:"varint,2,opt,name=NewChessId,proto3" json:"NewChessId,omitempty"` CostDia int32 `protobuf:"varint,3,opt,name=CostDia,proto3" json:"CostDia,omitempty"` Type int32 `protobuf:"varint,4,opt,name=Type,proto3" json:"Type,omitempty"` //1 气泡 2 宝箱解锁 3 快捷购买 4 打工离线 MChessData map[string]int32 `protobuf:"bytes,5,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqPlayroomOutline) Reset() { *x = ReqPlayroomOutline{} mi := &file_Gameapi_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomOutline) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomOutline) ProtoMessage() {} func (x *ReqPlayroomOutline) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[44] 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 ReqPlayroomOutline.ProtoReflect.Descriptor instead. func (*ReqPlayroomOutline) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{44} } func (x *ReqPlayroomOutline) GetOldChessId() int32 { if x != nil { return x.OldChessId } return 0 } func (x *ReqPlayroomOutline) GetNewChessId() int32 { if x != nil { return x.NewChessId } return 0 } func (x *ReqPlayroomOutline) GetCostDia() int32 { if x != nil { return x.CostDia } return 0 } func (x *ReqPlayroomOutline) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ReqPlayroomOutline) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResPlayroomOutline 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 *ResPlayroomOutline) Reset() { *x = ResPlayroomOutline{} mi := &file_Gameapi_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomOutline) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomOutline) ProtoMessage() {} func (x *ResPlayroomOutline) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[45] 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 ResPlayroomOutline.ProtoReflect.Descriptor instead. func (*ResPlayroomOutline) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{45} } func (x *ResPlayroomOutline) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomOutline) GetMsg() string { if x != nil { return x.Msg } return "" } // 棋盘背包 type ChessBag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessBagGrids []*ChessBagGrid `protobuf:"bytes,1,rep,name=ChessBagGrids,proto3" json:"ChessBagGrids,omitempty"` //已解锁棋盘背包格子 ChessBuyCnt int32 `protobuf:"varint,2,opt,name=ChessBuyCnt,proto3" json:"ChessBuyCnt,omitempty"` //已购买棋盘格子数 ChessFreeCnt int32 `protobuf:"varint,3,opt,name=ChessFreeCnt,proto3" json:"ChessFreeCnt,omitempty"` //剩余免费解锁次数 } func (x *ChessBag) Reset() { *x = ChessBag{} mi := &file_Gameapi_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ChessBag) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChessBag) ProtoMessage() {} func (x *ChessBag) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[46] 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 ChessBag.ProtoReflect.Descriptor instead. func (*ChessBag) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{46} } func (x *ChessBag) GetChessBagGrids() []*ChessBagGrid { if x != nil { return x.ChessBagGrids } return nil } func (x *ChessBag) GetChessBuyCnt() int32 { if x != nil { return x.ChessBuyCnt } return 0 } func (x *ChessBag) GetChessFreeCnt() int32 { if x != nil { return x.ChessFreeCnt } return 0 } type ChessBagGrid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //格子ID ChessId int32 `protobuf:"varint,2,opt,name=ChessId,proto3" json:"ChessId,omitempty"` //棋子ID EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID } func (x *ChessBagGrid) Reset() { *x = ChessBagGrid{} mi := &file_Gameapi_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ChessBagGrid) String() string { return protoimpl.X.MessageStringOf(x) } func (*ChessBagGrid) ProtoMessage() {} func (x *ChessBagGrid) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[47] 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 ChessBagGrid.ProtoReflect.Descriptor instead. func (*ChessBagGrid) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{47} } func (x *ChessBagGrid) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ChessBagGrid) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } func (x *ChessBagGrid) GetEmitId() int32 { if x != nil { return x.EmitId } return 0 } // 放置棋子进背包 type ReqPutChessInBag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` BagId int32 `protobuf:"varint,2,opt,name=BagId,proto3" json:"BagId,omitempty"` EmitId int32 `protobuf:"varint,3,opt,name=EmitId,proto3" json:"EmitId,omitempty"` //发射器ID MChessData map[string]int32 `protobuf:"bytes,4,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqPutChessInBag) Reset() { *x = ReqPutChessInBag{} mi := &file_Gameapi_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPutChessInBag) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPutChessInBag) ProtoMessage() {} func (x *ReqPutChessInBag) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[48] 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 ReqPutChessInBag.ProtoReflect.Descriptor instead. func (*ReqPutChessInBag) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{48} } func (x *ReqPutChessInBag) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } func (x *ReqPutChessInBag) GetBagId() int32 { if x != nil { return x.BagId } return 0 } func (x *ReqPutChessInBag) GetEmitId() int32 { if x != nil { return x.EmitId } return 0 } func (x *ReqPutChessInBag) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResPutChessInBag 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 *ResPutChessInBag) Reset() { *x = ResPutChessInBag{} mi := &file_Gameapi_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPutChessInBag) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPutChessInBag) ProtoMessage() {} func (x *ResPutChessInBag) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[49] 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 ResPutChessInBag.ProtoReflect.Descriptor instead. func (*ResPutChessInBag) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{49} } func (x *ResPutChessInBag) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPutChessInBag) GetMsg() string { if x != nil { return x.Msg } return "" } // 从背包取出棋子 type ReqTakeChessOutBag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields BagId int32 `protobuf:"varint,1,opt,name=BagId,proto3" json:"BagId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqTakeChessOutBag) Reset() { *x = ReqTakeChessOutBag{} mi := &file_Gameapi_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqTakeChessOutBag) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqTakeChessOutBag) ProtoMessage() {} func (x *ReqTakeChessOutBag) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[50] 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 ReqTakeChessOutBag.ProtoReflect.Descriptor instead. func (*ReqTakeChessOutBag) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{50} } func (x *ReqTakeChessOutBag) GetBagId() int32 { if x != nil { return x.BagId } return 0 } func (x *ReqTakeChessOutBag) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResTakeChessOutBag 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 *ResTakeChessOutBag) Reset() { *x = ResTakeChessOutBag{} mi := &file_Gameapi_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResTakeChessOutBag) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResTakeChessOutBag) ProtoMessage() {} func (x *ResTakeChessOutBag) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[51] 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 ResTakeChessOutBag.ProtoReflect.Descriptor instead. func (*ResTakeChessOutBag) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{51} } func (x *ResTakeChessOutBag) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResTakeChessOutBag) GetMsg() string { if x != nil { return x.Msg } return "" } // 购买棋盘格子 type ReqBuyChessBagGrid struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqBuyChessBagGrid) Reset() { *x = ReqBuyChessBagGrid{} mi := &file_Gameapi_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqBuyChessBagGrid) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqBuyChessBagGrid) ProtoMessage() {} func (x *ReqBuyChessBagGrid) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[52] 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 ReqBuyChessBagGrid.ProtoReflect.Descriptor instead. func (*ReqBuyChessBagGrid) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{52} } type ResBuyChessBagGrid 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 *ResBuyChessBagGrid) Reset() { *x = ResBuyChessBagGrid{} mi := &file_Gameapi_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResBuyChessBagGrid) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResBuyChessBagGrid) ProtoMessage() {} func (x *ResBuyChessBagGrid) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[53] 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 ResBuyChessBagGrid.ProtoReflect.Descriptor instead. func (*ResBuyChessBagGrid) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{53} } func (x *ResBuyChessBagGrid) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResBuyChessBagGrid) GetMsg() string { if x != nil { return x.Msg } return "" } // /请求玩家身份信息 type ReqPlayerProfileData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerProfileData) Reset() { *x = ReqPlayerProfileData{} mi := &file_Gameapi_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayerProfileData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayerProfileData) ProtoMessage() {} func (x *ReqPlayerProfileData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[54] 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 ReqPlayerProfileData.ProtoReflect.Descriptor instead. func (*ReqPlayerProfileData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{54} } func (x *ReqPlayerProfileData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } type ResPlayerProfileData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` UnlockFrame string `protobuf:"bytes,7,opt,name=UnlockFrame,proto3" json:"UnlockFrame,omitempty"` UnlockIcon string `protobuf:"bytes,8,opt,name=UnlockIcon,proto3" json:"UnlockIcon,omitempty"` ActiveTime int32 `protobuf:"varint,9,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` } func (x *ResPlayerProfileData) Reset() { *x = ResPlayerProfileData{} mi := &file_Gameapi_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerProfileData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerProfileData) ProtoMessage() {} func (x *ResPlayerProfileData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[55] 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 ResPlayerProfileData.ProtoReflect.Descriptor instead. func (*ResPlayerProfileData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{55} } func (x *ResPlayerProfileData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResPlayerProfileData) GetImageFrame() int32 { if x != nil { return x.ImageFrame } return 0 } func (x *ResPlayerProfileData) GetImageIcon() int32 { if x != nil { return x.ImageIcon } return 0 } func (x *ResPlayerProfileData) GetDecorateCnt() int32 { if x != nil { return x.DecorateCnt } return 0 } func (x *ResPlayerProfileData) GetNickName() string { if x != nil { return x.NickName } return "" } func (x *ResPlayerProfileData) GetPicURL() string { if x != nil { return x.PicURL } return "" } func (x *ResPlayerProfileData) GetUnlockFrame() string { if x != nil { return x.UnlockFrame } return "" } func (x *ResPlayerProfileData) GetUnlockIcon() string { if x != nil { return x.UnlockIcon } return "" } func (x *ResPlayerProfileData) GetActiveTime() int32 { if x != nil { return x.ActiveTime } return 0 } // /请求玩家身份信息 type ReqPlayerBriefProfileData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqPlayerBriefProfileData) Reset() { *x = ReqPlayerBriefProfileData{} mi := &file_Gameapi_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayerBriefProfileData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayerBriefProfileData) ProtoMessage() {} func (x *ReqPlayerBriefProfileData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[56] 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 ReqPlayerBriefProfileData.ProtoReflect.Descriptor instead. func (*ReqPlayerBriefProfileData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{56} } func (x *ReqPlayerBriefProfileData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } type ResPlayerBriefProfileData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` ImageFrame int32 `protobuf:"varint,2,opt,name=ImageFrame,proto3" json:"ImageFrame,omitempty"` ImageIcon int32 `protobuf:"varint,3,opt,name=ImageIcon,proto3" json:"ImageIcon,omitempty"` DecorateCnt int32 `protobuf:"varint,4,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` NickName string `protobuf:"bytes,5,opt,name=NickName,proto3" json:"NickName,omitempty"` PicURL string `protobuf:"bytes,6,opt,name=PicURL,proto3" json:"PicURL,omitempty"` ActiveTime int32 `protobuf:"varint,7,opt,name=ActiveTime,proto3" json:"ActiveTime,omitempty"` } func (x *ResPlayerBriefProfileData) Reset() { *x = ResPlayerBriefProfileData{} mi := &file_Gameapi_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerBriefProfileData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerBriefProfileData) ProtoMessage() {} func (x *ResPlayerBriefProfileData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[57] 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 ResPlayerBriefProfileData.ProtoReflect.Descriptor instead. func (*ResPlayerBriefProfileData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{57} } func (x *ResPlayerBriefProfileData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } func (x *ResPlayerBriefProfileData) GetImageFrame() int32 { if x != nil { return x.ImageFrame } return 0 } func (x *ResPlayerBriefProfileData) GetImageIcon() int32 { if x != nil { return x.ImageIcon } return 0 } func (x *ResPlayerBriefProfileData) GetDecorateCnt() int32 { if x != nil { return x.DecorateCnt } return 0 } func (x *ResPlayerBriefProfileData) GetNickName() string { if x != nil { return x.NickName } return "" } func (x *ResPlayerBriefProfileData) GetPicURL() string { if x != nil { return x.PicURL } return "" } func (x *ResPlayerBriefProfileData) GetActiveTime() int32 { if x != nil { return x.ActiveTime } return 0 } // 设置能量倍数 type ReqSetEnergyMul struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` } func (x *ReqSetEnergyMul) Reset() { *x = ReqSetEnergyMul{} mi := &file_Gameapi_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSetEnergyMul) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSetEnergyMul) ProtoMessage() {} func (x *ReqSetEnergyMul) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[58] 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 ReqSetEnergyMul.ProtoReflect.Descriptor instead. func (*ReqSetEnergyMul) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{58} } func (x *ReqSetEnergyMul) GetEnergyMul() int32 { if x != nil { return x.EnergyMul } return 0 } type ResSetEnergyMul struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetEnergyMul) Reset() { *x = ResSetEnergyMul{} mi := &file_Gameapi_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSetEnergyMul) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSetEnergyMul) ProtoMessage() {} func (x *ResSetEnergyMul) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[59] 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 ResSetEnergyMul.ProtoReflect.Descriptor instead. func (*ResSetEnergyMul) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{59} } func (x *ResSetEnergyMul) GetResultCode() RES_CODE { if x != nil { return x.ResultCode } return RES_CODE_FAIL } func (x *ResSetEnergyMul) GetMsg() string { if x != nil { return x.Msg } return "" } type BaseInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EnergyMul int32 `protobuf:"varint,1,opt,name=EnergyMul,proto3" json:"EnergyMul,omitempty"` // 能量倍数 IsFirstBuy bool `protobuf:"varint,2,opt,name=IsFirstBuy,proto3" json:"IsFirstBuy,omitempty"` // 是否已第一次购买体力商店 EnergyBuy int32 `protobuf:"varint,3,opt,name=EnergyBuy,proto3" json:"EnergyBuy,omitempty"` // 今日体力商店购买次数 EnergyAD int32 `protobuf:"varint,4,opt,name=EnergyAD,proto3" json:"EnergyAD,omitempty"` // 今日看广告获取体力次数 } func (x *BaseInfo) Reset() { *x = BaseInfo{} mi := &file_Gameapi_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BaseInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BaseInfo) ProtoMessage() {} func (x *BaseInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[60] 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 BaseInfo.ProtoReflect.Descriptor instead. func (*BaseInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{60} } func (x *BaseInfo) GetEnergyMul() int32 { if x != nil { return x.EnergyMul } return 0 } func (x *BaseInfo) GetIsFirstBuy() bool { if x != nil { return x.IsFirstBuy } return false } func (x *BaseInfo) GetEnergyBuy() int32 { if x != nil { return x.EnergyBuy } return 0 } func (x *BaseInfo) GetEnergyAD() int32 { if x != nil { return x.EnergyAD } return 0 } type ReqUserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqUserInfo) Reset() { *x = ReqUserInfo{} mi := &file_Gameapi_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqUserInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqUserInfo) ProtoMessage() {} func (x *ReqUserInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[61] 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 ReqUserInfo.ProtoReflect.Descriptor instead. func (*ReqUserInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{61} } type UserInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` Avatar int32 `protobuf:"varint,3,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Face int32 `protobuf:"varint,4,opt,name=Face,proto3" json:"Face,omitempty"` DecorateCnt int32 `protobuf:"varint,5,opt,name=DecorateCnt,proto3" json:"DecorateCnt,omitempty"` AvatarList []*AvatarInfo `protobuf:"bytes,6,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` FaceList []*FaceInfo `protobuf:"bytes,7,rep,name=FaceList,proto3" json:"FaceList,omitempty"` Login int32 `protobuf:"varint,8,opt,name=Login,proto3" json:"Login,omitempty"` // 登录 PetName string `protobuf:"bytes,9,opt,name=PetName,proto3" json:"PetName,omitempty"` //宠物名字 } func (x *UserInfo) Reset() { *x = UserInfo{} mi := &file_Gameapi_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *UserInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*UserInfo) ProtoMessage() {} func (x *UserInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[62] 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 UserInfo.ProtoReflect.Descriptor instead. func (*UserInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{62} } func (x *UserInfo) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *UserInfo) GetNickname() string { if x != nil { return x.Nickname } return "" } func (x *UserInfo) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *UserInfo) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *UserInfo) GetDecorateCnt() int32 { if x != nil { return x.DecorateCnt } return 0 } func (x *UserInfo) GetAvatarList() []*AvatarInfo { if x != nil { return x.AvatarList } return nil } func (x *UserInfo) GetFaceList() []*FaceInfo { if x != nil { return x.FaceList } return nil } func (x *UserInfo) GetLogin() int32 { if x != nil { return x.Login } return 0 } func (x *UserInfo) GetPetName() string { if x != nil { return x.PetName } return "" } // 设置昵称 type ReqSetName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` } func (x *ReqSetName) Reset() { *x = ReqSetName{} mi := &file_Gameapi_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSetName) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSetName) ProtoMessage() {} func (x *ReqSetName) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[63] 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 ReqSetName.ProtoReflect.Descriptor instead. func (*ReqSetName) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{63} } func (x *ReqSetName) GetName() string { if x != nil { return x.Name } return "" } type ResSetName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetName) Reset() { *x = ResSetName{} mi := &file_Gameapi_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSetName) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSetName) ProtoMessage() {} func (x *ResSetName) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[64] 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 ResSetName.ProtoReflect.Descriptor instead. func (*ResSetName) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{64} } func (x *ResSetName) GetResultCode() RES_CODE { if x != nil { return x.ResultCode } return RES_CODE_FAIL } func (x *ResSetName) GetMsg() string { if x != nil { return x.Msg } return "" } // 设置宠物名字 type ReqSetPetName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` } func (x *ReqSetPetName) Reset() { *x = ReqSetPetName{} mi := &file_Gameapi_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSetPetName) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSetPetName) ProtoMessage() {} func (x *ReqSetPetName) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[65] 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 ReqSetPetName.ProtoReflect.Descriptor instead. func (*ReqSetPetName) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{65} } func (x *ReqSetPetName) GetName() string { if x != nil { return x.Name } return "" } type ResSetPetName struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode RES_CODE `protobuf:"varint,1,opt,name=ResultCode,proto3,enum=tutorial.RES_CODE" json:"ResultCode,omitempty"` Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` } func (x *ResSetPetName) Reset() { *x = ResSetPetName{} mi := &file_Gameapi_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSetPetName) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSetPetName) ProtoMessage() {} func (x *ResSetPetName) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[66] 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 ResSetPetName.ProtoReflect.Descriptor instead. func (*ResSetPetName) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{66} } func (x *ResSetPetName) GetResultCode() RES_CODE { if x != nil { return x.ResultCode } return RES_CODE_FAIL } func (x *ResSetPetName) GetMsg() string { if x != nil { return x.Msg } return "" } // 购买能量 type ReqBuyEnergy struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` // 购买体力 } func (x *ReqBuyEnergy) Reset() { *x = ReqBuyEnergy{} mi := &file_Gameapi_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqBuyEnergy) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqBuyEnergy) ProtoMessage() {} func (x *ReqBuyEnergy) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[67] 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 ReqBuyEnergy.ProtoReflect.Descriptor instead. func (*ReqBuyEnergy) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{67} } func (x *ReqBuyEnergy) GetEnergy() int32 { if x != nil { return x.Energy } return 0 } type ResBuyEnergy 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 *ResBuyEnergy) Reset() { *x = ResBuyEnergy{} mi := &file_Gameapi_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResBuyEnergy) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResBuyEnergy) ProtoMessage() {} func (x *ResBuyEnergy) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[68] 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 ResBuyEnergy.ProtoReflect.Descriptor instead. func (*ResBuyEnergy) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{68} } func (x *ResBuyEnergy) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResBuyEnergy) GetMsg() string { if x != nil { return x.Msg } return "" } // 看广告获取能量 type ReqGetEnergyByAD struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqGetEnergyByAD) Reset() { *x = ReqGetEnergyByAD{} mi := &file_Gameapi_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetEnergyByAD) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetEnergyByAD) ProtoMessage() {} func (x *ReqGetEnergyByAD) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[69] 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 ReqGetEnergyByAD.ProtoReflect.Descriptor instead. func (*ReqGetEnergyByAD) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{69} } type ResGetEnergyByAD 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 *ResGetEnergyByAD) Reset() { *x = ResGetEnergyByAD{} mi := &file_Gameapi_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetEnergyByAD) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetEnergyByAD) ProtoMessage() {} func (x *ResGetEnergyByAD) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[70] 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 ResGetEnergyByAD.ProtoReflect.Descriptor instead. func (*ResGetEnergyByAD) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{70} } func (x *ResGetEnergyByAD) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetEnergyByAD) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqGetHandbookReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` } func (x *ReqGetHandbookReward) Reset() { *x = ReqGetHandbookReward{} mi := &file_Gameapi_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetHandbookReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetHandbookReward) ProtoMessage() {} func (x *ReqGetHandbookReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[71] 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 ReqGetHandbookReward.ProtoReflect.Descriptor instead. func (*ReqGetHandbookReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{71} } func (x *ReqGetHandbookReward) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } type HandbookInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChessId int32 `protobuf:"varint,1,opt,name=ChessId,proto3" json:"ChessId,omitempty"` Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` } func (x *HandbookInfo) Reset() { *x = HandbookInfo{} mi := &file_Gameapi_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *HandbookInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*HandbookInfo) ProtoMessage() {} func (x *HandbookInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[72] 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 HandbookInfo.ProtoReflect.Descriptor instead. func (*HandbookInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{72} } func (x *HandbookInfo) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } func (x *HandbookInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } type Handbook struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Handbooks []*HandbookInfo `protobuf:"bytes,1,rep,name=Handbooks,proto3" json:"Handbooks,omitempty"` } func (x *Handbook) Reset() { *x = Handbook{} mi := &file_Gameapi_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Handbook) String() string { return protoimpl.X.MessageStringOf(x) } func (*Handbook) ProtoMessage() {} func (x *Handbook) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[73] 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 Handbook.ProtoReflect.Descriptor instead. func (*Handbook) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{73} } func (x *Handbook) GetHandbooks() []*HandbookInfo { if x != nil { return x.Handbooks } return nil } type ResGetHandbookReward 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 *ResGetHandbookReward) Reset() { *x = ResGetHandbookReward{} mi := &file_Gameapi_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetHandbookReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetHandbookReward) ProtoMessage() {} func (x *ResGetHandbookReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[74] 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 ResGetHandbookReward.ProtoReflect.Descriptor instead. func (*ResGetHandbookReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{74} } func (x *ResGetHandbookReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetHandbookReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqRewardOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqRewardOrder) Reset() { *x = ReqRewardOrder{} mi := &file_Gameapi_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRewardOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRewardOrder) ProtoMessage() {} func (x *ReqRewardOrder) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[75] 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 ReqRewardOrder.ProtoReflect.Descriptor instead. func (*ReqRewardOrder) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{75} } func (x *ReqRewardOrder) GetOrderId() int32 { if x != nil { return x.OrderId } return 0 } func (x *ReqRewardOrder) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResRewardOrder 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 *ResRewardOrder) Reset() { *x = ResRewardOrder{} mi := &file_Gameapi_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRewardOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRewardOrder) ProtoMessage() {} func (x *ResRewardOrder) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[76] 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 ResRewardOrder.ProtoReflect.Descriptor instead. func (*ResRewardOrder) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{76} } func (x *ResRewardOrder) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRewardOrder) GetMsg() string { if x != nil { return x.Msg } return "" } // 删除订单 type ReqDelOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderId int32 `protobuf:"varint,1,opt,name=OrderId,proto3" json:"OrderId,omitempty"` } func (x *ReqDelOrder) Reset() { *x = ReqDelOrder{} mi := &file_Gameapi_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqDelOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqDelOrder) ProtoMessage() {} func (x *ReqDelOrder) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[77] 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 ReqDelOrder.ProtoReflect.Descriptor instead. func (*ReqDelOrder) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{77} } func (x *ReqDelOrder) GetOrderId() int32 { if x != nil { return x.OrderId } return 0 } type ResDelOrder 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 *ResDelOrder) Reset() { *x = ResDelOrder{} mi := &file_Gameapi_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDelOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDelOrder) ProtoMessage() {} func (x *ResDelOrder) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[78] 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 ResDelOrder.ProtoReflect.Descriptor instead. func (*ResDelOrder) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{78} } func (x *ResDelOrder) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResDelOrder) GetMsg() string { if x != nil { return x.Msg } return "" } type Order struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` ChessId []int32 `protobuf:"varint,2,rep,packed,name=ChessId,proto3" json:"ChessId,omitempty"` Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` } func (x *Order) Reset() { *x = Order{} mi := &file_Gameapi_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Order) String() string { return protoimpl.X.MessageStringOf(x) } func (*Order) ProtoMessage() {} func (x *Order) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[79] 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 Order.ProtoReflect.Descriptor instead. func (*Order) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{79} } func (x *Order) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Order) GetChessId() []int32 { if x != nil { return x.ChessId } return nil } func (x *Order) GetType() int32 { if x != nil { return x.Type } return 0 } type ResOrderList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderList []*Order `protobuf:"bytes,1,rep,name=OrderList,proto3" json:"OrderList,omitempty"` } func (x *ResOrderList) Reset() { *x = ResOrderList{} mi := &file_Gameapi_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResOrderList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResOrderList) ProtoMessage() {} func (x *ResOrderList) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[80] 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 ResOrderList.ProtoReflect.Descriptor instead. func (*ResOrderList) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{80} } func (x *ResOrderList) GetOrderList() []*Order { if x != nil { return x.OrderList } return nil } // 装饰信息 type ResDecorateInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` MFinishList []int32 `protobuf:"varint,2,rep,packed,name=mFinishList,proto3" json:"mFinishList,omitempty"` } func (x *ResDecorateInfo) Reset() { *x = ResDecorateInfo{} mi := &file_Gameapi_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDecorateInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDecorateInfo) ProtoMessage() {} func (x *ResDecorateInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[81] 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 ResDecorateInfo.ProtoReflect.Descriptor instead. func (*ResDecorateInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{81} } func (x *ResDecorateInfo) GetAreaId() int32 { if x != nil { return x.AreaId } return 0 } func (x *ResDecorateInfo) GetMFinishList() []int32 { if x != nil { return x.MFinishList } return nil } // 请求装饰基础信息 type ReqDecorate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AreaId int32 `protobuf:"varint,1,opt,name=AreaId,proto3" json:"AreaId,omitempty"` DecorateId int32 `protobuf:"varint,2,opt,name=DecorateId,proto3" json:"DecorateId,omitempty"` } func (x *ReqDecorate) Reset() { *x = ReqDecorate{} mi := &file_Gameapi_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqDecorate) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqDecorate) ProtoMessage() {} func (x *ReqDecorate) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[82] 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 ReqDecorate.ProtoReflect.Descriptor instead. func (*ReqDecorate) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{82} } func (x *ReqDecorate) GetAreaId() int32 { if x != nil { return x.AreaId } return 0 } func (x *ReqDecorate) GetDecorateId() int32 { if x != nil { return x.DecorateId } return 0 } type ResDecorate 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 *ResDecorate) Reset() { *x = ResDecorate{} mi := &file_Gameapi_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDecorate) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDecorate) ProtoMessage() {} func (x *ResDecorate) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[83] 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 ResDecorate.ProtoReflect.Descriptor instead. func (*ResDecorate) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{83} } func (x *ResDecorate) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResDecorate) GetMsg() string { if x != nil { return x.Msg } return "" } // 一键装饰 type ReqDecorateAll struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqDecorateAll) Reset() { *x = ReqDecorateAll{} mi := &file_Gameapi_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqDecorateAll) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqDecorateAll) ProtoMessage() {} func (x *ReqDecorateAll) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[84] 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 ReqDecorateAll.ProtoReflect.Descriptor instead. func (*ReqDecorateAll) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{84} } type ResDecorateAll 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 *ResDecorateAll) Reset() { *x = ResDecorateAll{} mi := &file_Gameapi_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDecorateAll) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDecorateAll) ProtoMessage() {} func (x *ResDecorateAll) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[85] 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 ResDecorateAll.ProtoReflect.Descriptor instead. func (*ResDecorateAll) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{85} } func (x *ResDecorateAll) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResDecorateAll) GetMsg() string { if x != nil { return x.Msg } return "" } // 请求Gm命令 type ReqGmCommand struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Command string `protobuf:"bytes,1,opt,name=Command,proto3" json:"Command,omitempty"` Args string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` } func (x *ReqGmCommand) Reset() { *x = ReqGmCommand{} mi := &file_Gameapi_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGmCommand) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGmCommand) ProtoMessage() {} func (x *ReqGmCommand) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[86] 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 ReqGmCommand.ProtoReflect.Descriptor instead. func (*ReqGmCommand) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{86} } func (x *ReqGmCommand) GetCommand() string { if x != nil { return x.Command } return "" } func (x *ReqGmCommand) GetArgs() string { if x != nil { return x.Args } return "" } // --------------卡牌------------ type Card struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` } func (x *Card) Reset() { *x = Card{} mi := &file_Gameapi_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Card) String() string { return protoimpl.X.MessageStringOf(x) } func (*Card) ProtoMessage() {} func (x *Card) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[87] 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 Card.ProtoReflect.Descriptor instead. func (*Card) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{87} } func (x *Card) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Card) GetCount() int32 { if x != nil { return x.Count } return 0 } type ReqCardInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqCardInfo) Reset() { *x = ReqCardInfo{} mi := &file_Gameapi_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardInfo) ProtoMessage() {} func (x *ReqCardInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[88] 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 ReqCardInfo.ProtoReflect.Descriptor instead. func (*ReqCardInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{88} } type ResCardInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CardList []*Card `protobuf:"bytes,1,rep,name=CardList,proto3" json:"CardList,omitempty"` // 卡牌列表 ExStar int32 `protobuf:"varint,2,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星级 Status int32 `protobuf:"varint,3,opt,name=Status,proto3" json:"Status,omitempty"` // 全收集奖励0:未领取 1:已领取 CollectId []int32 `protobuf:"varint,4,rep,packed,name=CollectId,proto3" json:"CollectId,omitempty"` // 已领取的收集奖励 ExTimes int32 `protobuf:"varint,5,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余交换次数 ReqTimes int32 `protobuf:"varint,6,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 AllCard map[int32]int32 `protobuf:"bytes,7,rep,name=AllCard,proto3" json:"AllCard,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 万能卡牌 EndTime int32 `protobuf:"varint,8,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //周期结束时间 ReqUid []int64 `protobuf:"varint,9,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid ExUid []int64 `protobuf:"varint,10,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid GoldTimes int32 `protobuf:"varint,11,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 Round int32 `protobuf:"varint,12,opt,name=Round,proto3" json:"Round,omitempty"` // 轮次 Handbook map[int32]int32 `protobuf:"bytes,13,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴 CardId => Status 1:已解锁 2:已领取 SeasonFirst bool `protobuf:"varint,14,opt,name=SeasonFirst,proto3" json:"SeasonFirst,omitempty"` // 是否已领取赛季初奖励 } func (x *ResCardInfo) Reset() { *x = ResCardInfo{} mi := &file_Gameapi_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardInfo) ProtoMessage() {} func (x *ResCardInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[89] 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 ResCardInfo.ProtoReflect.Descriptor instead. func (*ResCardInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{89} } func (x *ResCardInfo) GetCardList() []*Card { if x != nil { return x.CardList } return nil } func (x *ResCardInfo) GetExStar() int32 { if x != nil { return x.ExStar } return 0 } func (x *ResCardInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResCardInfo) GetCollectId() []int32 { if x != nil { return x.CollectId } return nil } func (x *ResCardInfo) GetExTimes() int32 { if x != nil { return x.ExTimes } return 0 } func (x *ResCardInfo) GetReqTimes() int32 { if x != nil { return x.ReqTimes } return 0 } func (x *ResCardInfo) GetAllCard() map[int32]int32 { if x != nil { return x.AllCard } return nil } func (x *ResCardInfo) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ResCardInfo) GetReqUid() []int64 { if x != nil { return x.ReqUid } return nil } func (x *ResCardInfo) GetExUid() []int64 { if x != nil { return x.ExUid } return nil } func (x *ResCardInfo) GetGoldTimes() int32 { if x != nil { return x.GoldTimes } return 0 } func (x *ResCardInfo) GetRound() int32 { if x != nil { return x.Round } return 0 } func (x *ResCardInfo) GetHandbook() map[int32]int32 { if x != nil { return x.Handbook } return nil } func (x *ResCardInfo) GetSeasonFirst() bool { if x != nil { return x.SeasonFirst } return false } type ResNotifyCardTimes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ExTimes int32 `protobuf:"varint,1,opt,name=ExTimes,proto3" json:"ExTimes,omitempty"` //剩余兑换次数 ReqTimes int32 `protobuf:"varint,2,opt,name=ReqTimes,proto3" json:"ReqTimes,omitempty"` //剩余请求次数 ReqUid []int64 `protobuf:"varint,3,rep,packed,name=ReqUid,proto3" json:"ReqUid,omitempty"` // 今日已请求的Uid ExUid []int64 `protobuf:"varint,4,rep,packed,name=ExUid,proto3" json:"ExUid,omitempty"` // 今日已置换的Uid GoldTimes int32 `protobuf:"varint,5,opt,name=GoldTimes,proto3" json:"GoldTimes,omitempty"` //剩余金卡交换次数 } func (x *ResNotifyCardTimes) Reset() { *x = ResNotifyCardTimes{} mi := &file_Gameapi_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResNotifyCardTimes) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResNotifyCardTimes) ProtoMessage() {} func (x *ResNotifyCardTimes) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[90] 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 ResNotifyCardTimes.ProtoReflect.Descriptor instead. func (*ResNotifyCardTimes) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{90} } func (x *ResNotifyCardTimes) GetExTimes() int32 { if x != nil { return x.ExTimes } return 0 } func (x *ResNotifyCardTimes) GetReqTimes() int32 { if x != nil { return x.ReqTimes } return 0 } func (x *ResNotifyCardTimes) GetReqUid() []int64 { if x != nil { return x.ReqUid } return nil } func (x *ResNotifyCardTimes) GetExUid() []int64 { if x != nil { return x.ExUid } return nil } func (x *ResNotifyCardTimes) GetGoldTimes() int32 { if x != nil { return x.GoldTimes } return 0 } type ReqCardSeasonFirstReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqCardSeasonFirstReward) Reset() { *x = ReqCardSeasonFirstReward{} mi := &file_Gameapi_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardSeasonFirstReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardSeasonFirstReward) ProtoMessage() {} func (x *ReqCardSeasonFirstReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[91] 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 ReqCardSeasonFirstReward.ProtoReflect.Descriptor instead. func (*ReqCardSeasonFirstReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{91} } type ResCardSeasonFirstReward 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 *ResCardSeasonFirstReward) Reset() { *x = ResCardSeasonFirstReward{} mi := &file_Gameapi_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardSeasonFirstReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardSeasonFirstReward) ProtoMessage() {} func (x *ResCardSeasonFirstReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[92] 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 ResCardSeasonFirstReward.ProtoReflect.Descriptor instead. func (*ResCardSeasonFirstReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{92} } func (x *ResCardSeasonFirstReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResCardSeasonFirstReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 领取卡牌图鉴奖励 type ReqCardHandbookReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CardId int32 `protobuf:"varint,1,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqCardHandbookReward) Reset() { *x = ReqCardHandbookReward{} mi := &file_Gameapi_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardHandbookReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardHandbookReward) ProtoMessage() {} func (x *ReqCardHandbookReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[93] 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 ReqCardHandbookReward.ProtoReflect.Descriptor instead. func (*ReqCardHandbookReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{93} } func (x *ReqCardHandbookReward) GetCardId() int32 { if x != nil { return x.CardId } return 0 } type ResCardHandbookReward 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"` CardId int32 `protobuf:"varint,3,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ResCardHandbookReward) Reset() { *x = ResCardHandbookReward{} mi := &file_Gameapi_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardHandbookReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardHandbookReward) ProtoMessage() {} func (x *ResCardHandbookReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[94] 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 ResCardHandbookReward.ProtoReflect.Descriptor instead. func (*ResCardHandbookReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{94} } func (x *ResCardHandbookReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResCardHandbookReward) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResCardHandbookReward) GetCardId() int32 { if x != nil { return x.CardId } return 0 } // 万能卡兑换 type ReqMasterCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 万能卡id 6 普通 7 金卡 CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` // 兑换的卡id } func (x *ReqMasterCard) Reset() { *x = ReqMasterCard{} mi := &file_Gameapi_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqMasterCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqMasterCard) ProtoMessage() {} func (x *ReqMasterCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[95] 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 ReqMasterCard.ProtoReflect.Descriptor instead. func (*ReqMasterCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{95} } func (x *ReqMasterCard) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ReqMasterCard) GetCardId() int32 { if x != nil { return x.CardId } return 0 } type ResMasterCard 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"` MasterId int32 `protobuf:"varint,3,opt,name=MasterId,proto3" json:"MasterId,omitempty"` CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ResMasterCard) Reset() { *x = ResMasterCard{} mi := &file_Gameapi_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResMasterCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResMasterCard) ProtoMessage() {} func (x *ResMasterCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[96] 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 ResMasterCard.ProtoReflect.Descriptor instead. func (*ResMasterCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{96} } func (x *ResMasterCard) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResMasterCard) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResMasterCard) GetMasterId() int32 { if x != nil { return x.MasterId } return 0 } func (x *ResMasterCard) GetCardId() int32 { if x != nil { return x.CardId } return 0 } // 领取卡牌系列收集奖励 type ReqCardCollectReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Color int32 `protobuf:"varint,1,opt,name=Color,proto3" json:"Color,omitempty"` } func (x *ReqCardCollectReward) Reset() { *x = ReqCardCollectReward{} mi := &file_Gameapi_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardCollectReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardCollectReward) ProtoMessage() {} func (x *ReqCardCollectReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[97] 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 ReqCardCollectReward.ProtoReflect.Descriptor instead. func (*ReqCardCollectReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{97} } func (x *ReqCardCollectReward) GetColor() int32 { if x != nil { return x.Color } return 0 } type ResCardCollectReward 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 *ResCardCollectReward) Reset() { *x = ResCardCollectReward{} mi := &file_Gameapi_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardCollectReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardCollectReward) ProtoMessage() {} func (x *ResCardCollectReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[98] 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 ResCardCollectReward.ProtoReflect.Descriptor instead. func (*ResCardCollectReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{98} } func (x *ResCardCollectReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResCardCollectReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 兑换收集星星奖励 type ReqExStarReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqExStarReward) Reset() { *x = ReqExStarReward{} mi := &file_Gameapi_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqExStarReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqExStarReward) ProtoMessage() {} func (x *ReqExStarReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[99] 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 ReqExStarReward.ProtoReflect.Descriptor instead. func (*ReqExStarReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{99} } func (x *ReqExStarReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResExStarReward 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 *ResExStarReward) Reset() { *x = ResExStarReward{} mi := &file_Gameapi_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResExStarReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResExStarReward) ProtoMessage() {} func (x *ResExStarReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[100] 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 ResExStarReward.ProtoReflect.Descriptor instead. func (*ResExStarReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{100} } func (x *ResExStarReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResExStarReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 领取全收集奖励 type ReqAllCollectReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqAllCollectReward) Reset() { *x = ReqAllCollectReward{} mi := &file_Gameapi_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAllCollectReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAllCollectReward) ProtoMessage() {} func (x *ReqAllCollectReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[101] 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 ReqAllCollectReward.ProtoReflect.Descriptor instead. func (*ReqAllCollectReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{101} } type ResAllCollectReward 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 *ResAllCollectReward) Reset() { *x = ResAllCollectReward{} mi := &file_Gameapi_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAllCollectReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAllCollectReward) ProtoMessage() {} func (x *ResAllCollectReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[102] 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 ResAllCollectReward.ProtoReflect.Descriptor instead. func (*ResAllCollectReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{102} } func (x *ResAllCollectReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResAllCollectReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 请求赠送卡片 type ReqCardGive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid []int64 `protobuf:"varint,1,rep,packed,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqCardGive) Reset() { *x = ReqCardGive{} mi := &file_Gameapi_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardGive) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardGive) ProtoMessage() {} func (x *ReqCardGive) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[103] 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 ReqCardGive.ProtoReflect.Descriptor instead. func (*ReqCardGive) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{103} } func (x *ReqCardGive) GetUid() []int64 { if x != nil { return x.Uid } return nil } func (x *ReqCardGive) GetCardId() int32 { if x != nil { return x.CardId } return 0 } type ResCardGive 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 *ResCardGive) Reset() { *x = ResCardGive{} mi := &file_Gameapi_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardGive) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardGive) ProtoMessage() {} func (x *ResCardGive) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[104] 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 ResCardGive.ProtoReflect.Descriptor instead. func (*ResCardGive) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{104} } func (x *ResCardGive) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResCardGive) GetMsg() string { if x != nil { return x.Msg } return "" } // 同意请求卡牌 type ReqAgreeCardGive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id } func (x *ReqAgreeCardGive) Reset() { *x = ReqAgreeCardGive{} mi := &file_Gameapi_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAgreeCardGive) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAgreeCardGive) ProtoMessage() {} func (x *ReqAgreeCardGive) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[105] 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 ReqAgreeCardGive.ProtoReflect.Descriptor instead. func (*ReqAgreeCardGive) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{105} } func (x *ReqAgreeCardGive) GetId() string { if x != nil { return x.Id } return "" } type ResAgreeCardGive 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResAgreeCardGive) Reset() { *x = ResAgreeCardGive{} mi := &file_Gameapi_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAgreeCardGive) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAgreeCardGive) ProtoMessage() {} func (x *ResAgreeCardGive) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[106] 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 ResAgreeCardGive.ProtoReflect.Descriptor instead. func (*ResAgreeCardGive) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{106} } func (x *ResAgreeCardGive) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResAgreeCardGive) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResAgreeCardGive) GetId() string { if x != nil { return x.Id } return "" } // 拒绝请求卡牌 type ReqRefuseCardGive struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` // Id } func (x *ReqRefuseCardGive) Reset() { *x = ReqRefuseCardGive{} mi := &file_Gameapi_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRefuseCardGive) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRefuseCardGive) ProtoMessage() {} func (x *ReqRefuseCardGive) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[107] 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 ReqRefuseCardGive.ProtoReflect.Descriptor instead. func (*ReqRefuseCardGive) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{107} } func (x *ReqRefuseCardGive) GetId() string { if x != nil { return x.Id } return "" } type ResRefuseCardGive 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResRefuseCardGive) Reset() { *x = ResRefuseCardGive{} mi := &file_Gameapi_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRefuseCardGive) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRefuseCardGive) ProtoMessage() {} func (x *ResRefuseCardGive) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[108] 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 ResRefuseCardGive.ProtoReflect.Descriptor instead. func (*ResRefuseCardGive) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{108} } func (x *ResRefuseCardGive) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRefuseCardGive) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResRefuseCardGive) GetId() string { if x != nil { return x.Id } return "" } // 直接赠送卡牌 type ReqCardSend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqCardSend) Reset() { *x = ReqCardSend{} mi := &file_Gameapi_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardSend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardSend) ProtoMessage() {} func (x *ReqCardSend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[109] 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 ReqCardSend.ProtoReflect.Descriptor instead. func (*ReqCardSend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{109} } func (x *ReqCardSend) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ReqCardSend) GetCardId() int32 { if x != nil { return x.CardId } return 0 } type ResCardSend 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 *ResCardSend) Reset() { *x = ResCardSend{} mi := &file_Gameapi_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardSend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardSend) ProtoMessage() {} func (x *ResCardSend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[110] 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 ResCardSend.ProtoReflect.Descriptor instead. func (*ResCardSend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{110} } func (x *ResCardSend) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResCardSend) GetMsg() string { if x != nil { return x.Msg } return "" } // 请求卡牌交换 type ReqCardExchange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqCardExchange) Reset() { *x = ReqCardExchange{} mi := &file_Gameapi_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCardExchange) ProtoMessage() {} func (x *ReqCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[111] 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 ReqCardExchange.ProtoReflect.Descriptor instead. func (*ReqCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{111} } func (x *ReqCardExchange) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ReqCardExchange) GetCardId() int32 { if x != nil { return x.CardId } return 0 } type ResCardExchange 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 *ResCardExchange) Reset() { *x = ResCardExchange{} mi := &file_Gameapi_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCardExchange) ProtoMessage() {} func (x *ResCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[112] 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 ResCardExchange.ProtoReflect.Descriptor instead. func (*ResCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{112} } func (x *ResCardExchange) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResCardExchange) GetMsg() string { if x != nil { return x.Msg } return "" } // 选择交换的卡牌 type ReqSelectCardExchange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` CardId int32 `protobuf:"varint,2,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ReqSelectCardExchange) Reset() { *x = ReqSelectCardExchange{} mi := &file_Gameapi_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSelectCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSelectCardExchange) ProtoMessage() {} func (x *ReqSelectCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[113] 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 ReqSelectCardExchange.ProtoReflect.Descriptor instead. func (*ReqSelectCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{113} } func (x *ReqSelectCardExchange) GetId() string { if x != nil { return x.Id } return "" } func (x *ReqSelectCardExchange) GetCardId() int32 { if x != nil { return x.CardId } return 0 } type ResSelectCardExchange 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResSelectCardExchange) Reset() { *x = ResSelectCardExchange{} mi := &file_Gameapi_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSelectCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSelectCardExchange) ProtoMessage() {} func (x *ResSelectCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[114] 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 ResSelectCardExchange.ProtoReflect.Descriptor instead. func (*ResSelectCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{114} } func (x *ResSelectCardExchange) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResSelectCardExchange) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResSelectCardExchange) GetId() string { if x != nil { return x.Id } return "" } // 同意卡牌交换 type ReqAgreeCardExchange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqAgreeCardExchange) Reset() { *x = ReqAgreeCardExchange{} mi := &file_Gameapi_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAgreeCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAgreeCardExchange) ProtoMessage() {} func (x *ReqAgreeCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[115] 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 ReqAgreeCardExchange.ProtoReflect.Descriptor instead. func (*ReqAgreeCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{115} } func (x *ReqAgreeCardExchange) GetId() string { if x != nil { return x.Id } return "" } type ResAgreeCardExchange 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResAgreeCardExchange) Reset() { *x = ResAgreeCardExchange{} mi := &file_Gameapi_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAgreeCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAgreeCardExchange) ProtoMessage() {} func (x *ResAgreeCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[116] 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 ResAgreeCardExchange.ProtoReflect.Descriptor instead. func (*ResAgreeCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{116} } func (x *ResAgreeCardExchange) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResAgreeCardExchange) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResAgreeCardExchange) GetId() string { if x != nil { return x.Id } return "" } // 拒绝选择卡牌进行交换 type ReqRefuseCardSelect struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqRefuseCardSelect) Reset() { *x = ReqRefuseCardSelect{} mi := &file_Gameapi_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRefuseCardSelect) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRefuseCardSelect) ProtoMessage() {} func (x *ReqRefuseCardSelect) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[117] 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 ReqRefuseCardSelect.ProtoReflect.Descriptor instead. func (*ReqRefuseCardSelect) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{117} } func (x *ReqRefuseCardSelect) GetId() string { if x != nil { return x.Id } return "" } type ResRefuseCardSelect 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResRefuseCardSelect) Reset() { *x = ResRefuseCardSelect{} mi := &file_Gameapi_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRefuseCardSelect) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRefuseCardSelect) ProtoMessage() {} func (x *ResRefuseCardSelect) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[118] 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 ResRefuseCardSelect.ProtoReflect.Descriptor instead. func (*ResRefuseCardSelect) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{118} } func (x *ResRefuseCardSelect) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRefuseCardSelect) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResRefuseCardSelect) GetId() string { if x != nil { return x.Id } return "" } // 拒绝卡牌交换 type ReqRefuseCardExchange struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqRefuseCardExchange) Reset() { *x = ReqRefuseCardExchange{} mi := &file_Gameapi_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRefuseCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRefuseCardExchange) ProtoMessage() {} func (x *ReqRefuseCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[119] 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 ReqRefuseCardExchange.ProtoReflect.Descriptor instead. func (*ReqRefuseCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{119} } func (x *ReqRefuseCardExchange) GetId() string { if x != nil { return x.Id } return "" } type ResRefuseCardExchange 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResRefuseCardExchange) Reset() { *x = ResRefuseCardExchange{} mi := &file_Gameapi_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRefuseCardExchange) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRefuseCardExchange) ProtoMessage() {} func (x *ResRefuseCardExchange) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[120] 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 ResRefuseCardExchange.ProtoReflect.Descriptor instead. func (*ResRefuseCardExchange) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{120} } func (x *ResRefuseCardExchange) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRefuseCardExchange) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResRefuseCardExchange) GetId() string { if x != nil { return x.Id } return "" } // 领取卡牌 type ReqGetFriendCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetFriendCard) Reset() { *x = ReqGetFriendCard{} mi := &file_Gameapi_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetFriendCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetFriendCard) ProtoMessage() {} func (x *ReqGetFriendCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[121] 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 ReqGetFriendCard.ProtoReflect.Descriptor instead. func (*ReqGetFriendCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{121} } func (x *ReqGetFriendCard) GetId() string { if x != nil { return x.Id } return "" } type ResGetFriendCard 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"` Id string `protobuf:"bytes,3,opt,name=Id,proto3" json:"Id,omitempty"` CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` } func (x *ResGetFriendCard) Reset() { *x = ResGetFriendCard{} mi := &file_Gameapi_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetFriendCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetFriendCard) ProtoMessage() {} func (x *ResGetFriendCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[122] 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 ResGetFriendCard.ProtoReflect.Descriptor instead. func (*ResGetFriendCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{122} } func (x *ResGetFriendCard) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetFriendCard) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResGetFriendCard) GetId() string { if x != nil { return x.Id } return "" } func (x *ResGetFriendCard) GetCardId() int32 { if x != nil { return x.CardId } return 0 } // 获取可以交换的金卡 type ReqGetGoldCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqGetGoldCard) Reset() { *x = ReqGetGoldCard{} mi := &file_Gameapi_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetGoldCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetGoldCard) ProtoMessage() {} func (x *ReqGetGoldCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[123] 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 ReqGetGoldCard.ProtoReflect.Descriptor instead. func (*ReqGetGoldCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{123} } type ResGetGoldCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Four int32 `protobuf:"varint,1,opt,name=Four,proto3" json:"Four,omitempty"` // 四星金卡 Five int32 `protobuf:"varint,2,opt,name=Five,proto3" json:"Five,omitempty"` // 五星金卡 } func (x *ResGetGoldCard) Reset() { *x = ResGetGoldCard{} mi := &file_Gameapi_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetGoldCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetGoldCard) ProtoMessage() {} func (x *ResGetGoldCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[124] 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 ResGetGoldCard.ProtoReflect.Descriptor instead. func (*ResGetGoldCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{124} } func (x *ResGetGoldCard) GetFour() int32 { if x != nil { return x.Four } return 0 } func (x *ResGetGoldCard) GetFive() int32 { if x != nil { return x.Five } return 0 } // 领取引导奖励 type ReqGuideReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGuideReward) Reset() { *x = ReqGuideReward{} mi := &file_Gameapi_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGuideReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGuideReward) ProtoMessage() {} func (x *ReqGuideReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[125] 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 ReqGuideReward.ProtoReflect.Descriptor instead. func (*ReqGuideReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{125} } func (x *ReqGuideReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResGuideReward 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 *ResGuideReward) Reset() { *x = ResGuideReward{} mi := &file_Gameapi_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGuideReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGuideReward) ProtoMessage() {} func (x *ResGuideReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[126] 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 ResGuideReward.ProtoReflect.Descriptor instead. func (*ResGuideReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{126} } func (x *ResGuideReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGuideReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ResGuildInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Reward map[int32]int32 `protobuf:"bytes,1,rep,name=Reward,proto3" json:"Reward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResGuildInfo) Reset() { *x = ResGuildInfo{} mi := &file_Gameapi_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGuildInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGuildInfo) ProtoMessage() {} func (x *ResGuildInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[127] 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 ResGuildInfo.ProtoReflect.Descriptor instead. func (*ResGuildInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{127} } func (x *ResGuildInfo) GetReward() map[int32]int32 { if x != nil { return x.Reward } return nil } type ResItemPop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 道具 CardPacks []*CardPack `protobuf:"bytes,3,rep,name=CardPacks,proto3" json:"CardPacks,omitempty"` // 卡包 Lable string `protobuf:"bytes,4,opt,name=Lable,proto3" json:"Lable,omitempty"` // 标签 } func (x *ResItemPop) Reset() { *x = ResItemPop{} mi := &file_Gameapi_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResItemPop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResItemPop) ProtoMessage() {} func (x *ResItemPop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[128] 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 ResItemPop.ProtoReflect.Descriptor instead. func (*ResItemPop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{128} } func (x *ResItemPop) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ResItemPop) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } func (x *ResItemPop) GetCardPacks() []*CardPack { if x != nil { return x.CardPacks } return nil } func (x *ResItemPop) GetLable() string { if x != nil { return x.Lable } return "" } type ItemInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` } func (x *ItemInfo) Reset() { *x = ItemInfo{} mi := &file_Gameapi_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ItemInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemInfo) ProtoMessage() {} func (x *ItemInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[129] 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 ItemInfo.ProtoReflect.Descriptor instead. func (*ItemInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{129} } func (x *ItemInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ItemInfo) GetNum() int32 { if x != nil { return x.Num } return 0 } type CardPack struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 卡包id Card []int32 `protobuf:"varint,2,rep,packed,name=Card,proto3" json:"Card,omitempty"` } func (x *CardPack) Reset() { *x = CardPack{} mi := &file_Gameapi_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *CardPack) String() string { return protoimpl.X.MessageStringOf(x) } func (*CardPack) ProtoMessage() {} func (x *CardPack) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[130] 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 CardPack.ProtoReflect.Descriptor instead. func (*CardPack) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{130} } func (x *CardPack) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *CardPack) GetCard() []int32 { if x != nil { return x.Card } return nil } type ResDailyTask struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WeekReward map[int32]*DailyWeek `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //周奖励 DailyTask map[int32]*DailyTask `protobuf:"bytes,2,rep,name=DailyTask,proto3" json:"DailyTask,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //任务进度 Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 DayEnd int32 `protobuf:"varint,4,opt,name=DayEnd,proto3" json:"DayEnd,omitempty"` // 日结束时间戳 WeekEnd int32 `protobuf:"varint,5,opt,name=WeekEnd,proto3" json:"WeekEnd,omitempty"` //周结束时间戳 } func (x *ResDailyTask) Reset() { *x = ResDailyTask{} mi := &file_Gameapi_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDailyTask) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDailyTask) ProtoMessage() {} func (x *ResDailyTask) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[131] 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 ResDailyTask.ProtoReflect.Descriptor instead. func (*ResDailyTask) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{131} } func (x *ResDailyTask) GetWeekReward() map[int32]*DailyWeek { if x != nil { return x.WeekReward } return nil } func (x *ResDailyTask) GetDailyTask() map[int32]*DailyTask { if x != nil { return x.DailyTask } return nil } func (x *ResDailyTask) GetActive() int32 { if x != nil { return x.Active } return 0 } func (x *ResDailyTask) GetDayEnd() int32 { if x != nil { return x.DayEnd } return 0 } func (x *ResDailyTask) GetWeekEnd() int32 { if x != nil { return x.WeekEnd } return 0 } type DailyWeek struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 Status bool `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:已领取 NeedActive int32 `protobuf:"varint,3,opt,name=NeedActive,proto3" json:"NeedActive,omitempty"` //需要的活跃度 } func (x *DailyWeek) Reset() { *x = DailyWeek{} mi := &file_Gameapi_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DailyWeek) String() string { return protoimpl.X.MessageStringOf(x) } func (*DailyWeek) ProtoMessage() {} func (x *DailyWeek) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[132] 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 DailyWeek.ProtoReflect.Descriptor instead. func (*DailyWeek) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{132} } func (x *DailyWeek) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } func (x *DailyWeek) GetStatus() bool { if x != nil { return x.Status } return false } func (x *DailyWeek) GetNeedActive() int32 { if x != nil { return x.NeedActive } return 0 } type DailyTask struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 2已领取 UnLock bool `protobuf:"varint,2,opt,name=UnLock,proto3" json:"UnLock,omitempty"` //是否解锁 0:未解锁 1:已解锁 Progress *QuestProgress `protobuf:"bytes,3,opt,name=Progress,proto3" json:"Progress,omitempty"` //任务进度 Items []*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty"` //奖励 } func (x *DailyTask) Reset() { *x = DailyTask{} mi := &file_Gameapi_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DailyTask) String() string { return protoimpl.X.MessageStringOf(x) } func (*DailyTask) ProtoMessage() {} func (x *DailyTask) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[133] 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 DailyTask.ProtoReflect.Descriptor instead. func (*DailyTask) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{133} } func (x *DailyTask) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *DailyTask) GetUnLock() bool { if x != nil { return x.UnLock } return false } func (x *DailyTask) GetProgress() *QuestProgress { if x != nil { return x.Progress } return nil } func (x *DailyTask) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } type QuestProgress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Label string `protobuf:"bytes,1,opt,name=Label,proto3" json:"Label,omitempty"` //任务标签 Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` //当前进度 Target int32 `protobuf:"varint,3,opt,name=Target,proto3" json:"Target,omitempty"` //目标 Status bool `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未完成, 1已完成 Param int32 `protobuf:"varint,5,opt,name=Param,proto3" json:"Param,omitempty"` //参数 } func (x *QuestProgress) Reset() { *x = QuestProgress{} mi := &file_Gameapi_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *QuestProgress) String() string { return protoimpl.X.MessageStringOf(x) } func (*QuestProgress) ProtoMessage() {} func (x *QuestProgress) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[134] 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 QuestProgress.ProtoReflect.Descriptor instead. func (*QuestProgress) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{134} } func (x *QuestProgress) GetLabel() string { if x != nil { return x.Label } return "" } func (x *QuestProgress) GetNum() int32 { if x != nil { return x.Num } return 0 } func (x *QuestProgress) GetTarget() int32 { if x != nil { return x.Target } return 0 } func (x *QuestProgress) GetStatus() bool { if x != nil { return x.Status } return false } func (x *QuestProgress) GetParam() int32 { if x != nil { return x.Param } return 0 } // 领取日常任务奖励 type ReqGetDailyTaskReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetDailyTaskReward) Reset() { *x = ReqGetDailyTaskReward{} mi := &file_Gameapi_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetDailyTaskReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetDailyTaskReward) ProtoMessage() {} func (x *ReqGetDailyTaskReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[135] 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 ReqGetDailyTaskReward.ProtoReflect.Descriptor instead. func (*ReqGetDailyTaskReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{135} } func (x *ReqGetDailyTaskReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResGetDailyTaskReward 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 *ResGetDailyTaskReward) Reset() { *x = ResGetDailyTaskReward{} mi := &file_Gameapi_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetDailyTaskReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetDailyTaskReward) ProtoMessage() {} func (x *ResGetDailyTaskReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[136] 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 ResGetDailyTaskReward.ProtoReflect.Descriptor instead. func (*ResGetDailyTaskReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{136} } func (x *ResGetDailyTaskReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetDailyTaskReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 领取日常周奖励 type ReqGetDailyWeekReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetDailyWeekReward) Reset() { *x = ReqGetDailyWeekReward{} mi := &file_Gameapi_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetDailyWeekReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetDailyWeekReward) ProtoMessage() {} func (x *ReqGetDailyWeekReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[137] 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 ReqGetDailyWeekReward.ProtoReflect.Descriptor instead. func (*ReqGetDailyWeekReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{137} } func (x *ReqGetDailyWeekReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResGetDailyWeekReward 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 *ResGetDailyWeekReward) Reset() { *x = ResGetDailyWeekReward{} mi := &file_Gameapi_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetDailyWeekReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetDailyWeekReward) ProtoMessage() {} func (x *ResGetDailyWeekReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[138] 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 ResGetDailyWeekReward.ProtoReflect.Descriptor instead. func (*ResGetDailyWeekReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{138} } func (x *ResGetDailyWeekReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetDailyWeekReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqDailyUnlock struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqDailyUnlock) Reset() { *x = ReqDailyUnlock{} mi := &file_Gameapi_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqDailyUnlock) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqDailyUnlock) ProtoMessage() {} func (x *ReqDailyUnlock) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[139] 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 ReqDailyUnlock.ProtoReflect.Descriptor instead. func (*ReqDailyUnlock) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{139} } type ResDailyUnlock 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 *ResDailyUnlock) Reset() { *x = ResDailyUnlock{} mi := &file_Gameapi_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDailyUnlock) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDailyUnlock) ProtoMessage() {} func (x *ResDailyUnlock) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[140] 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 ResDailyUnlock.ProtoReflect.Descriptor instead. func (*ResDailyUnlock) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{140} } func (x *ResDailyUnlock) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResDailyUnlock) GetMsg() string { if x != nil { return x.Msg } return "" } type ResFaceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FaceList []*FaceInfo `protobuf:"bytes,1,rep,name=FaceList,proto3" json:"FaceList,omitempty"` SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` } func (x *ResFaceInfo) Reset() { *x = ResFaceInfo{} mi := &file_Gameapi_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFaceInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFaceInfo) ProtoMessage() {} func (x *ResFaceInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[141] 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 ResFaceInfo.ProtoReflect.Descriptor instead. func (*ResFaceInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{141} } func (x *ResFaceInfo) GetFaceList() []*FaceInfo { if x != nil { return x.FaceList } return nil } func (x *ResFaceInfo) GetSetId() int32 { if x != nil { return x.SetId } return 0 } type FaceInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` } func (x *FaceInfo) Reset() { *x = FaceInfo{} mi := &file_Gameapi_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *FaceInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FaceInfo) ProtoMessage() {} func (x *FaceInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[142] 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 FaceInfo.ProtoReflect.Descriptor instead. func (*FaceInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{142} } func (x *FaceInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *FaceInfo) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } type ReqSetFace struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Face int32 `protobuf:"varint,1,opt,name=Face,proto3" json:"Face,omitempty"` } func (x *ReqSetFace) Reset() { *x = ReqSetFace{} mi := &file_Gameapi_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSetFace) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSetFace) ProtoMessage() {} func (x *ReqSetFace) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[143] 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 ReqSetFace.ProtoReflect.Descriptor instead. func (*ReqSetFace) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{143} } func (x *ReqSetFace) GetFace() int32 { if x != nil { return x.Face } return 0 } type ResSetFace 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 *ResSetFace) Reset() { *x = ResSetFace{} mi := &file_Gameapi_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSetFace) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSetFace) ProtoMessage() {} func (x *ResSetFace) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[144] 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 ResSetFace.ProtoReflect.Descriptor instead. func (*ResSetFace) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{144} } func (x *ResSetFace) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResSetFace) GetMsg() string { if x != nil { return x.Msg } return "" } type ResAvatarInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AvatarList []*AvatarInfo `protobuf:"bytes,1,rep,name=AvatarList,proto3" json:"AvatarList,omitempty"` SetId int32 `protobuf:"varint,2,opt,name=SetId,proto3" json:"SetId,omitempty"` } func (x *ResAvatarInfo) Reset() { *x = ResAvatarInfo{} mi := &file_Gameapi_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAvatarInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAvatarInfo) ProtoMessage() {} func (x *ResAvatarInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[145] 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 ResAvatarInfo.ProtoReflect.Descriptor instead. func (*ResAvatarInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{145} } func (x *ResAvatarInfo) GetAvatarList() []*AvatarInfo { if x != nil { return x.AvatarList } return nil } func (x *ResAvatarInfo) GetSetId() int32 { if x != nil { return x.SetId } return 0 } type AvatarInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` EndTime int64 `protobuf:"varint,2,opt,name=EndTime,proto3" json:"EndTime,omitempty"` } func (x *AvatarInfo) Reset() { *x = AvatarInfo{} mi := &file_Gameapi_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AvatarInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*AvatarInfo) ProtoMessage() {} func (x *AvatarInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[146] 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 AvatarInfo.ProtoReflect.Descriptor instead. func (*AvatarInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{146} } func (x *AvatarInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *AvatarInfo) GetEndTime() int64 { if x != nil { return x.EndTime } return 0 } type ReqSetAvatar struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Avatar int32 `protobuf:"varint,1,opt,name=Avatar,proto3" json:"Avatar,omitempty"` } func (x *ReqSetAvatar) Reset() { *x = ReqSetAvatar{} mi := &file_Gameapi_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSetAvatar) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSetAvatar) ProtoMessage() {} func (x *ReqSetAvatar) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[147] 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 ReqSetAvatar.ProtoReflect.Descriptor instead. func (*ReqSetAvatar) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{147} } func (x *ReqSetAvatar) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } type ResSetAvatar 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 *ResSetAvatar) Reset() { *x = ResSetAvatar{} mi := &file_Gameapi_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSetAvatar) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSetAvatar) ProtoMessage() {} func (x *ResSetAvatar) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[148] 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 ResSetAvatar.ProtoReflect.Descriptor instead. func (*ResSetAvatar) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{148} } func (x *ResSetAvatar) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResSetAvatar) GetMsg() string { if x != nil { return x.Msg } return "" } // 七日签到 type ResSevenLogin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WeekReward []*SevenLoginReward `protobuf:"bytes,1,rep,name=WeekReward,proto3" json:"WeekReward,omitempty"` //周奖励 MonthReward []*SevenLoginReward `protobuf:"bytes,2,rep,name=MonthReward,proto3" json:"MonthReward,omitempty"` //月奖励 Active int32 `protobuf:"varint,3,opt,name=Active,proto3" json:"Active,omitempty"` //活跃度 IsBack bool `protobuf:"varint,4,opt,name=IsBack,proto3" json:"IsBack,omitempty"` //是否召回 } func (x *ResSevenLogin) Reset() { *x = ResSevenLogin{} mi := &file_Gameapi_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSevenLogin) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSevenLogin) ProtoMessage() {} func (x *ResSevenLogin) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[149] 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 ResSevenLogin.ProtoReflect.Descriptor instead. func (*ResSevenLogin) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{149} } func (x *ResSevenLogin) GetWeekReward() []*SevenLoginReward { if x != nil { return x.WeekReward } return nil } func (x *ResSevenLogin) GetMonthReward() []*SevenLoginReward { if x != nil { return x.MonthReward } return nil } func (x *ResSevenLogin) GetActive() int32 { if x != nil { return x.Active } return 0 } func (x *ResSevenLogin) GetIsBack() bool { if x != nil { return x.IsBack } return false } type SevenLoginReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Item1 []*ItemInfo `protobuf:"bytes,1,rep,name=Item1,proto3" json:"Item1,omitempty"` //奖励1 Item2 []*ItemInfo `protobuf:"bytes,2,rep,name=Item2,proto3" json:"Item2,omitempty"` //奖励2 Item3 []*ItemInfo `protobuf:"bytes,3,rep,name=Item3,proto3" json:"Item3,omitempty"` //奖励3 Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未领取 1:可领取 2:已领取 Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` //id } func (x *SevenLoginReward) Reset() { *x = SevenLoginReward{} mi := &file_Gameapi_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *SevenLoginReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*SevenLoginReward) ProtoMessage() {} func (x *SevenLoginReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[150] 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 SevenLoginReward.ProtoReflect.Descriptor instead. func (*SevenLoginReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{150} } func (x *SevenLoginReward) GetItem1() []*ItemInfo { if x != nil { return x.Item1 } return nil } func (x *SevenLoginReward) GetItem2() []*ItemInfo { if x != nil { return x.Item2 } return nil } func (x *SevenLoginReward) GetItem3() []*ItemInfo { if x != nil { return x.Item3 } return nil } func (x *SevenLoginReward) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *SevenLoginReward) GetId() int32 { if x != nil { return x.Id } return 0 } // 领取周奖励 type ReqGetSevenLoginReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetSevenLoginReward) Reset() { *x = ReqGetSevenLoginReward{} mi := &file_Gameapi_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetSevenLoginReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetSevenLoginReward) ProtoMessage() {} func (x *ReqGetSevenLoginReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[151] 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 ReqGetSevenLoginReward.ProtoReflect.Descriptor instead. func (*ReqGetSevenLoginReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{151} } func (x *ReqGetSevenLoginReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResGetSevenLoginReward 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 *ResGetSevenLoginReward) Reset() { *x = ResGetSevenLoginReward{} mi := &file_Gameapi_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetSevenLoginReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetSevenLoginReward) ProtoMessage() {} func (x *ResGetSevenLoginReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[152] 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 ResGetSevenLoginReward.ProtoReflect.Descriptor instead. func (*ResGetSevenLoginReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{152} } func (x *ResGetSevenLoginReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetSevenLoginReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 领取月奖励 type ReqGetMonthLoginReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetMonthLoginReward) Reset() { *x = ReqGetMonthLoginReward{} mi := &file_Gameapi_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetMonthLoginReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetMonthLoginReward) ProtoMessage() {} func (x *ReqGetMonthLoginReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[153] 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 ReqGetMonthLoginReward.ProtoReflect.Descriptor instead. func (*ReqGetMonthLoginReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{153} } func (x *ReqGetMonthLoginReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResGetMonthLoginReward 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 *ResGetMonthLoginReward) Reset() { *x = ResGetMonthLoginReward{} mi := &file_Gameapi_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetMonthLoginReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetMonthLoginReward) ProtoMessage() {} func (x *ResGetMonthLoginReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[154] 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 ResGetMonthLoginReward.ProtoReflect.Descriptor instead. func (*ResGetMonthLoginReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{154} } func (x *ResGetMonthLoginReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetMonthLoginReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 活动 type ResActivity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ActiveList []*ActivityInfo `protobuf:"bytes,1,rep,name=ActiveList,proto3" json:"ActiveList,omitempty"` } func (x *ResActivity) Reset() { *x = ResActivity{} mi := &file_Gameapi_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResActivity) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResActivity) ProtoMessage() {} func (x *ResActivity) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[155] 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 ResActivity.ProtoReflect.Descriptor instead. func (*ResActivity) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{155} } func (x *ResActivity) GetActiveList() []*ActivityInfo { if x != nil { return x.ActiveList } return nil } type ActivityInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` //id Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` //类型 StartTime int32 `protobuf:"varint,3,opt,name=StartTime,proto3" json:"StartTime,omitempty"` //开始时间 EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` //状态 0:未开始 1:进行中 2:已结束 Title string `protobuf:"bytes,6,opt,name=Title,proto3" json:"Title,omitempty"` //标题 Red int32 `protobuf:"varint,7,opt,name=Red,proto3" json:"Red,omitempty"` //红点 } func (x *ActivityInfo) Reset() { *x = ActivityInfo{} mi := &file_Gameapi_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ActivityInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ActivityInfo) ProtoMessage() {} func (x *ActivityInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[156] 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 ActivityInfo.ProtoReflect.Descriptor instead. func (*ActivityInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{156} } func (x *ActivityInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ActivityInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ActivityInfo) GetStartTime() int32 { if x != nil { return x.StartTime } return 0 } func (x *ActivityInfo) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ActivityInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ActivityInfo) GetTitle() string { if x != nil { return x.Title } return "" } func (x *ActivityInfo) GetRed() int32 { if x != nil { return x.Red } return 0 } // 限时事件 type ReqLimitEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqLimitEvent) Reset() { *x = ReqLimitEvent{} mi := &file_Gameapi_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqLimitEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqLimitEvent) ProtoMessage() {} func (x *ReqLimitEvent) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[157] 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 ReqLimitEvent.ProtoReflect.Descriptor instead. func (*ReqLimitEvent) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{157} } type ResLimitEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LimitEventList map[int32]*LimitEvent `protobuf:"bytes,1,rep,name=LimitEventList,proto3" json:"LimitEventList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResLimitEvent) Reset() { *x = ResLimitEvent{} mi := &file_Gameapi_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResLimitEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResLimitEvent) ProtoMessage() {} func (x *ResLimitEvent) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[158] 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 ResLimitEvent.ProtoReflect.Descriptor instead. func (*ResLimitEvent) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{158} } func (x *ResLimitEvent) GetLimitEventList() map[int32]*LimitEvent { if x != nil { return x.LimitEventList } return nil } type ResLimitEventProgress struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ProgressMax int32 `protobuf:"varint,1,opt,name=ProgressMax,proto3" json:"ProgressMax,omitempty"` //最大进度 Progress int32 `protobuf:"varint,2,opt,name=Progress,proto3" json:"Progress,omitempty"` //进度 ProgressReward map[int32]int32 `protobuf:"bytes,3,rep,name=ProgressReward,proto3" json:"ProgressReward,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //奖励 可以选择的奖励 Id =》 RewardId } func (x *ResLimitEventProgress) Reset() { *x = ResLimitEventProgress{} mi := &file_Gameapi_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResLimitEventProgress) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResLimitEventProgress) ProtoMessage() {} func (x *ResLimitEventProgress) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[159] 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 ResLimitEventProgress.ProtoReflect.Descriptor instead. func (*ResLimitEventProgress) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{159} } func (x *ResLimitEventProgress) GetProgressMax() int32 { if x != nil { return x.ProgressMax } return 0 } func (x *ResLimitEventProgress) GetProgress() int32 { if x != nil { return x.Progress } return 0 } func (x *ResLimitEventProgress) GetProgressReward() map[int32]int32 { if x != nil { return x.ProgressReward } return nil } type ReqLimitEventReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqLimitEventReward) Reset() { *x = ReqLimitEventReward{} mi := &file_Gameapi_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqLimitEventReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqLimitEventReward) ProtoMessage() {} func (x *ReqLimitEventReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[160] 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 ReqLimitEventReward.ProtoReflect.Descriptor instead. func (*ReqLimitEventReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{160} } func (x *ReqLimitEventReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResLimitEventReward 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 *ResLimitEventReward) Reset() { *x = ResLimitEventReward{} mi := &file_Gameapi_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResLimitEventReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResLimitEventReward) ProtoMessage() {} func (x *ResLimitEventReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[161] 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 ResLimitEventReward.ProtoReflect.Descriptor instead. func (*ResLimitEventReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{161} } func (x *ResLimitEventReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResLimitEventReward) GetMsg() string { if x != nil { return x.Msg } 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[162] 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[162] 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{162} } 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[163] 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[163] 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{163} } 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 unknownFields protoimpl.UnknownFields EndTime int32 `protobuf:"varint,1,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 Cd int32 `protobuf:"varint,2,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd } func (x *LimitEvent) Reset() { *x = LimitEvent{} mi := &file_Gameapi_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *LimitEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*LimitEvent) ProtoMessage() {} func (x *LimitEvent) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[164] 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 LimitEvent.ProtoReflect.Descriptor instead. func (*LimitEvent) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{164} } func (x *LimitEvent) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *LimitEvent) GetCd() int32 { if x != nil { return x.Cd } return 0 } type LimitEventNotify struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 限时事件类型 Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 0 开始 1 结束 EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` //结束时间 Cd int32 `protobuf:"varint,4,opt,name=Cd,proto3" json:"Cd,omitempty"` //cd } func (x *LimitEventNotify) Reset() { *x = LimitEventNotify{} mi := &file_Gameapi_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *LimitEventNotify) String() string { return protoimpl.X.MessageStringOf(x) } func (*LimitEventNotify) ProtoMessage() {} func (x *LimitEventNotify) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[165] 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 LimitEventNotify.ProtoReflect.Descriptor instead. func (*LimitEventNotify) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{165} } func (x *LimitEventNotify) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *LimitEventNotify) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *LimitEventNotify) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *LimitEventNotify) GetCd() int32 { if x != nil { return x.Cd } return 0 } type ReqLimitSenceReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqLimitSenceReward) Reset() { *x = ReqLimitSenceReward{} mi := &file_Gameapi_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqLimitSenceReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqLimitSenceReward) ProtoMessage() {} func (x *ReqLimitSenceReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[166] 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 ReqLimitSenceReward.ProtoReflect.Descriptor instead. func (*ReqLimitSenceReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{166} } type ResLimitSenceReward 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 *ResLimitSenceReward) Reset() { *x = ResLimitSenceReward{} mi := &file_Gameapi_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResLimitSenceReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResLimitSenceReward) ProtoMessage() {} func (x *ResLimitSenceReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[167] 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 ResLimitSenceReward.ProtoReflect.Descriptor instead. func (*ResLimitSenceReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{167} } func (x *ResLimitSenceReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResLimitSenceReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ResChessRainReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Items []*ItemInfo `protobuf:"bytes,1,rep,name=Items,proto3" json:"Items,omitempty"` //奖励道具 Id int32 `protobuf:"varint,2,opt,name=Id,proto3" json:"Id,omitempty"` // 转盘id } func (x *ResChessRainReward) Reset() { *x = ResChessRainReward{} mi := &file_Gameapi_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChessRainReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChessRainReward) ProtoMessage() {} func (x *ResChessRainReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[168] 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 ResChessRainReward.ProtoReflect.Descriptor instead. func (*ResChessRainReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{168} } func (x *ResChessRainReward) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } func (x *ResChessRainReward) GetId() int32 { if x != nil { return x.Id } return 0 } // 连技快手奖励 type ReqFastProduceReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Energy int32 `protobuf:"varint,1,opt,name=Energy,proto3" json:"Energy,omitempty"` } func (x *ReqFastProduceReward) Reset() { *x = ReqFastProduceReward{} mi := &file_Gameapi_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFastProduceReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFastProduceReward) ProtoMessage() {} func (x *ReqFastProduceReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[169] 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 ReqFastProduceReward.ProtoReflect.Descriptor instead. func (*ReqFastProduceReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{169} } func (x *ReqFastProduceReward) GetEnergy() int32 { if x != nil { return x.Energy } return 0 } type ResFastProduceReward 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 *ResFastProduceReward) Reset() { *x = ResFastProduceReward{} mi := &file_Gameapi_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFastProduceReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFastProduceReward) ProtoMessage() {} func (x *ResFastProduceReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[170] 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 ResFastProduceReward.ProtoReflect.Descriptor instead. func (*ResFastProduceReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{170} } func (x *ResFastProduceReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResFastProduceReward) GetMsg() string { if x != nil { return x.Msg } return "" } // 搜索好友 type ReqSearchPlayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid string `protobuf:"bytes,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqSearchPlayer) Reset() { *x = ReqSearchPlayer{} mi := &file_Gameapi_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSearchPlayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSearchPlayer) ProtoMessage() {} func (x *ReqSearchPlayer) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[171] 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 ReqSearchPlayer.ProtoReflect.Descriptor instead. func (*ReqSearchPlayer) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{171} } func (x *ReqSearchPlayer) GetUid() string { if x != nil { return x.Uid } return "" } type ResSearchPlayer struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Code int32 `protobuf:"varint,1,opt,name=Code,proto3" json:"Code,omitempty"` List []*ResPlayerSimple `protobuf:"bytes,2,rep,name=List,proto3" json:"List,omitempty"` } func (x *ResSearchPlayer) Reset() { *x = ResSearchPlayer{} mi := &file_Gameapi_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSearchPlayer) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSearchPlayer) ProtoMessage() {} func (x *ResSearchPlayer) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[172] 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 ResSearchPlayer.ProtoReflect.Descriptor instead. func (*ResSearchPlayer) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{172} } func (x *ResSearchPlayer) GetCode() int32 { if x != nil { return x.Code } return 0 } func (x *ResSearchPlayer) GetList() []*ResPlayerSimple { if x != nil { return x.List } return nil } type ResPlayerSimple struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` Decorate int32 `protobuf:"varint,6,opt,name=Decorate,proto3" json:"Decorate,omitempty"` Login int32 `protobuf:"varint,7,opt,name=login,proto3" json:"login,omitempty"` Loginout int32 `protobuf:"varint,8,opt,name=loginout,proto3" json:"loginout,omitempty"` Facebook string `protobuf:"bytes,9,opt,name=Facebook,proto3" json:"Facebook,omitempty"` } func (x *ResPlayerSimple) Reset() { *x = ResPlayerSimple{} mi := &file_Gameapi_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerSimple) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerSimple) ProtoMessage() {} func (x *ResPlayerSimple) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[173] 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 ResPlayerSimple.ProtoReflect.Descriptor instead. func (*ResPlayerSimple) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{173} } func (x *ResPlayerSimple) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ResPlayerSimple) GetName() string { if x != nil { return x.Name } return "" } func (x *ResPlayerSimple) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *ResPlayerSimple) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *ResPlayerSimple) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ResPlayerSimple) GetDecorate() int32 { if x != nil { return x.Decorate } return 0 } func (x *ResPlayerSimple) GetLogin() int32 { if x != nil { return x.Login } return 0 } func (x *ResPlayerSimple) GetLoginout() int32 { if x != nil { return x.Loginout } return 0 } func (x *ResPlayerSimple) GetFacebook() string { if x != nil { return x.Facebook } return "" } type ResPlayerRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` Score float32 `protobuf:"fixed32,6,opt,name=score,proto3" json:"score,omitempty"` } func (x *ResPlayerRank) Reset() { *x = ResPlayerRank{} mi := &file_Gameapi_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayerRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayerRank) ProtoMessage() {} func (x *ResPlayerRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[174] 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 ResPlayerRank.ProtoReflect.Descriptor instead. func (*ResPlayerRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{174} } func (x *ResPlayerRank) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ResPlayerRank) GetName() string { if x != nil { return x.Name } return "" } func (x *ResPlayerRank) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *ResPlayerRank) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *ResPlayerRank) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ResPlayerRank) GetScore() float32 { if x != nil { return x.Score } return 0 } type ResFriendLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Player *ResPlayerSimple `protobuf:"bytes,1,opt,name=Player,proto3" json:"Player,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` Time int32 `protobuf:"varint,3,opt,name=Time,proto3" json:"Time,omitempty"` Param string `protobuf:"bytes,4,opt,name=Param,proto3" json:"Param,omitempty"` Id int32 `protobuf:"varint,5,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResFriendLog) Reset() { *x = ResFriendLog{} mi := &file_Gameapi_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendLog) ProtoMessage() {} func (x *ResFriendLog) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[175] 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 ResFriendLog.ProtoReflect.Descriptor instead. func (*ResFriendLog) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{175} } func (x *ResFriendLog) GetPlayer() *ResPlayerSimple { if x != nil { return x.Player } return nil } func (x *ResFriendLog) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResFriendLog) GetTime() int32 { if x != nil { return x.Time } return 0 } func (x *ResFriendLog) GetParam() string { if x != nil { return x.Param } return "" } func (x *ResFriendLog) GetId() int32 { if x != nil { return x.Id } return 0 } type NotifyFriendLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info *ResFriendLog `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` } func (x *NotifyFriendLog) Reset() { *x = NotifyFriendLog{} mi := &file_Gameapi_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyFriendLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyFriendLog) ProtoMessage() {} func (x *NotifyFriendLog) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[176] 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 NotifyFriendLog.ProtoReflect.Descriptor instead. func (*NotifyFriendLog) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{176} } func (x *NotifyFriendLog) GetInfo() *ResFriendLog { if x != nil { return x.Info } return nil } type NotifyFriendCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info *ResFriendCard `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *NotifyFriendCard) Reset() { *x = NotifyFriendCard{} mi := &file_Gameapi_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyFriendCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyFriendCard) ProtoMessage() {} func (x *NotifyFriendCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[177] 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 NotifyFriendCard.ProtoReflect.Descriptor instead. func (*NotifyFriendCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{177} } func (x *NotifyFriendCard) GetInfo() *ResFriendCard { if x != nil { return x.Info } return nil } type ResFriendCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Level int32 `protobuf:"varint,5,opt,name=Level,proto3" json:"Level,omitempty"` Type int32 `protobuf:"varint,6,opt,name=Type,proto3" json:"Type,omitempty"` Time int32 `protobuf:"varint,7,opt,name=Time,proto3" json:"Time,omitempty"` CardId int32 `protobuf:"varint,8,opt,name=CardId,proto3" json:"CardId,omitempty"` ExCardId int32 `protobuf:"varint,9,opt,name=ExCardId,proto3" json:"ExCardId,omitempty"` Status int32 `protobuf:"varint,10,opt,name=Status,proto3" json:"Status,omitempty"` Id string `protobuf:"bytes,11,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResFriendCard) Reset() { *x = ResFriendCard{} mi := &file_Gameapi_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendCard) ProtoMessage() {} func (x *ResFriendCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[178] 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 ResFriendCard.ProtoReflect.Descriptor instead. func (*ResFriendCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{178} } func (x *ResFriendCard) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ResFriendCard) GetName() string { if x != nil { return x.Name } return "" } func (x *ResFriendCard) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *ResFriendCard) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *ResFriendCard) GetLevel() int32 { if x != nil { return x.Level } return 0 } func (x *ResFriendCard) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResFriendCard) GetTime() int32 { if x != nil { return x.Time } return 0 } func (x *ResFriendCard) GetCardId() int32 { if x != nil { return x.CardId } return 0 } func (x *ResFriendCard) GetExCardId() int32 { if x != nil { return x.ExCardId } return 0 } func (x *ResFriendCard) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResFriendCard) GetId() string { if x != nil { return x.Id } return "" } type ReqKv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Key int32 `protobuf:"varint,1,opt,name=key,proto3" json:"key,omitempty"` Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *ReqKv) Reset() { *x = ReqKv{} mi := &file_Gameapi_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqKv) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqKv) ProtoMessage() {} func (x *ReqKv) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[179] 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 ReqKv.ProtoReflect.Descriptor instead. func (*ReqKv) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{179} } func (x *ReqKv) GetKey() int32 { if x != nil { return x.Key } return 0 } func (x *ReqKv) GetValue() string { if x != nil { return x.Value } return "" } type ResKv struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Kv map[int32]string `protobuf:"bytes,1,rep,name=kv,proto3" json:"kv,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResKv) Reset() { *x = ResKv{} mi := &file_Gameapi_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResKv) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResKv) ProtoMessage() {} func (x *ResKv) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[180] 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 ResKv.ProtoReflect.Descriptor instead. func (*ResKv) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{180} } func (x *ResKv) GetKv() map[int32]string { if x != nil { return x.Kv } return nil } // 好友推荐 type ReqFriendRecommend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendRecommend) Reset() { *x = ReqFriendRecommend{} mi := &file_Gameapi_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendRecommend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendRecommend) ProtoMessage() {} func (x *ReqFriendRecommend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[181] 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 ReqFriendRecommend.ProtoReflect.Descriptor instead. func (*ReqFriendRecommend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{181} } type ResFriendRecommend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*ResPlayerSimple `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` } func (x *ResFriendRecommend) Reset() { *x = ResFriendRecommend{} mi := &file_Gameapi_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendRecommend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendRecommend) ProtoMessage() {} func (x *ResFriendRecommend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[182] 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 ResFriendRecommend.ProtoReflect.Descriptor instead. func (*ResFriendRecommend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{182} } func (x *ResFriendRecommend) GetList() []*ResPlayerSimple { if x != nil { return x.List } return nil } // 隐藏 type ReqFriendIgnore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqFriendIgnore) Reset() { *x = ReqFriendIgnore{} mi := &file_Gameapi_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendIgnore) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendIgnore) ProtoMessage() {} func (x *ReqFriendIgnore) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[183] 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 ReqFriendIgnore.ProtoReflect.Descriptor instead. func (*ReqFriendIgnore) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{183} } func (x *ReqFriendIgnore) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ResFriendIgnore 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 *ResFriendIgnore) Reset() { *x = ResFriendIgnore{} mi := &file_Gameapi_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendIgnore) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendIgnore) ProtoMessage() {} func (x *ResFriendIgnore) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[184] 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 ResFriendIgnore.ProtoReflect.Descriptor instead. func (*ResFriendIgnore) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{184} } func (x *ResFriendIgnore) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResFriendIgnore) GetMsg() string { if x != nil { return x.Msg } return "" } // 好友基础信息 type ReqFriendList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendList) Reset() { *x = ReqFriendList{} mi := &file_Gameapi_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendList) ProtoMessage() {} func (x *ReqFriendList) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[185] 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 ReqFriendList.ProtoReflect.Descriptor instead. func (*ReqFriendList) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{185} } type ResFriendList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields FriendList []*ResPlayerSimple `protobuf:"bytes,1,rep,name=FriendList,proto3" json:"FriendList,omitempty"` } func (x *ResFriendList) Reset() { *x = ResFriendList{} mi := &file_Gameapi_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendList) ProtoMessage() {} func (x *ResFriendList) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[186] 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 ResFriendList.ProtoReflect.Descriptor instead. func (*ResFriendList) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{186} } func (x *ResFriendList) GetFriendList() []*ResPlayerSimple { if x != nil { return x.FriendList } return nil } // 好友申请列表 type ReqFriendApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendApply) Reset() { *x = ReqFriendApply{} mi := &file_Gameapi_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendApply) ProtoMessage() {} func (x *ReqFriendApply) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[187] 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 ReqFriendApply.ProtoReflect.Descriptor instead. func (*ReqFriendApply) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{187} } type ResFriendApply struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ApplyList []*ResFriendApplyInfo `protobuf:"bytes,1,rep,name=ApplyList,proto3" json:"ApplyList,omitempty"` } func (x *ResFriendApply) Reset() { *x = ResFriendApply{} mi := &file_Gameapi_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendApply) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendApply) ProtoMessage() {} func (x *ResFriendApply) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[188] 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 ResFriendApply.ProtoReflect.Descriptor instead. func (*ResFriendApply) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{188} } 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[189] 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[189] 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{189} } 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 sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendCardMsg) Reset() { *x = ReqFriendCardMsg{} mi := &file_Gameapi_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendCardMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendCardMsg) ProtoMessage() {} func (x *ReqFriendCardMsg) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[190] 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 ReqFriendCardMsg.ProtoReflect.Descriptor instead. func (*ReqFriendCardMsg) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{190} } type ResFriendCardMsg struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MsgList []*ResFriendCard `protobuf:"bytes,1,rep,name=MsgList,proto3" json:"MsgList,omitempty"` } func (x *ResFriendCardMsg) Reset() { *x = ResFriendCardMsg{} mi := &file_Gameapi_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendCardMsg) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendCardMsg) ProtoMessage() {} func (x *ResFriendCardMsg) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[191] 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 ResFriendCardMsg.ProtoReflect.Descriptor instead. func (*ResFriendCardMsg) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{191} } func (x *ResFriendCardMsg) GetMsgList() []*ResFriendCard { if x != nil { return x.MsgList } return nil } // 好友时间线 type ReqFriendTimeLine struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendTimeLine) Reset() { *x = ReqFriendTimeLine{} mi := &file_Gameapi_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendTimeLine) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendTimeLine) ProtoMessage() {} func (x *ReqFriendTimeLine) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[192] 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 ReqFriendTimeLine.ProtoReflect.Descriptor instead. func (*ReqFriendTimeLine) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{192} } type ResFriendTimeLine struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Log []*ResFriendLog `protobuf:"bytes,1,rep,name=Log,proto3" json:"Log,omitempty"` } func (x *ResFriendTimeLine) Reset() { *x = ResFriendTimeLine{} mi := &file_Gameapi_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendTimeLine) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendTimeLine) ProtoMessage() {} func (x *ResFriendTimeLine) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[193] 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 ResFriendTimeLine.ProtoReflect.Descriptor instead. func (*ResFriendTimeLine) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{193} } func (x *ResFriendTimeLine) GetLog() []*ResFriendLog { if x != nil { return x.Log } return nil } type ResFriendApplyNotify struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields 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[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendApplyNotify) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendApplyNotify) ProtoMessage() {} func (x *ResFriendApplyNotify) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[194] 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 ResFriendApplyNotify.ProtoReflect.Descriptor instead. func (*ResFriendApplyNotify) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{194} } func (x *ResFriendApplyNotify) GetPlayer() *ResPlayerSimple { if x != nil { return x.Player } return nil } func (x *ResFriendApplyNotify) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResFriendApplyNotify) GetTime() int32 { if x != nil { return x.Time } return 0 } // 申请好友 type ReqApplyFriend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqApplyFriend) Reset() { *x = ReqApplyFriend{} mi := &file_Gameapi_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqApplyFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqApplyFriend) ProtoMessage() {} func (x *ReqApplyFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[195] 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 ReqApplyFriend.ProtoReflect.Descriptor instead. func (*ReqApplyFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{195} } func (x *ReqApplyFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ResApplyFriend 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 *ResApplyFriend) Reset() { *x = ResApplyFriend{} mi := &file_Gameapi_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResApplyFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResApplyFriend) ProtoMessage() {} func (x *ResApplyFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[196] 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 ResApplyFriend.ProtoReflect.Descriptor instead. func (*ResApplyFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{196} } func (x *ResApplyFriend) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResApplyFriend) GetMsg() string { if x != nil { return x.Msg } return "" } // 同意申请 type ReqAgreeFriend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqAgreeFriend) Reset() { *x = ReqAgreeFriend{} mi := &file_Gameapi_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAgreeFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAgreeFriend) ProtoMessage() {} func (x *ReqAgreeFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[197] 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 ReqAgreeFriend.ProtoReflect.Descriptor instead. func (*ReqAgreeFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{197} } func (x *ReqAgreeFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ResAgreeFriend 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"` Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` Player *ResPlayerSimple `protobuf:"bytes,4,opt,name=Player,proto3" json:"Player,omitempty"` } func (x *ResAgreeFriend) Reset() { *x = ResAgreeFriend{} mi := &file_Gameapi_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAgreeFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAgreeFriend) ProtoMessage() {} func (x *ResAgreeFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[198] 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 ResAgreeFriend.ProtoReflect.Descriptor instead. func (*ResAgreeFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{198} } func (x *ResAgreeFriend) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResAgreeFriend) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResAgreeFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ResAgreeFriend) GetPlayer() *ResPlayerSimple { if x != nil { return x.Player } return nil } // 拒绝申请 type ReqRefuseFriend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqRefuseFriend) Reset() { *x = ReqRefuseFriend{} mi := &file_Gameapi_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRefuseFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRefuseFriend) ProtoMessage() {} func (x *ReqRefuseFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[199] 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 ReqRefuseFriend.ProtoReflect.Descriptor instead. func (*ReqRefuseFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{199} } func (x *ReqRefuseFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ResRefuseFriend 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"` Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ResRefuseFriend) Reset() { *x = ResRefuseFriend{} mi := &file_Gameapi_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRefuseFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRefuseFriend) ProtoMessage() {} func (x *ResRefuseFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[200] 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 ResRefuseFriend.ProtoReflect.Descriptor instead. func (*ResRefuseFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{200} } func (x *ResRefuseFriend) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRefuseFriend) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResRefuseFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } // 删除好友 type ReqDelFriend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqDelFriend) Reset() { *x = ReqDelFriend{} mi := &file_Gameapi_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqDelFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqDelFriend) ProtoMessage() {} func (x *ReqDelFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[201] 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 ReqDelFriend.ProtoReflect.Descriptor instead. func (*ReqDelFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{201} } func (x *ReqDelFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ResDelFriend 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"` Uid int64 `protobuf:"varint,3,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ResDelFriend) Reset() { *x = ResDelFriend{} mi := &file_Gameapi_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDelFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDelFriend) ProtoMessage() {} func (x *ResDelFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[202] 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 ResDelFriend.ProtoReflect.Descriptor instead. func (*ResDelFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{202} } func (x *ResDelFriend) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResDelFriend) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResDelFriend) GetUid() int64 { if x != nil { return x.Uid } return 0 } // 玩家榜单 type ReqRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:玩家榜单 2:全球榜单 } func (x *ReqRank) Reset() { *x = ReqRank{} mi := &file_Gameapi_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRank) ProtoMessage() {} func (x *ReqRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[203] 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 ReqRank.ProtoReflect.Descriptor instead. func (*ReqRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{203} } func (x *ReqRank) GetType() int32 { if x != nil { return x.Type } return 0 } type ResRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 榜单类型 RankList map[int32]*ResPlayerSimple `protobuf:"bytes,2,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据 MyRank int32 `protobuf:"varint,3,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 MyScore float32 `protobuf:"fixed32,4,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 } func (x *ResRank) Reset() { *x = ResRank{} mi := &file_Gameapi_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRank) ProtoMessage() {} func (x *ResRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[204] 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 ResRank.ProtoReflect.Descriptor instead. func (*ResRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{204} } func (x *ResRank) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResRank) GetRankList() map[int32]*ResPlayerSimple { if x != nil { return x.RankList } return nil } func (x *ResRank) GetMyRank() int32 { if x != nil { return x.MyRank } return 0 } func (x *ResRank) GetMyScore() float32 { if x != nil { return x.MyScore } return 0 } // 邮件列表 type ReqMailList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqMailList) Reset() { *x = ReqMailList{} mi := &file_Gameapi_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqMailList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqMailList) ProtoMessage() {} func (x *ReqMailList) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[205] 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 ReqMailList.ProtoReflect.Descriptor instead. func (*ReqMailList) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{205} } type ResMailList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MailList map[int32]*MailInfo `protobuf:"bytes,1,rep,name=MailList,proto3" json:"MailList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResMailList) Reset() { *x = ResMailList{} mi := &file_Gameapi_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResMailList) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResMailList) ProtoMessage() {} func (x *ResMailList) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[206] 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 ResMailList.ProtoReflect.Descriptor instead. func (*ResMailList) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{206} } func (x *ResMailList) GetMailList() map[int32]*MailInfo { if x != nil { return x.MailList } return nil } type MailInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 邮件id Title string `protobuf:"bytes,2,opt,name=Title,proto3" json:"Title,omitempty"` // 标题 Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` // 内容 Time int32 `protobuf:"varint,4,opt,name=Time,proto3" json:"Time,omitempty"` // 时间 Status int32 `protobuf:"varint,5,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未读 1 已读 2 已领取 3 已删除 Items []*ItemInfo `protobuf:"bytes,6,rep,name=Items,proto3" json:"Items,omitempty"` // 奖励 } func (x *MailInfo) Reset() { *x = MailInfo{} mi := &file_Gameapi_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MailInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*MailInfo) ProtoMessage() {} func (x *MailInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[207] 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 MailInfo.ProtoReflect.Descriptor instead. func (*MailInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{207} } func (x *MailInfo) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *MailInfo) GetTitle() string { if x != nil { return x.Title } return "" } func (x *MailInfo) GetContent() string { if x != nil { return x.Content } return "" } func (x *MailInfo) GetTime() int32 { if x != nil { return x.Time } return 0 } func (x *MailInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *MailInfo) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } type MailNotify struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info *MailInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *MailNotify) Reset() { *x = MailNotify{} mi := &file_Gameapi_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *MailNotify) String() string { return protoimpl.X.MessageStringOf(x) } func (*MailNotify) ProtoMessage() {} func (x *MailNotify) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[208] 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 MailNotify.ProtoReflect.Descriptor instead. func (*MailNotify) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{208} } func (x *MailNotify) GetInfo() *MailInfo { if x != nil { return x.Info } return nil } // 读邮件 type ReqReadMail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqReadMail) Reset() { *x = ReqReadMail{} mi := &file_Gameapi_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqReadMail) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqReadMail) ProtoMessage() {} func (x *ReqReadMail) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[209] 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 ReqReadMail.ProtoReflect.Descriptor instead. func (*ReqReadMail) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{209} } func (x *ReqReadMail) GetId() int32 { if x != nil { return x.Id } return 0 } type ResReadMail 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"` Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResReadMail) Reset() { *x = ResReadMail{} mi := &file_Gameapi_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResReadMail) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResReadMail) ProtoMessage() {} func (x *ResReadMail) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[210] 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 ResReadMail.ProtoReflect.Descriptor instead. func (*ResReadMail) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{210} } func (x *ResReadMail) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResReadMail) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResReadMail) GetId() int32 { if x != nil { return x.Id } return 0 } // 领取邮件 type ReqGetMailReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqGetMailReward) Reset() { *x = ReqGetMailReward{} mi := &file_Gameapi_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetMailReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetMailReward) ProtoMessage() {} func (x *ReqGetMailReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[211] 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 ReqGetMailReward.ProtoReflect.Descriptor instead. func (*ReqGetMailReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{211} } func (x *ReqGetMailReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResGetMailReward 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"` Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResGetMailReward) Reset() { *x = ResGetMailReward{} mi := &file_Gameapi_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetMailReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetMailReward) ProtoMessage() {} func (x *ResGetMailReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[212] 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 ResGetMailReward.ProtoReflect.Descriptor instead. func (*ResGetMailReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{212} } func (x *ResGetMailReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGetMailReward) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResGetMailReward) GetId() int32 { if x != nil { return x.Id } return 0 } // 删除邮件 type ReqDeleteMail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqDeleteMail) Reset() { *x = ReqDeleteMail{} mi := &file_Gameapi_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqDeleteMail) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqDeleteMail) ProtoMessage() {} func (x *ReqDeleteMail) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[213] 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 ReqDeleteMail.ProtoReflect.Descriptor instead. func (*ReqDeleteMail) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{213} } func (x *ReqDeleteMail) GetId() int32 { if x != nil { return x.Id } return 0 } type ResDeleteMail 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"` Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ResDeleteMail) Reset() { *x = ResDeleteMail{} mi := &file_Gameapi_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResDeleteMail) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResDeleteMail) ProtoMessage() {} func (x *ResDeleteMail) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[214] 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 ResDeleteMail.ProtoReflect.Descriptor instead. func (*ResDeleteMail) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{214} } func (x *ResDeleteMail) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResDeleteMail) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResDeleteMail) GetId() int32 { if x != nil { return x.Id } return 0 } type ResCharge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Charge float32 `protobuf:"fixed32,1,opt,name=Charge,proto3" json:"Charge,omitempty"` // 总充值金额 Total int32 `protobuf:"varint,2,opt,name=Total,proto3" json:"Total,omitempty"` // 总充值次数 First []int32 `protobuf:"varint,3,rep,packed,name=First,proto3" json:"First,omitempty"` //已首充档次 SpecialShop map[int32]*ResSpecialShop `protobuf:"bytes,4,rep,name=SpecialShop,proto3" json:"SpecialShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 特惠礼包 FreeShop int32 `protobuf:"varint,5,opt,name=FreeShop,proto3" json:"FreeShop,omitempty"` // 已领取免费礼包档次 ChessShop map[int32]*ResChessShop `protobuf:"bytes,6,rep,name=ChessShop,proto3" json:"ChessShop,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 棋子商店 Gift map[int32]int32 `protobuf:"bytes,7,rep,name=Gift,proto3" json:"Gift,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 礼包 礼包id =》 礼包数量 Ad bool `protobuf:"varint,8,opt,name=Ad,proto3" json:"Ad,omitempty"` // 是否有广告礼包 } func (x *ResCharge) Reset() { *x = ResCharge{} mi := &file_Gameapi_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCharge) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCharge) ProtoMessage() {} func (x *ResCharge) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[215] 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 ResCharge.ProtoReflect.Descriptor instead. func (*ResCharge) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{215} } func (x *ResCharge) GetCharge() float32 { if x != nil { return x.Charge } return 0 } func (x *ResCharge) GetTotal() int32 { if x != nil { return x.Total } return 0 } func (x *ResCharge) GetFirst() []int32 { if x != nil { return x.First } return nil } func (x *ResCharge) GetSpecialShop() map[int32]*ResSpecialShop { if x != nil { return x.SpecialShop } return nil } func (x *ResCharge) GetFreeShop() int32 { if x != nil { return x.FreeShop } return 0 } func (x *ResCharge) GetChessShop() map[int32]*ResChessShop { if x != nil { return x.ChessShop } return nil } func (x *ResCharge) GetGift() map[int32]int32 { if x != nil { return x.Gift } return nil } func (x *ResCharge) GetAd() bool { if x != nil { return x.Ad } return false } type ResSpecialShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Grade int32 `protobuf:"varint,1,opt,name=Grade,proto3" json:"Grade,omitempty"` //挡位 Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` //剩余购买次数 } func (x *ResSpecialShop) Reset() { *x = ResSpecialShop{} mi := &file_Gameapi_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSpecialShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSpecialShop) ProtoMessage() {} func (x *ResSpecialShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[216] 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 ResSpecialShop.ProtoReflect.Descriptor instead. func (*ResSpecialShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{216} } func (x *ResSpecialShop) GetGrade() int32 { if x != nil { return x.Grade } return 0 } func (x *ResSpecialShop) GetCount() int32 { if x != nil { return x.Count } return 0 } type ResChessShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Diamond int32 `protobuf:"varint,1,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 需要花费钻石 Count int32 `protobuf:"varint,2,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余购买数量 ChessId int32 `protobuf:"varint,3,opt,name=ChessId,proto3" json:"ChessId,omitempty"` // 棋子id } func (x *ResChessShop) Reset() { *x = ResChessShop{} mi := &file_Gameapi_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChessShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChessShop) ProtoMessage() {} func (x *ResChessShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[217] 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 ResChessShop.ProtoReflect.Descriptor instead. func (*ResChessShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{217} } func (x *ResChessShop) GetDiamond() int32 { if x != nil { return x.Diamond } return 0 } func (x *ResChessShop) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *ResChessShop) GetChessId() int32 { if x != nil { return x.ChessId } return 0 } type ReqFreeShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFreeShop) Reset() { *x = ReqFreeShop{} mi := &file_Gameapi_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFreeShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFreeShop) ProtoMessage() {} func (x *ReqFreeShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[218] 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 ReqFreeShop.ProtoReflect.Descriptor instead. func (*ReqFreeShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{218} } type ResFreeShop 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 *ResFreeShop) Reset() { *x = ResFreeShop{} mi := &file_Gameapi_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFreeShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFreeShop) ProtoMessage() {} func (x *ResFreeShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[219] 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 ResFreeShop.ProtoReflect.Descriptor instead. func (*ResFreeShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{219} } func (x *ResFreeShop) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResFreeShop) GetMsg() string { if x != nil { return x.Msg } return "" } // 商店购买棋子 type ReqBuyChessShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` } func (x *ReqBuyChessShop) Reset() { *x = ReqBuyChessShop{} mi := &file_Gameapi_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqBuyChessShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqBuyChessShop) ProtoMessage() {} func (x *ReqBuyChessShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[220] 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 ReqBuyChessShop.ProtoReflect.Descriptor instead. func (*ReqBuyChessShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{220} } func (x *ReqBuyChessShop) GetId() int32 { if x != nil { return x.Id } return 0 } type ResBuyChessShop 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 *ResBuyChessShop) Reset() { *x = ResBuyChessShop{} mi := &file_Gameapi_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResBuyChessShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResBuyChessShop) ProtoMessage() {} func (x *ResBuyChessShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[221] 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 ResBuyChessShop.ProtoReflect.Descriptor instead. func (*ResBuyChessShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{221} } func (x *ResBuyChessShop) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResBuyChessShop) GetMsg() string { if x != nil { return x.Msg } return "" } // 商店购买棋子 type ReqBuyChessShop2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` MChessData map[string]int32 `protobuf:"bytes,2,rep,name=mChessData,proto3" json:"mChessData,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ReqBuyChessShop2) Reset() { *x = ReqBuyChessShop2{} mi := &file_Gameapi_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqBuyChessShop2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqBuyChessShop2) ProtoMessage() {} func (x *ReqBuyChessShop2) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[222] 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 ReqBuyChessShop2.ProtoReflect.Descriptor instead. func (*ReqBuyChessShop2) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{222} } func (x *ReqBuyChessShop2) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ReqBuyChessShop2) GetMChessData() map[string]int32 { if x != nil { return x.MChessData } return nil } type ResBuyChessShop2 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 *ResBuyChessShop2) Reset() { *x = ResBuyChessShop2{} mi := &file_Gameapi_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResBuyChessShop2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResBuyChessShop2) ProtoMessage() {} func (x *ResBuyChessShop2) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[223] 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 ResBuyChessShop2.ProtoReflect.Descriptor instead. func (*ResBuyChessShop2) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{223} } func (x *ResBuyChessShop2) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResBuyChessShop2) GetMsg() string { if x != nil { return x.Msg } return "" } // 刷新棋子商店 type ReqRefreshChessShop struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqRefreshChessShop) Reset() { *x = ReqRefreshChessShop{} mi := &file_Gameapi_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRefreshChessShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRefreshChessShop) ProtoMessage() {} func (x *ReqRefreshChessShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[224] 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 ReqRefreshChessShop.ProtoReflect.Descriptor instead. func (*ReqRefreshChessShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{224} } type ResRefreshChessShop 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 *ResRefreshChessShop) Reset() { *x = ResRefreshChessShop{} mi := &file_Gameapi_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRefreshChessShop) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRefreshChessShop) ProtoMessage() {} func (x *ResRefreshChessShop) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[225] 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 ResRefreshChessShop.ProtoReflect.Descriptor instead. func (*ResRefreshChessShop) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{225} } func (x *ResRefreshChessShop) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRefreshChessShop) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqEndless struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqEndless) Reset() { *x = ReqEndless{} mi := &file_Gameapi_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqEndless) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqEndless) ProtoMessage() {} func (x *ReqEndless) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[226] 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 ReqEndless.ProtoReflect.Descriptor instead. func (*ReqEndless) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{226} } type ResEndless struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` EndlessList map[int32]*ResEndlessInfo `protobuf:"bytes,2,rep,name=EndlessList,proto3" json:"EndlessList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ResEndless) Reset() { *x = ResEndless{} mi := &file_Gameapi_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResEndless) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResEndless) ProtoMessage() {} func (x *ResEndless) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[227] 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 ResEndless.ProtoReflect.Descriptor instead. func (*ResEndless) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{227} } func (x *ResEndless) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ResEndless) GetEndlessList() map[int32]*ResEndlessInfo { if x != nil { return x.EndlessList } return nil } type ResEndlessInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` Items []*ItemInfo `protobuf:"bytes,3,rep,name=Items,proto3" json:"Items,omitempty"` } func (x *ResEndlessInfo) Reset() { *x = ResEndlessInfo{} mi := &file_Gameapi_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResEndlessInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResEndlessInfo) ProtoMessage() {} func (x *ResEndlessInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[228] 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 ResEndlessInfo.ProtoReflect.Descriptor instead. func (*ResEndlessInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{228} } func (x *ResEndlessInfo) GetChargeId() int32 { if x != nil { return x.ChargeId } return 0 } func (x *ResEndlessInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResEndlessInfo) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } type ReqEndlessReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqEndlessReward) Reset() { *x = ReqEndlessReward{} mi := &file_Gameapi_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqEndlessReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqEndlessReward) ProtoMessage() {} func (x *ReqEndlessReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[229] 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 ReqEndlessReward.ProtoReflect.Descriptor instead. func (*ReqEndlessReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{229} } type ResEndlessReward 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 *ResEndlessReward) Reset() { *x = ResEndlessReward{} mi := &file_Gameapi_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResEndlessReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResEndlessReward) ProtoMessage() {} func (x *ResEndlessReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[230] 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 ResEndlessReward.ProtoReflect.Descriptor instead. func (*ResEndlessReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{230} } func (x *ResEndlessReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResEndlessReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ResPiggyBank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 存钱罐类型 1:充值 2:广告 Diamond int32 `protobuf:"varint,2,opt,name=Diamond,proto3" json:"Diamond,omitempty"` // 存钱罐中的钻石 Count int32 `protobuf:"varint,3,opt,name=Count,proto3" json:"Count,omitempty"` // 剩余可以触发的次数 EndTime int32 `protobuf:"varint,4,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 当前存钱罐结束时间 } func (x *ResPiggyBank) Reset() { *x = ResPiggyBank{} mi := &file_Gameapi_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPiggyBank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPiggyBank) ProtoMessage() {} func (x *ResPiggyBank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[231] 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 ResPiggyBank.ProtoReflect.Descriptor instead. func (*ResPiggyBank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{231} } func (x *ResPiggyBank) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResPiggyBank) GetDiamond() int32 { if x != nil { return x.Diamond } return 0 } func (x *ResPiggyBank) GetCount() int32 { if x != nil { return x.Count } return 0 } func (x *ResPiggyBank) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } type ReqPiggyBankReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPiggyBankReward) Reset() { *x = ReqPiggyBankReward{} mi := &file_Gameapi_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPiggyBankReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPiggyBankReward) ProtoMessage() {} func (x *ReqPiggyBankReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[232] 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 ReqPiggyBankReward.ProtoReflect.Descriptor instead. func (*ReqPiggyBankReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{232} } type ResPiggyBankReward 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 *ResPiggyBankReward) Reset() { *x = ResPiggyBankReward{} mi := &file_Gameapi_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPiggyBankReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPiggyBankReward) ProtoMessage() {} func (x *ResPiggyBankReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[233] 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 ResPiggyBankReward.ProtoReflect.Descriptor instead. func (*ResPiggyBankReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{233} } func (x *ResPiggyBankReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPiggyBankReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqCreateOrderSn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ChargeId int32 `protobuf:"varint,1,opt,name=ChargeId,proto3" json:"ChargeId,omitempty"` PlatForm string `protobuf:"bytes,2,opt,name=PlatForm,proto3" json:"PlatForm,omitempty"` // 平台标识 测试用test Channel string `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` // 支付渠道标识 测试用test } func (x *ReqCreateOrderSn) Reset() { *x = ReqCreateOrderSn{} mi := &file_Gameapi_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqCreateOrderSn) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqCreateOrderSn) ProtoMessage() {} func (x *ReqCreateOrderSn) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[234] 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 ReqCreateOrderSn.ProtoReflect.Descriptor instead. func (*ReqCreateOrderSn) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{234} } func (x *ReqCreateOrderSn) GetChargeId() int32 { if x != nil { return x.ChargeId } return 0 } func (x *ReqCreateOrderSn) GetPlatForm() string { if x != nil { return x.PlatForm } return "" } func (x *ReqCreateOrderSn) GetChannel() string { if x != nil { return x.Channel } return "" } type ResCreateOrderSn struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 } func (x *ResCreateOrderSn) Reset() { *x = ResCreateOrderSn{} mi := &file_Gameapi_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResCreateOrderSn) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResCreateOrderSn) ProtoMessage() {} func (x *ResCreateOrderSn) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[235] 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 ResCreateOrderSn.ProtoReflect.Descriptor instead. func (*ResCreateOrderSn) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{235} } func (x *ResCreateOrderSn) GetOrderSn() string { if x != nil { return x.OrderSn } return "" } type ReqShippingOrder struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields OrderSn string `protobuf:"bytes,1,opt,name=OrderSn,proto3" json:"OrderSn,omitempty"` // 订单号 ProduceId string `protobuf:"bytes,2,opt,name=ProduceId,proto3" json:"ProduceId,omitempty"` // 商品Id Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` // token Status int32 `protobuf:"varint,4,opt,name=Status,proto3" json:"Status,omitempty"` // 1:支付成功 2:支付失败 } func (x *ReqShippingOrder) Reset() { *x = ReqShippingOrder{} mi := &file_Gameapi_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqShippingOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqShippingOrder) ProtoMessage() {} func (x *ReqShippingOrder) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[236] 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 ReqShippingOrder.ProtoReflect.Descriptor instead. func (*ReqShippingOrder) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{236} } func (x *ReqShippingOrder) GetOrderSn() string { if x != nil { return x.OrderSn } return "" } func (x *ReqShippingOrder) GetProduceId() string { if x != nil { return x.ProduceId } return "" } func (x *ReqShippingOrder) GetToken() string { if x != nil { return x.Token } return "" } func (x *ReqShippingOrder) GetStatus() int32 { if x != nil { return x.Status } return 0 } type ResShippingOrder 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 *ResShippingOrder) Reset() { *x = ResShippingOrder{} mi := &file_Gameapi_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResShippingOrder) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResShippingOrder) ProtoMessage() {} func (x *ResShippingOrder) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[237] 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 ResShippingOrder.ProtoReflect.Descriptor instead. func (*ResShippingOrder) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{237} } func (x *ResShippingOrder) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResShippingOrder) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqChampship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqChampship) Reset() { *x = ReqChampship{} mi := &file_Gameapi_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqChampship) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqChampship) ProtoMessage() {} func (x *ReqChampship) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[238] 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 ReqChampship.ProtoReflect.Descriptor instead. func (*ReqChampship) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{238} } type ResChampship struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Score int32 `protobuf:"varint,1,opt,name=Score,proto3" json:"Score,omitempty"` Reward int32 `protobuf:"varint,2,opt,name=Reward,proto3" json:"Reward,omitempty"` EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` 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[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChampship) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChampship) ProtoMessage() {} func (x *ResChampship) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[239] 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 ResChampship.ProtoReflect.Descriptor instead. func (*ResChampship) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{239} } func (x *ResChampship) GetScore() int32 { if x != nil { return x.Score } return 0 } func (x *ResChampship) GetReward() int32 { if x != nil { return x.Reward } return 0 } func (x *ResChampship) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ResChampship) GetPeriod() int32 { if x != nil { return x.Period } return 0 } func (x *ResChampship) GetRank() int32 { if x != nil { return x.Rank } return 0 } func (x *ResChampship) GetRankReward() int32 { if x != nil { return x.RankReward } return 0 } func (x *ResChampship) GetStatus() int32 { if x != nil { return x.Status } return 0 } type ReqChampshipReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqChampshipReward) Reset() { *x = ReqChampshipReward{} mi := &file_Gameapi_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqChampshipReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqChampshipReward) ProtoMessage() {} func (x *ReqChampshipReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[240] 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 ReqChampshipReward.ProtoReflect.Descriptor instead. func (*ReqChampshipReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{240} } type ResChampshipReward 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 *ResChampshipReward) Reset() { *x = ResChampshipReward{} mi := &file_Gameapi_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChampshipReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChampshipReward) ProtoMessage() {} func (x *ResChampshipReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[241] 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 ResChampshipReward.ProtoReflect.Descriptor instead. func (*ResChampshipReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{241} } func (x *ResChampshipReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResChampshipReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqChampshipRankReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqChampshipRankReward) Reset() { *x = ReqChampshipRankReward{} mi := &file_Gameapi_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqChampshipRankReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqChampshipRankReward) ProtoMessage() {} func (x *ReqChampshipRankReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[242] 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 ReqChampshipRankReward.ProtoReflect.Descriptor instead. func (*ReqChampshipRankReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{242} } type ResChampshipRankReward 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 *ResChampshipRankReward) Reset() { *x = ResChampshipRankReward{} mi := &file_Gameapi_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChampshipRankReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChampshipRankReward) ProtoMessage() {} func (x *ResChampshipRankReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[243] 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 ResChampshipRankReward.ProtoReflect.Descriptor instead. func (*ResChampshipRankReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{243} } func (x *ResChampshipRankReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResChampshipRankReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqChampshipRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqChampshipRank) Reset() { *x = ReqChampshipRank{} mi := &file_Gameapi_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqChampshipRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqChampshipRank) ProtoMessage() {} func (x *ReqChampshipRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[244] 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 ReqChampshipRank.ProtoReflect.Descriptor instead. func (*ReqChampshipRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{244} } type ResChampshipRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据 MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 } func (x *ResChampshipRank) Reset() { *x = ResChampshipRank{} mi := &file_Gameapi_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChampshipRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChampshipRank) ProtoMessage() {} func (x *ResChampshipRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[245] 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 ResChampshipRank.ProtoReflect.Descriptor instead. func (*ResChampshipRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{245} } func (x *ResChampshipRank) GetRankList() map[int32]*ResPlayerRank { if x != nil { return x.RankList } return nil } func (x *ResChampshipRank) GetMyRank() int32 { if x != nil { return x.MyRank } return 0 } func (x *ResChampshipRank) GetMyScore() float32 { if x != nil { return x.MyScore } return 0 } type ReqChampshipPreRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqChampshipPreRank) Reset() { *x = ReqChampshipPreRank{} mi := &file_Gameapi_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqChampshipPreRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqChampshipPreRank) ProtoMessage() {} func (x *ReqChampshipPreRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[246] 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 ReqChampshipPreRank.ProtoReflect.Descriptor instead. func (*ReqChampshipPreRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{246} } type ResChampshipPreRank struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RankList map[int32]*ResPlayerRank `protobuf:"bytes,1,rep,name=RankList,proto3" json:"RankList,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 榜单数据 MyRank int32 `protobuf:"varint,2,opt,name=MyRank,proto3" json:"MyRank,omitempty"` // 我的排行 MyScore float32 `protobuf:"fixed32,3,opt,name=MyScore,proto3" json:"MyScore,omitempty"` //我的积分 } func (x *ResChampshipPreRank) Reset() { *x = ResChampshipPreRank{} mi := &file_Gameapi_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResChampshipPreRank) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResChampshipPreRank) ProtoMessage() {} func (x *ResChampshipPreRank) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[247] 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 ResChampshipPreRank.ProtoReflect.Descriptor instead. func (*ResChampshipPreRank) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{247} } func (x *ResChampshipPreRank) GetRankList() map[int32]*ResPlayerRank { if x != nil { return x.RankList } return nil } func (x *ResChampshipPreRank) GetMyRank() int32 { if x != nil { return x.MyRank } return 0 } func (x *ResChampshipPreRank) GetMyScore() float32 { if x != nil { return x.MyScore } return 0 } type ResNotifyCard struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Card map[int32]int32 `protobuf:"bytes,1,rep,name=Card,proto3" json:"Card,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 卡牌 Master map[int32]int32 `protobuf:"bytes,2,rep,name=Master,proto3" json:"Master,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 万能卡牌 ExStar int32 `protobuf:"varint,3,opt,name=ExStar,proto3" json:"ExStar,omitempty"` // 额外星星 Handbook map[int32]int32 `protobuf:"bytes,4,rep,name=Handbook,proto3" json:"Handbook,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 图鉴 } func (x *ResNotifyCard) Reset() { *x = ResNotifyCard{} mi := &file_Gameapi_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResNotifyCard) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResNotifyCard) ProtoMessage() {} func (x *ResNotifyCard) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[248] 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 ResNotifyCard.ProtoReflect.Descriptor instead. func (*ResNotifyCard) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{248} } func (x *ResNotifyCard) GetCard() map[int32]int32 { if x != nil { return x.Card } return nil } func (x *ResNotifyCard) GetMaster() map[int32]int32 { if x != nil { return x.Master } return nil } func (x *ResNotifyCard) GetExStar() int32 { if x != nil { return x.ExStar } return 0 } func (x *ResNotifyCard) GetHandbook() map[int32]int32 { if x != nil { return x.Handbook } return nil } type ReqSetFacebookUrl struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Url string `protobuf:"bytes,1,opt,name=Url,proto3" json:"Url,omitempty"` } func (x *ReqSetFacebookUrl) Reset() { *x = ReqSetFacebookUrl{} mi := &file_Gameapi_proto_msgTypes[249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSetFacebookUrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSetFacebookUrl) ProtoMessage() {} func (x *ReqSetFacebookUrl) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[249] 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 ReqSetFacebookUrl.ProtoReflect.Descriptor instead. func (*ReqSetFacebookUrl) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{249} } func (x *ReqSetFacebookUrl) GetUrl() string { if x != nil { return x.Url } return "" } type ResSetFacebookUrl 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 *ResSetFacebookUrl) Reset() { *x = ResSetFacebookUrl{} mi := &file_Gameapi_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSetFacebookUrl) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSetFacebookUrl) ProtoMessage() {} func (x *ResSetFacebookUrl) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[250] 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 ResSetFacebookUrl.ProtoReflect.Descriptor instead. func (*ResSetFacebookUrl) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{250} } func (x *ResSetFacebookUrl) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResSetFacebookUrl) GetMsg() string { if x != nil { return x.Msg } return "" } // 邀请facebook好友 type ReqInviteFriendData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DwUin int64 `protobuf:"varint,1,opt,name=dwUin,proto3" json:"dwUin,omitempty"` } func (x *ReqInviteFriendData) Reset() { *x = ReqInviteFriendData{} mi := &file_Gameapi_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqInviteFriendData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqInviteFriendData) ProtoMessage() {} func (x *ReqInviteFriendData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[251] 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 ReqInviteFriendData.ProtoReflect.Descriptor instead. func (*ReqInviteFriendData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{251} } func (x *ReqInviteFriendData) GetDwUin() int64 { if x != nil { return x.DwUin } return 0 } type ResInviteFriendData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IdLists []int32 `protobuf:"varint,1,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` GetIndex int32 `protobuf:"varint,2,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` } func (x *ResInviteFriendData) Reset() { *x = ResInviteFriendData{} mi := &file_Gameapi_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResInviteFriendData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResInviteFriendData) ProtoMessage() {} func (x *ResInviteFriendData) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[252] 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 ResInviteFriendData.ProtoReflect.Descriptor instead. func (*ResInviteFriendData) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{252} } func (x *ResInviteFriendData) GetIdLists() []int32 { if x != nil { return x.IdLists } return nil } func (x *ResInviteFriendData) GetGetIndex() int32 { if x != nil { return x.GetIndex } return 0 } type ReqSelfInvited struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InviterId int64 `protobuf:"varint,1,opt,name=InviterId,proto3" json:"InviterId,omitempty"` } func (x *ReqSelfInvited) Reset() { *x = ReqSelfInvited{} mi := &file_Gameapi_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqSelfInvited) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqSelfInvited) ProtoMessage() {} func (x *ReqSelfInvited) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[253] 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 ReqSelfInvited.ProtoReflect.Descriptor instead. func (*ReqSelfInvited) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{253} } func (x *ReqSelfInvited) GetInviterId() int64 { if x != nil { return x.InviterId } return 0 } type ResSelfInvited struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResSelfInvited) Reset() { *x = ResSelfInvited{} mi := &file_Gameapi_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResSelfInvited) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResSelfInvited) ProtoMessage() {} func (x *ResSelfInvited) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[254] 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 ResSelfInvited.ProtoReflect.Descriptor instead. func (*ResSelfInvited) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{254} } func (x *ResSelfInvited) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } type NotifyInvitedSuccess struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` IdLists []int32 `protobuf:"varint,2,rep,packed,name=IdLists,proto3" json:"IdLists,omitempty"` } func (x *NotifyInvitedSuccess) Reset() { *x = NotifyInvitedSuccess{} mi := &file_Gameapi_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyInvitedSuccess) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyInvitedSuccess) ProtoMessage() {} func (x *NotifyInvitedSuccess) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[255] 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 NotifyInvitedSuccess.ProtoReflect.Descriptor instead. func (*NotifyInvitedSuccess) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{255} } func (x *NotifyInvitedSuccess) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } func (x *NotifyInvitedSuccess) GetIdLists() []int32 { if x != nil { return x.IdLists } return nil } type ReqGetInviteReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GetIndex int32 `protobuf:"varint,1,opt,name=GetIndex,proto3" json:"GetIndex,omitempty"` } func (x *ReqGetInviteReward) Reset() { *x = ReqGetInviteReward{} mi := &file_Gameapi_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGetInviteReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGetInviteReward) ProtoMessage() {} func (x *ReqGetInviteReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[256] 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 ReqGetInviteReward.ProtoReflect.Descriptor instead. func (*ReqGetInviteReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{256} } func (x *ReqGetInviteReward) GetGetIndex() int32 { if x != nil { return x.GetIndex } return 0 } type ResGetInviteReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResGetInviteReward) Reset() { *x = ResGetInviteReward{} mi := &file_Gameapi_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGetInviteReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGetInviteReward) ProtoMessage() {} func (x *ResGetInviteReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[257] 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 ResGetInviteReward.ProtoReflect.Descriptor instead. func (*ResGetInviteReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{257} } func (x *ResGetInviteReward) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } type ReqAutoAddInviteFriend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // uid } func (x *ReqAutoAddInviteFriend) Reset() { *x = ReqAutoAddInviteFriend{} mi := &file_Gameapi_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAutoAddInviteFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAutoAddInviteFriend) ProtoMessage() {} func (x *ReqAutoAddInviteFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[258] 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 ReqAutoAddInviteFriend.ProtoReflect.Descriptor instead. func (*ReqAutoAddInviteFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{258} } func (x *ReqAutoAddInviteFriend) GetId() int64 { if x != nil { return x.Id } return 0 } type ResAutoAddInviteFriend struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResAutoAddInviteFriend) Reset() { *x = ResAutoAddInviteFriend{} mi := &file_Gameapi_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAutoAddInviteFriend) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAutoAddInviteFriend) ProtoMessage() {} func (x *ResAutoAddInviteFriend) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[259] 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 ResAutoAddInviteFriend.ProtoReflect.Descriptor instead. func (*ResAutoAddInviteFriend) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{259} } func (x *ResAutoAddInviteFriend) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } type ReqAutoAddInviteFriend2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // facebook id } func (x *ReqAutoAddInviteFriend2) Reset() { *x = ReqAutoAddInviteFriend2{} mi := &file_Gameapi_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAutoAddInviteFriend2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAutoAddInviteFriend2) ProtoMessage() {} func (x *ReqAutoAddInviteFriend2) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[260] 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 ReqAutoAddInviteFriend2.ProtoReflect.Descriptor instead. func (*ReqAutoAddInviteFriend2) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{260} } func (x *ReqAutoAddInviteFriend2) GetId() string { if x != nil { return x.Id } return "" } type ResAutoAddInviteFriend2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } func (x *ResAutoAddInviteFriend2) Reset() { *x = ResAutoAddInviteFriend2{} mi := &file_Gameapi_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResAutoAddInviteFriend2) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResAutoAddInviteFriend2) ProtoMessage() {} func (x *ResAutoAddInviteFriend2) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[261] 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 ResAutoAddInviteFriend2.ProtoReflect.Descriptor instead. func (*ResAutoAddInviteFriend2) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{261} } func (x *ResAutoAddInviteFriend2) GetResultCode() int32 { if x != nil { return x.ResultCode } return 0 } // 挖矿活动 type ReqMining struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqMining) Reset() { *x = ReqMining{} mi := &file_Gameapi_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqMining) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqMining) ProtoMessage() {} func (x *ReqMining) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[262] 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 ReqMining.ProtoReflect.Descriptor instead. func (*ReqMining) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{262} } type ResMining struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 Gem []int32 `protobuf:"varint,6,rep,packed,name=Gem,proto3" json:"Gem,omitempty"` // 宝石 Map map[int32]string `protobuf:"bytes,7,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图 Mining int32 `protobuf:"varint,8,opt,name=Mining,proto3" json:"Mining,omitempty"` // 本关挖矿次数 } func (x *ResMining) Reset() { *x = ResMining{} mi := &file_Gameapi_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResMining) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResMining) ProtoMessage() {} func (x *ResMining) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[263] 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 ResMining.ProtoReflect.Descriptor instead. func (*ResMining) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{263} } func (x *ResMining) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ResMining) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResMining) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ResMining) GetTemplate() int32 { if x != nil { return x.Template } return 0 } func (x *ResMining) GetPass() int32 { if x != nil { return x.Pass } return 0 } func (x *ResMining) GetGem() []int32 { if x != nil { return x.Gem } return nil } func (x *ResMining) GetMap() map[int32]string { if x != nil { return x.Map } return nil } func (x *ResMining) GetMining() int32 { if x != nil { return x.Mining } return 0 } type ReqMiningTake struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Map map[int32]string `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 地图 Gem int32 `protobuf:"varint,2,opt,name=Gem,proto3" json:"Gem,omitempty"` // 解锁的宝石 } func (x *ReqMiningTake) Reset() { *x = ReqMiningTake{} mi := &file_Gameapi_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqMiningTake) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqMiningTake) ProtoMessage() {} func (x *ReqMiningTake) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[264] 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 ReqMiningTake.ProtoReflect.Descriptor instead. func (*ReqMiningTake) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{264} } func (x *ReqMiningTake) GetMap() map[int32]string { if x != nil { return x.Map } return nil } func (x *ReqMiningTake) GetGem() int32 { if x != nil { return x.Gem } return 0 } type ResMiningTake 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 *ResMiningTake) Reset() { *x = ResMiningTake{} mi := &file_Gameapi_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResMiningTake) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResMiningTake) ProtoMessage() {} func (x *ResMiningTake) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[265] 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 ResMiningTake.ProtoReflect.Descriptor instead. func (*ResMiningTake) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{265} } func (x *ResMiningTake) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResMiningTake) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqMiningReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqMiningReward) Reset() { *x = ReqMiningReward{} mi := &file_Gameapi_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqMiningReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqMiningReward) ProtoMessage() {} func (x *ReqMiningReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[266] 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 ReqMiningReward.ProtoReflect.Descriptor instead. func (*ReqMiningReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{266} } type ResMiningReward 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 *ResMiningReward) Reset() { *x = ResMiningReward{} mi := &file_Gameapi_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResMiningReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResMiningReward) ProtoMessage() {} func (x *ResMiningReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[267] 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 ResMiningReward.ProtoReflect.Descriptor instead. func (*ResMiningReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{267} } func (x *ResMiningReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResMiningReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ResActRed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Red map[int32]int32 `protobuf:"bytes,1,rep,name=Red,proto3" json:"Red,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 活动红点 } func (x *ResActRed) Reset() { *x = ResActRed{} mi := &file_Gameapi_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResActRed) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResActRed) ProtoMessage() {} func (x *ResActRed) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[268] 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 ResActRed.ProtoReflect.Descriptor instead. func (*ResActRed) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{268} } func (x *ResActRed) GetRed() map[int32]int32 { if x != nil { return x.Red } return nil } // 活动红点通知 type NotifyActRed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Red int32 `protobuf:"varint,2,opt,name=Red,proto3" json:"Red,omitempty"` } func (x *NotifyActRed) Reset() { *x = NotifyActRed{} mi := &file_Gameapi_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyActRed) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyActRed) ProtoMessage() {} func (x *NotifyActRed) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[269] 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 NotifyActRed.ProtoReflect.Descriptor instead. func (*NotifyActRed) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{269} } func (x *NotifyActRed) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *NotifyActRed) GetRed() int32 { if x != nil { return x.Red } return 0 } // 活动更新通知 type ActivityNotify struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Info *ActivityInfo `protobuf:"bytes,1,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *ActivityNotify) Reset() { *x = ActivityNotify{} mi := &file_Gameapi_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ActivityNotify) String() string { return protoimpl.X.MessageStringOf(x) } func (*ActivityNotify) ProtoMessage() {} func (x *ActivityNotify) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[270] 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 ActivityNotify.ProtoReflect.Descriptor instead. func (*ActivityNotify) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{270} } func (x *ActivityNotify) GetInfo() *ActivityInfo { if x != nil { return x.Info } return nil } type ResItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResItem) Reset() { *x = ResItem{} mi := &file_Gameapi_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResItem) ProtoMessage() {} func (x *ResItem) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[271] 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 ResItem.ProtoReflect.Descriptor instead. func (*ResItem) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{271} } func (x *ResItem) GetItem() map[int32]int32 { if x != nil { return x.Item } return nil } type ItemNotify struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Item map[int32]int32 `protobuf:"bytes,1,rep,name=Item,proto3" json:"Item,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 道具id =》 变化的数量 } func (x *ItemNotify) Reset() { *x = ItemNotify{} mi := &file_Gameapi_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ItemNotify) String() string { return protoimpl.X.MessageStringOf(x) } func (*ItemNotify) ProtoMessage() {} func (x *ItemNotify) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[272] 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 ItemNotify.ProtoReflect.Descriptor instead. func (*ItemNotify) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{272} } func (x *ItemNotify) GetItem() map[int32]int32 { if x != nil { return x.Item } return nil } // 猜颜色 type ReqGuessColor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqGuessColor) Reset() { *x = ReqGuessColor{} mi := &file_Gameapi_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGuessColor) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGuessColor) ProtoMessage() {} func (x *ReqGuessColor) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[273] 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 ReqGuessColor.ProtoReflect.Descriptor instead. func (*ReqGuessColor) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{273} } type ResGuessColor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 Color []int32 `protobuf:"varint,6,rep,packed,name=Color,proto3" json:"Color,omitempty"` // 剩余的颜色 Pos []int32 `protobuf:"varint,7,rep,packed,name=Pos,proto3" json:"Pos,omitempty"` // 已猜中的颜色 位置从左到右 从1开始 Opponent *Opponent `protobuf:"bytes,8,opt,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 } func (x *ResGuessColor) Reset() { *x = ResGuessColor{} mi := &file_Gameapi_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGuessColor) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGuessColor) ProtoMessage() {} func (x *ResGuessColor) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[274] 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 ResGuessColor.ProtoReflect.Descriptor instead. func (*ResGuessColor) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{274} } func (x *ResGuessColor) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ResGuessColor) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResGuessColor) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ResGuessColor) GetTemplate() int32 { if x != nil { return x.Template } return 0 } func (x *ResGuessColor) GetPass() int32 { if x != nil { return x.Pass } return 0 } func (x *ResGuessColor) GetColor() []int32 { if x != nil { return x.Color } return nil } func (x *ResGuessColor) GetPos() []int32 { if x != nil { return x.Pos } return nil } func (x *ResGuessColor) GetOpponent() *Opponent { if x != nil { return x.Opponent } return nil } type Opponent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Progress int32 `protobuf:"varint,5,opt,name=Progress,proto3" json:"Progress,omitempty"` } func (x *Opponent) Reset() { *x = Opponent{} mi := &file_Gameapi_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Opponent) String() string { return protoimpl.X.MessageStringOf(x) } func (*Opponent) ProtoMessage() {} func (x *Opponent) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[275] 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 Opponent.ProtoReflect.Descriptor instead. func (*Opponent) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{275} } func (x *Opponent) GetName() string { if x != nil { return x.Name } return "" } func (x *Opponent) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *Opponent) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *Opponent) GetProgress() int32 { if x != nil { return x.Progress } return 0 } type ReqGuessColorTake struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Map map[int32]int32 `protobuf:"bytes,1,rep,name=Map,proto3" json:"Map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 颜色 pos => color } func (x *ReqGuessColorTake) Reset() { *x = ReqGuessColorTake{} mi := &file_Gameapi_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGuessColorTake) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGuessColorTake) ProtoMessage() {} func (x *ReqGuessColorTake) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[276] 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 ReqGuessColorTake.ProtoReflect.Descriptor instead. func (*ReqGuessColorTake) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{276} } func (x *ReqGuessColorTake) GetMap() map[int32]int32 { if x != nil { return x.Map } return nil } type ResGuessColorTake 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 *ResGuessColorTake) Reset() { *x = ResGuessColorTake{} mi := &file_Gameapi_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGuessColorTake) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGuessColorTake) ProtoMessage() {} func (x *ResGuessColorTake) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[277] 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 ResGuessColorTake.ProtoReflect.Descriptor instead. func (*ResGuessColorTake) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{277} } func (x *ResGuessColorTake) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGuessColorTake) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqGuessColorReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqGuessColorReward) Reset() { *x = ReqGuessColorReward{} mi := &file_Gameapi_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqGuessColorReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqGuessColorReward) ProtoMessage() {} func (x *ReqGuessColorReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[278] 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 ReqGuessColorReward.ProtoReflect.Descriptor instead. func (*ReqGuessColorReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{278} } type ResGuessColorReward 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 *ResGuessColorReward) Reset() { *x = ResGuessColorReward{} mi := &file_Gameapi_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResGuessColorReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResGuessColorReward) ProtoMessage() {} func (x *ResGuessColorReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[279] 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 ResGuessColorReward.ProtoReflect.Descriptor instead. func (*ResGuessColorReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{279} } func (x *ResGuessColorReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResGuessColorReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqRace struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqRace) Reset() { *x = ReqRace{} mi := &file_Gameapi_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRace) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRace) ProtoMessage() {} func (x *ReqRace) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[280] 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 ReqRace.ProtoReflect.Descriptor instead. func (*ReqRace) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{280} } type ResRace struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 活动id Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 EndTime int32 `protobuf:"varint,3,opt,name=EndTime,proto3" json:"EndTime,omitempty"` // 结束时间 Template int32 `protobuf:"varint,4,opt,name=Template,proto3" json:"Template,omitempty"` // 模板 Pass int32 `protobuf:"varint,5,opt,name=Pass,proto3" json:"Pass,omitempty"` // 关卡 GameStartTime int32 `protobuf:"varint,6,opt,name=GameStartTime,proto3" json:"GameStartTime,omitempty"` // 游戏开始时间 GameEndTime int32 `protobuf:"varint,7,opt,name=GameEndTime,proto3" json:"GameEndTime,omitempty"` // 游戏结束时间 Progress int32 `protobuf:"varint,8,opt,name=Progress,proto3" json:"Progress,omitempty"` // 进度 Opponent []*Raceopponent `protobuf:"bytes,9,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 } func (x *ResRace) Reset() { *x = ResRace{} mi := &file_Gameapi_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRace) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRace) ProtoMessage() {} func (x *ResRace) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[281] 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 ResRace.ProtoReflect.Descriptor instead. func (*ResRace) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{281} } func (x *ResRace) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ResRace) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResRace) GetEndTime() int32 { if x != nil { return x.EndTime } return 0 } func (x *ResRace) GetTemplate() int32 { if x != nil { return x.Template } return 0 } func (x *ResRace) GetPass() int32 { if x != nil { return x.Pass } return 0 } func (x *ResRace) GetGameStartTime() int32 { if x != nil { return x.GameStartTime } return 0 } func (x *ResRace) GetGameEndTime() int32 { if x != nil { return x.GameEndTime } return 0 } func (x *ResRace) GetProgress() int32 { if x != nil { return x.Progress } return 0 } func (x *ResRace) GetOpponent() []*Raceopponent { if x != nil { return x.Opponent } return nil } type Raceopponent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` Image int32 `protobuf:"varint,2,opt,name=Image,proto3" json:"Image,omitempty"` Progress int32 `protobuf:"varint,3,opt,name=Progress,proto3" json:"Progress,omitempty"` } func (x *Raceopponent) Reset() { *x = Raceopponent{} mi := &file_Gameapi_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Raceopponent) String() string { return protoimpl.X.MessageStringOf(x) } func (*Raceopponent) ProtoMessage() {} func (x *Raceopponent) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[282] 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 Raceopponent.ProtoReflect.Descriptor instead. func (*Raceopponent) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{282} } func (x *Raceopponent) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *Raceopponent) GetImage() int32 { if x != nil { return x.Image } return 0 } func (x *Raceopponent) GetProgress() int32 { if x != nil { return x.Progress } return 0 } type ReqRaceStart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqRaceStart) Reset() { *x = ReqRaceStart{} mi := &file_Gameapi_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRaceStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRaceStart) ProtoMessage() {} func (x *ReqRaceStart) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[283] 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 ReqRaceStart.ProtoReflect.Descriptor instead. func (*ReqRaceStart) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{283} } type ResRaceStart 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 *ResRaceStart) Reset() { *x = ResRaceStart{} mi := &file_Gameapi_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRaceStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRaceStart) ProtoMessage() {} func (x *ResRaceStart) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[284] 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 ResRaceStart.ProtoReflect.Descriptor instead. func (*ResRaceStart) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{284} } func (x *ResRaceStart) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRaceStart) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqRaceReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqRaceReward) Reset() { *x = ReqRaceReward{} mi := &file_Gameapi_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqRaceReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqRaceReward) ProtoMessage() {} func (x *ReqRaceReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[285] 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 ReqRaceReward.ProtoReflect.Descriptor instead. func (*ReqRaceReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{285} } type ResRaceReward 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 *ResRaceReward) Reset() { *x = ResRaceReward{} mi := &file_Gameapi_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResRaceReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResRaceReward) ProtoMessage() {} func (x *ResRaceReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[286] 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 ResRaceReward.ProtoReflect.Descriptor instead. func (*ResRaceReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{286} } func (x *ResRaceReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResRaceReward) GetMsg() string { if x != nil { return x.Msg } return "" } // --------------------------【playroom】-------------------------- type ReqPlayroom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroom) Reset() { *x = ReqPlayroom{} mi := &file_Gameapi_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroom) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroom) ProtoMessage() {} func (x *ReqPlayroom) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[287] 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 ReqPlayroom.ProtoReflect.Descriptor instead. func (*ReqPlayroom) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{287} } type ResPlayroom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status int32 `protobuf:"varint,1,opt,name=status,proto3" json:"status,omitempty"` // 状态 Items []*ItemInfo `protobuf:"bytes,2,rep,name=Items,proto3" json:"Items,omitempty"` // 触发式订单奖励 Opponent []*RoomOpponent `protobuf:"bytes,3,rep,name=Opponent,proto3" json:"Opponent,omitempty"` // 对手 Friend []*FriendRoom `protobuf:"bytes,4,rep,name=Friend,proto3" json:"Friend,omitempty"` // 好友 Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id Collect []int32 `protobuf:"varint,6,rep,packed,name=collect,proto3" json:"collect,omitempty"` // 已解锁的装饰 Mood map[int32]int32 `protobuf:"bytes,7,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 心情 <位置, 心情> LoseItem []*ItemInfo `protobuf:"bytes,8,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 StartTime int32 `protobuf:"varint,9,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 WorkStatus int32 `protobuf:"varint,10,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 AllMood int32 `protobuf:"varint,11,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 Chip int32 `protobuf:"varint,12,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 WorkOutline int32 `protobuf:"varint,13,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 离线打工状态 0 未离线 1 已离线 Jackpot int32 `protobuf:"varint,14,opt,name=Jackpot,proto3" json:"Jackpot,omitempty"` // 每日转盘次数 Physiology map[int32]int32 `protobuf:"bytes,15,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` } func (x *ResPlayroom) Reset() { *x = ResPlayroom{} mi := &file_Gameapi_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroom) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroom) ProtoMessage() {} func (x *ResPlayroom) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[288] 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 ResPlayroom.ProtoReflect.Descriptor instead. func (*ResPlayroom) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{288} } func (x *ResPlayroom) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResPlayroom) GetItems() []*ItemInfo { if x != nil { return x.Items } return nil } func (x *ResPlayroom) GetOpponent() []*RoomOpponent { if x != nil { return x.Opponent } return nil } func (x *ResPlayroom) GetFriend() []*FriendRoom { if x != nil { return x.Friend } return nil } func (x *ResPlayroom) GetPlayroom() map[int32]int32 { if x != nil { return x.Playroom } return nil } func (x *ResPlayroom) GetCollect() []int32 { if x != nil { return x.Collect } return nil } func (x *ResPlayroom) GetMood() map[int32]int32 { if x != nil { return x.Mood } return nil } func (x *ResPlayroom) GetLoseItem() []*ItemInfo { if x != nil { return x.LoseItem } return nil } func (x *ResPlayroom) GetStartTime() int32 { if x != nil { return x.StartTime } return 0 } func (x *ResPlayroom) GetWorkStatus() int32 { if x != nil { return x.WorkStatus } return 0 } func (x *ResPlayroom) GetAllMood() int32 { if x != nil { return x.AllMood } return 0 } func (x *ResPlayroom) GetChip() int32 { if x != nil { return x.Chip } return 0 } func (x *ResPlayroom) GetWorkOutline() int32 { if x != nil { return x.WorkOutline } return 0 } func (x *ResPlayroom) GetJackpot() int32 { if x != nil { return x.Jackpot } return 0 } func (x *ResPlayroom) GetPhysiology() map[int32]int32 { if x != nil { return x.Physiology } return nil } type ReqPlayroomWrokOutline struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomWrokOutline) Reset() { *x = ReqPlayroomWrokOutline{} mi := &file_Gameapi_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomWrokOutline) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomWrokOutline) ProtoMessage() {} func (x *ReqPlayroomWrokOutline) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[289] 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 ReqPlayroomWrokOutline.ProtoReflect.Descriptor instead. func (*ReqPlayroomWrokOutline) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{289} } type ResPlayroomWrokOutline 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 *ResPlayroomWrokOutline) Reset() { *x = ResPlayroomWrokOutline{} mi := &file_Gameapi_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomWrokOutline) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomWrokOutline) ProtoMessage() {} func (x *ResPlayroomWrokOutline) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[290] 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 ResPlayroomWrokOutline.ProtoReflect.Descriptor instead. func (*ResPlayroomWrokOutline) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{290} } func (x *ResPlayroomWrokOutline) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomWrokOutline) GetMsg() string { if x != nil { return x.Msg } return "" } type NofiPlayroomStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WorkOutline int32 `protobuf:"varint,1,opt,name=WorkOutline,proto3" json:"WorkOutline,omitempty"` // 状态 } func (x *NofiPlayroomStatus) Reset() { *x = NofiPlayroomStatus{} mi := &file_Gameapi_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NofiPlayroomStatus) String() string { return protoimpl.X.MessageStringOf(x) } func (*NofiPlayroomStatus) ProtoMessage() {} func (x *NofiPlayroomStatus) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[291] 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 NofiPlayroomStatus.ProtoReflect.Descriptor instead. func (*NofiPlayroomStatus) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{291} } func (x *NofiPlayroomStatus) GetWorkOutline() int32 { if x != nil { return x.WorkOutline } return 0 } type NotifyPlayroomWork struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields StartTime int32 `protobuf:"varint,1,opt,name=StartTime,proto3" json:"StartTime,omitempty"` // 开始时间 WorkStatus int32 `protobuf:"varint,2,opt,name=WorkStatus,proto3" json:"WorkStatus,omitempty"` // 1 工作中 2 休息中 } func (x *NotifyPlayroomWork) Reset() { *x = NotifyPlayroomWork{} mi := &file_Gameapi_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyPlayroomWork) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyPlayroomWork) ProtoMessage() {} func (x *NotifyPlayroomWork) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[292] 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 NotifyPlayroomWork.ProtoReflect.Descriptor instead. func (*NotifyPlayroomWork) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{292} } func (x *NotifyPlayroomWork) GetStartTime() int32 { if x != nil { return x.StartTime } return 0 } func (x *NotifyPlayroomWork) GetWorkStatus() int32 { if x != nil { return x.WorkStatus } return 0 } type NotifyPlayroomLose struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields LoseItem []*ItemInfo `protobuf:"bytes,1,rep,name=LoseItem,proto3" json:"LoseItem,omitempty"` // 损失的道具 Chip int32 `protobuf:"varint,2,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 } func (x *NotifyPlayroomLose) Reset() { *x = NotifyPlayroomLose{} mi := &file_Gameapi_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyPlayroomLose) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyPlayroomLose) ProtoMessage() {} func (x *NotifyPlayroomLose) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[293] 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 NotifyPlayroomLose.ProtoReflect.Descriptor instead. func (*NotifyPlayroomLose) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{293} } func (x *NotifyPlayroomLose) GetLoseItem() []*ItemInfo { if x != nil { return x.LoseItem } return nil } func (x *NotifyPlayroomLose) GetChip() int32 { if x != nil { return x.Chip } return 0 } type NotifyPlayroomMood struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields AllMood int32 `protobuf:"varint,1,opt,name=AllMood,proto3" json:"AllMood,omitempty"` // 总心情 Mood map[int32]int32 `protobuf:"bytes,2,rep,name=Mood,proto3" json:"Mood,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 心情 <位置, 心情> Physiology map[int32]int32 `protobuf:"bytes,3,rep,name=Physiology,proto3" json:"Physiology,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 生理 <位置, 生理> } func (x *NotifyPlayroomMood) Reset() { *x = NotifyPlayroomMood{} mi := &file_Gameapi_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *NotifyPlayroomMood) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyPlayroomMood) ProtoMessage() {} func (x *NotifyPlayroomMood) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[294] 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 NotifyPlayroomMood.ProtoReflect.Descriptor instead. func (*NotifyPlayroomMood) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{294} } func (x *NotifyPlayroomMood) GetAllMood() int32 { if x != nil { return x.AllMood } return 0 } func (x *NotifyPlayroomMood) GetMood() map[int32]int32 { if x != nil { return x.Mood } return nil } func (x *NotifyPlayroomMood) GetPhysiology() map[int32]int32 { if x != nil { return x.Physiology } return nil } type FriendRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Times int32 `protobuf:"varint,5,opt,name=Times,proto3" json:"Times,omitempty"` // 以你为目标的次数 } func (x *FriendRoom) Reset() { *x = FriendRoom{} mi := &file_Gameapi_proto_msgTypes[295] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *FriendRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*FriendRoom) ProtoMessage() {} func (x *FriendRoom) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[295] 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 FriendRoom.ProtoReflect.Descriptor instead. func (*FriendRoom) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{295} } func (x *FriendRoom) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *FriendRoom) GetName() string { if x != nil { return x.Name } return "" } func (x *FriendRoom) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *FriendRoom) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *FriendRoom) GetTimes() int32 { if x != nil { return x.Times } return 0 } type RoomOpponent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` LastTime int32 `protobuf:"varint,5,opt,name=LastTime,proto3" json:"LastTime,omitempty"` // 上次被攻击时间 } func (x *RoomOpponent) Reset() { *x = RoomOpponent{} mi := &file_Gameapi_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RoomOpponent) String() string { return protoimpl.X.MessageStringOf(x) } func (*RoomOpponent) ProtoMessage() {} func (x *RoomOpponent) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[296] 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 RoomOpponent.ProtoReflect.Descriptor instead. func (*RoomOpponent) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{296} } func (x *RoomOpponent) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *RoomOpponent) GetName() string { if x != nil { return x.Name } return "" } func (x *RoomOpponent) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *RoomOpponent) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *RoomOpponent) GetLastTime() int32 { if x != nil { return x.LastTime } return 0 } // 请求拜访空间信息 type ReqPlayroomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqPlayroomInfo) Reset() { *x = ReqPlayroomInfo{} mi := &file_Gameapi_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomInfo) ProtoMessage() {} func (x *ReqPlayroomInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[297] 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 ReqPlayroomInfo.ProtoReflect.Descriptor instead. func (*ReqPlayroomInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{297} } func (x *ReqPlayroomInfo) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ResPlayroomInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` Playroom map[int32]int32 `protobuf:"bytes,5,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id GameId int32 `protobuf:"varint,6,opt,name=GameId,proto3" json:"GameId,omitempty"` // 游戏id Items map[int32]*ItemInfo `protobuf:"bytes,7,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励 Status int32 `protobuf:"varint,8,opt,name=Status,proto3" json:"Status,omitempty"` // 状态 0 未开始 1 选择奖励 2 已结束 Defense bool `protobuf:"varint,9,opt,name=defense,proto3" json:"defense,omitempty"` // 是否有防御 Flip map[int32]int32 `protobuf:"bytes,10,rep,name=flip,proto3" json:"flip,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 翻牌 <位置, 牌> Chip int32 `protobuf:"varint,11,opt,name=Chip,proto3" json:"Chip,omitempty"` // 碎片 PetName string `protobuf:"bytes,12,opt,name=PetName,proto3" json:"PetName,omitempty"` // 宠物名 } func (x *ResPlayroomInfo) Reset() { *x = ResPlayroomInfo{} mi := &file_Gameapi_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomInfo) ProtoMessage() {} func (x *ResPlayroomInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[298] 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 ResPlayroomInfo.ProtoReflect.Descriptor instead. func (*ResPlayroomInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{298} } func (x *ResPlayroomInfo) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *ResPlayroomInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *ResPlayroomInfo) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *ResPlayroomInfo) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *ResPlayroomInfo) GetPlayroom() map[int32]int32 { if x != nil { return x.Playroom } return nil } func (x *ResPlayroomInfo) GetGameId() int32 { if x != nil { return x.GameId } return 0 } func (x *ResPlayroomInfo) GetItems() map[int32]*ItemInfo { if x != nil { return x.Items } return nil } func (x *ResPlayroomInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResPlayroomInfo) GetDefense() bool { if x != nil { return x.Defense } return false } func (x *ResPlayroomInfo) GetFlip() map[int32]int32 { if x != nil { return x.Flip } return nil } func (x *ResPlayroomInfo) GetChip() int32 { if x != nil { return x.Chip } return 0 } func (x *ResPlayroomInfo) GetPetName() string { if x != nil { return x.PetName } return "" } // 请求翻牌 type ReqPlayroomFlip struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 } func (x *ReqPlayroomFlip) Reset() { *x = ReqPlayroomFlip{} mi := &file_Gameapi_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomFlip) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomFlip) ProtoMessage() {} func (x *ReqPlayroomFlip) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[299] 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 ReqPlayroomFlip.ProtoReflect.Descriptor instead. func (*ReqPlayroomFlip) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{299} } func (x *ReqPlayroomFlip) GetId() int32 { if x != nil { return x.Id } return 0 } type ResPlayroomFlip 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"` Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 翻牌位置 CardId int32 `protobuf:"varint,4,opt,name=CardId,proto3" json:"CardId,omitempty"` // 卡牌id } func (x *ResPlayroomFlip) Reset() { *x = ResPlayroomFlip{} mi := &file_Gameapi_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomFlip) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomFlip) ProtoMessage() {} func (x *ResPlayroomFlip) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[300] 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 ResPlayroomFlip.ProtoReflect.Descriptor instead. func (*ResPlayroomFlip) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{300} } func (x *ResPlayroomFlip) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomFlip) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResPlayroomFlip) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ResPlayroomFlip) GetCardId() int32 { if x != nil { return x.CardId } return 0 } // 领取游戏奖励 type ReqPlayroomFlipReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomFlipReward) Reset() { *x = ReqPlayroomFlipReward{} mi := &file_Gameapi_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomFlipReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomFlipReward) ProtoMessage() {} func (x *ReqPlayroomFlipReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[301] 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 ReqPlayroomFlipReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomFlipReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{301} } type ResPlayroomFlipReward 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 *ResPlayroomFlipReward) Reset() { *x = ResPlayroomFlipReward{} mi := &file_Gameapi_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomFlipReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomFlipReward) ProtoMessage() {} func (x *ResPlayroomFlipReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[302] 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 ResPlayroomFlipReward.ProtoReflect.Descriptor instead. func (*ResPlayroomFlipReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{302} } func (x *ResPlayroomFlipReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomFlipReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqPlayroomGame struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type int32 `protobuf:"varint,1,opt,name=Type,proto3" json:"Type,omitempty"` // 1:绿色 2:黄色 3:红色 } func (x *ReqPlayroomGame) Reset() { *x = ReqPlayroomGame{} mi := &file_Gameapi_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomGame) ProtoMessage() {} func (x *ReqPlayroomGame) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[303] 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 ReqPlayroomGame.ProtoReflect.Descriptor instead. func (*ReqPlayroomGame) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{303} } func (x *ReqPlayroomGame) GetType() int32 { if x != nil { return x.Type } return 0 } type ResPlayroomGame 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"` Type int32 `protobuf:"varint,3,opt,name=Type,proto3" json:"Type,omitempty"` Items map[int32]*ItemInfo `protobuf:"bytes,4,rep,name=Items,proto3" json:"Items,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 游戏奖励 } func (x *ResPlayroomGame) Reset() { *x = ResPlayroomGame{} mi := &file_Gameapi_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomGame) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomGame) ProtoMessage() {} func (x *ResPlayroomGame) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[304] 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 ResPlayroomGame.ProtoReflect.Descriptor instead. func (*ResPlayroomGame) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{304} } func (x *ResPlayroomGame) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomGame) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResPlayroomGame) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *ResPlayroomGame) GetItems() map[int32]*ItemInfo { if x != nil { return x.Items } return nil } type ReqPlayroomInteract struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 互动类型 Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 1 消耗道具1 2 消耗道具2 } func (x *ReqPlayroomInteract) Reset() { *x = ReqPlayroomInteract{} mi := &file_Gameapi_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomInteract) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomInteract) ProtoMessage() {} func (x *ReqPlayroomInteract) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[305] 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 ReqPlayroomInteract.ProtoReflect.Descriptor instead. func (*ReqPlayroomInteract) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{305} } func (x *ReqPlayroomInteract) GetId() int32 { if x != nil { return x.Id } return 0 } func (x *ReqPlayroomInteract) GetType() int32 { if x != nil { return x.Type } return 0 } type ResPlayroomInteract 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 *ResPlayroomInteract) Reset() { *x = ResPlayroomInteract{} mi := &file_Gameapi_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomInteract) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomInteract) ProtoMessage() {} func (x *ResPlayroomInteract) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[306] 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 ResPlayroomInteract.ProtoReflect.Descriptor instead. func (*ResPlayroomInteract) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{306} } func (x *ResPlayroomInteract) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomInteract) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqPlayroomSetRoom struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Playroom map[int32]int32 `protobuf:"bytes,1,rep,name=Playroom,proto3" json:"Playroom,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 空间装饰 位置 =》 装饰id } func (x *ReqPlayroomSetRoom) Reset() { *x = ReqPlayroomSetRoom{} mi := &file_Gameapi_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomSetRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomSetRoom) ProtoMessage() {} func (x *ReqPlayroomSetRoom) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[307] 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 ReqPlayroomSetRoom.ProtoReflect.Descriptor instead. func (*ReqPlayroomSetRoom) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{307} } func (x *ReqPlayroomSetRoom) GetPlayroom() map[int32]int32 { if x != nil { return x.Playroom } return nil } type ResPlayroomSetRoom 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 *ResPlayroomSetRoom) Reset() { *x = ResPlayroomSetRoom{} mi := &file_Gameapi_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomSetRoom) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomSetRoom) ProtoMessage() {} func (x *ResPlayroomSetRoom) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[308] 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 ResPlayroomSetRoom.ProtoReflect.Descriptor instead. func (*ResPlayroomSetRoom) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{308} } func (x *ResPlayroomSetRoom) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomSetRoom) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqPlayroomSelectReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励id } func (x *ReqPlayroomSelectReward) Reset() { *x = ReqPlayroomSelectReward{} mi := &file_Gameapi_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomSelectReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomSelectReward) ProtoMessage() {} func (x *ReqPlayroomSelectReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[309] 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 ReqPlayroomSelectReward.ProtoReflect.Descriptor instead. func (*ReqPlayroomSelectReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{309} } func (x *ReqPlayroomSelectReward) GetId() int32 { if x != nil { return x.Id } return 0 } type ResPlayroomSelectReward 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 *ResPlayroomSelectReward) Reset() { *x = ResPlayroomSelectReward{} mi := &file_Gameapi_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomSelectReward) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomSelectReward) ProtoMessage() {} func (x *ResPlayroomSelectReward) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[310] 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 ResPlayroomSelectReward.ProtoReflect.Descriptor instead. func (*ResPlayroomSelectReward) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{310} } func (x *ResPlayroomSelectReward) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomSelectReward) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqPlayroomLose struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomLose) Reset() { *x = ReqPlayroomLose{} mi := &file_Gameapi_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomLose) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomLose) ProtoMessage() {} func (x *ReqPlayroomLose) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[311] 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 ReqPlayroomLose.ProtoReflect.Descriptor instead. func (*ReqPlayroomLose) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{311} } type ResPlayroomLose 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 *ResPlayroomLose) Reset() { *x = ResPlayroomLose{} mi := &file_Gameapi_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomLose) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomLose) ProtoMessage() {} func (x *ResPlayroomLose) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[312] 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 ResPlayroomLose.ProtoReflect.Descriptor instead. func (*ResPlayroomLose) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{312} } func (x *ResPlayroomLose) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomLose) GetMsg() string { if x != nil { return x.Msg } return "" } // 打工 type ReqPlayroomWork struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomWork) Reset() { *x = ReqPlayroomWork{} mi := &file_Gameapi_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomWork) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomWork) ProtoMessage() {} func (x *ReqPlayroomWork) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[313] 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 ReqPlayroomWork.ProtoReflect.Descriptor instead. func (*ReqPlayroomWork) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{313} } type ResPlayroomWork 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 *ResPlayroomWork) Reset() { *x = ResPlayroomWork{} mi := &file_Gameapi_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomWork) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomWork) ProtoMessage() {} func (x *ResPlayroomWork) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[314] 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 ResPlayroomWork.ProtoReflect.Descriptor instead. func (*ResPlayroomWork) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{314} } func (x *ResPlayroomWork) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomWork) GetMsg() string { if x != nil { return x.Msg } return "" } // 休息 type ReqPlayroomRest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomRest) Reset() { *x = ReqPlayroomRest{} mi := &file_Gameapi_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomRest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomRest) ProtoMessage() {} func (x *ReqPlayroomRest) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[315] 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 ReqPlayroomRest.ProtoReflect.Descriptor instead. func (*ReqPlayroomRest) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{315} } type ResPlayroomRest 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 *ResPlayroomRest) Reset() { *x = ResPlayroomRest{} mi := &file_Gameapi_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomRest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomRest) ProtoMessage() {} func (x *ResPlayroomRest) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[316] 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 ResPlayroomRest.ProtoReflect.Descriptor instead. func (*ResPlayroomRest) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{316} } func (x *ResPlayroomRest) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomRest) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqPlayroomDraw struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqPlayroomDraw) Reset() { *x = ReqPlayroomDraw{} mi := &file_Gameapi_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomDraw) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomDraw) ProtoMessage() {} func (x *ReqPlayroomDraw) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[317] 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 ReqPlayroomDraw.ProtoReflect.Descriptor instead. func (*ReqPlayroomDraw) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{317} } type ResPlayroomDraw 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"` Id int32 `protobuf:"varint,3,opt,name=Id,proto3" json:"Id,omitempty"` // 奖励Id } func (x *ResPlayroomDraw) Reset() { *x = ResPlayroomDraw{} mi := &file_Gameapi_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomDraw) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomDraw) ProtoMessage() {} func (x *ResPlayroomDraw) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[318] 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 ResPlayroomDraw.ProtoReflect.Descriptor instead. func (*ResPlayroomDraw) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{318} } func (x *ResPlayroomDraw) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomDraw) GetMsg() string { if x != nil { return x.Msg } return "" } func (x *ResPlayroomDraw) GetId() int32 { if x != nil { return x.Id } return 0 } type ReqPlayroomChip struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Num int32 `protobuf:"varint,1,opt,name=Num,proto3" json:"Num,omitempty"` // 要消除的层数 } func (x *ReqPlayroomChip) Reset() { *x = ReqPlayroomChip{} mi := &file_Gameapi_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomChip) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomChip) ProtoMessage() {} func (x *ReqPlayroomChip) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[319] 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 ReqPlayroomChip.ProtoReflect.Descriptor instead. func (*ReqPlayroomChip) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{319} } func (x *ReqPlayroomChip) GetNum() int32 { if x != nil { return x.Num } return 0 } type ResPlayroomChip 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 *ResPlayroomChip) Reset() { *x = ResPlayroomChip{} mi := &file_Gameapi_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomChip) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomChip) ProtoMessage() {} func (x *ResPlayroomChip) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[320] 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 ResPlayroomChip.ProtoReflect.Descriptor instead. func (*ResPlayroomChip) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{320} } func (x *ResPlayroomChip) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomChip) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqPlayroomBuyItem struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int32 `protobuf:"varint,1,opt,name=Id,proto3" json:"Id,omitempty"` // Mood Id } func (x *ReqPlayroomBuyItem) Reset() { *x = ReqPlayroomBuyItem{} mi := &file_Gameapi_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqPlayroomBuyItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqPlayroomBuyItem) ProtoMessage() {} func (x *ReqPlayroomBuyItem) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[321] 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 ReqPlayroomBuyItem.ProtoReflect.Descriptor instead. func (*ReqPlayroomBuyItem) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{321} } func (x *ReqPlayroomBuyItem) GetId() int32 { if x != nil { return x.Id } return 0 } type ResPlayroomBuyItem 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 *ResPlayroomBuyItem) Reset() { *x = ResPlayroomBuyItem{} mi := &file_Gameapi_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResPlayroomBuyItem) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResPlayroomBuyItem) ProtoMessage() {} func (x *ResPlayroomBuyItem) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[322] 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 ResPlayroomBuyItem.ProtoReflect.Descriptor instead. func (*ResPlayroomBuyItem) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{322} } func (x *ResPlayroomBuyItem) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResPlayroomBuyItem) GetMsg() string { if x != nil { return x.Msg } return "" } // #region 宠物宝藏 type ReqFriendTreasure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendTreasure) Reset() { *x = ReqFriendTreasure{} mi := &file_Gameapi_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendTreasure) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendTreasure) ProtoMessage() {} func (x *ReqFriendTreasure) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[323] 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 ReqFriendTreasure.ProtoReflect.Descriptor instead. func (*ReqFriendTreasure) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{323} } type ResFriendTreasure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Status int32 `protobuf:"varint,1,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未开始 1 进行中 2 已结束 Star int32 `protobuf:"varint,2,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 Shift int32 `protobuf:"varint,3,opt,name=Shift,proto3" json:"Shift,omitempty"` // 当前挡位 List []*TreasureInfo `protobuf:"bytes,4,rep,name=List,proto3" json:"List,omitempty"` // 列表 List2 []int32 `protobuf:"varint,5,rep,packed,name=List2,proto3" json:"List2,omitempty"` // } func (x *ResFriendTreasure) Reset() { *x = ResFriendTreasure{} mi := &file_Gameapi_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendTreasure) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendTreasure) ProtoMessage() {} func (x *ResFriendTreasure) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[324] 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 ResFriendTreasure.ProtoReflect.Descriptor instead. func (*ResFriendTreasure) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{324} } func (x *ResFriendTreasure) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *ResFriendTreasure) GetStar() int32 { if x != nil { return x.Star } return 0 } func (x *ResFriendTreasure) GetShift() int32 { if x != nil { return x.Shift } return 0 } func (x *ResFriendTreasure) GetList() []*TreasureInfo { if x != nil { return x.List } return nil } func (x *ResFriendTreasure) GetList2() []int32 { if x != nil { return x.List2 } return nil } type TreasureInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` // 位置 Type int32 `protobuf:"varint,2,opt,name=Type,proto3" json:"Type,omitempty"` // 类型 Face int32 `protobuf:"varint,3,opt,name=Face,proto3" json:"Face,omitempty"` // 头像 Avatar int32 `protobuf:"varint,4,opt,name=Avatar,proto3" json:"Avatar,omitempty"` // 头像框 Uid int64 `protobuf:"varint,5,opt,name=Uid,proto3" json:"Uid,omitempty"` // Uid Status int32 `protobuf:"varint,6,opt,name=Status,proto3" json:"Status,omitempty"` // 0 未翻 1 已翻 NickName string `protobuf:"bytes,7,opt,name=NickName,proto3" json:"NickName,omitempty"` // 昵称 } func (x *TreasureInfo) Reset() { *x = TreasureInfo{} mi := &file_Gameapi_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *TreasureInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*TreasureInfo) ProtoMessage() {} func (x *TreasureInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[325] 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 TreasureInfo.ProtoReflect.Descriptor instead. func (*TreasureInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{325} } func (x *TreasureInfo) GetPos() int32 { if x != nil { return x.Pos } return 0 } func (x *TreasureInfo) GetType() int32 { if x != nil { return x.Type } return 0 } func (x *TreasureInfo) GetFace() int32 { if x != nil { return x.Face } return 0 } func (x *TreasureInfo) GetAvatar() int32 { if x != nil { return x.Avatar } return 0 } func (x *TreasureInfo) GetUid() int64 { if x != nil { return x.Uid } return 0 } func (x *TreasureInfo) GetStatus() int32 { if x != nil { return x.Status } return 0 } func (x *TreasureInfo) GetNickName() string { if x != nil { return x.NickName } return "" } type ReqFriendTreasureStart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields List []*TreasureInfo `protobuf:"bytes,1,rep,name=List,proto3" json:"List,omitempty"` // 列表 List2 []int32 `protobuf:"varint,2,rep,packed,name=List2,proto3" json:"List2,omitempty"` } func (x *ReqFriendTreasureStart) Reset() { *x = ReqFriendTreasureStart{} mi := &file_Gameapi_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendTreasureStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendTreasureStart) ProtoMessage() {} func (x *ReqFriendTreasureStart) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[326] 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 ReqFriendTreasureStart.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureStart) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{326} } func (x *ReqFriendTreasureStart) GetList() []*TreasureInfo { if x != nil { return x.List } return nil } func (x *ReqFriendTreasureStart) GetList2() []int32 { if x != nil { return x.List2 } return nil } type ResFriendTreasureStart 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 *ResFriendTreasureStart) Reset() { *x = ResFriendTreasureStart{} mi := &file_Gameapi_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendTreasureStart) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendTreasureStart) ProtoMessage() {} func (x *ResFriendTreasureStart) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[327] 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 ResFriendTreasureStart.ProtoReflect.Descriptor instead. func (*ResFriendTreasureStart) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{327} } func (x *ResFriendTreasureStart) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResFriendTreasureStart) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqFriendTreasureEnd struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqFriendTreasureEnd) Reset() { *x = ReqFriendTreasureEnd{} mi := &file_Gameapi_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendTreasureEnd) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendTreasureEnd) ProtoMessage() {} func (x *ReqFriendTreasureEnd) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[328] 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 ReqFriendTreasureEnd.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureEnd) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{328} } type ResFriendTreasureEnd 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 *ResFriendTreasureEnd) Reset() { *x = ResFriendTreasureEnd{} mi := &file_Gameapi_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendTreasureEnd) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendTreasureEnd) ProtoMessage() {} func (x *ResFriendTreasureEnd) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[329] 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 ResFriendTreasureEnd.ProtoReflect.Descriptor instead. func (*ResFriendTreasureEnd) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{329} } func (x *ResFriendTreasureEnd) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResFriendTreasureEnd) GetMsg() string { if x != nil { return x.Msg } return "" } type ReqFriendTreasureFilp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Pos int32 `protobuf:"varint,1,opt,name=Pos,proto3" json:"Pos,omitempty"` } func (x *ReqFriendTreasureFilp) Reset() { *x = ReqFriendTreasureFilp{} mi := &file_Gameapi_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqFriendTreasureFilp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqFriendTreasureFilp) ProtoMessage() {} func (x *ReqFriendTreasureFilp) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[330] 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 ReqFriendTreasureFilp.ProtoReflect.Descriptor instead. func (*ReqFriendTreasureFilp) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{330} } func (x *ReqFriendTreasureFilp) GetPos() int32 { if x != nil { return x.Pos } return 0 } type ResFriendTreasureFilp 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 *ResFriendTreasureFilp) Reset() { *x = ResFriendTreasureFilp{} mi := &file_Gameapi_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendTreasureFilp) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendTreasureFilp) ProtoMessage() {} func (x *ResFriendTreasureFilp) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[331] 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 ResFriendTreasureFilp.ProtoReflect.Descriptor instead. func (*ResFriendTreasureFilp) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{331} } func (x *ResFriendTreasureFilp) GetCode() RES_CODE { if x != nil { return x.Code } return RES_CODE_FAIL } func (x *ResFriendTreasureFilp) GetMsg() string { if x != nil { return x.Msg } return "" } type ResFriendTreasureStar struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Star int32 `protobuf:"varint,1,opt,name=Star,proto3" json:"Star,omitempty"` // 星级 } func (x *ResFriendTreasureStar) Reset() { *x = ResFriendTreasureStar{} mi := &file_Gameapi_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ResFriendTreasureStar) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResFriendTreasureStar) ProtoMessage() {} func (x *ResFriendTreasureStar) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[332] 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 ResFriendTreasureStar.ProtoReflect.Descriptor instead. func (*ResFriendTreasureStar) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{332} } func (x *ResFriendTreasureStar) GetStar() int32 { if x != nil { return x.Star } return 0 } type ReqKafkaLog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Event string `protobuf:"bytes,1,opt,name=Event,proto3" json:"Event,omitempty"` Data string `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` } func (x *ReqKafkaLog) Reset() { *x = ReqKafkaLog{} mi := &file_Gameapi_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqKafkaLog) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqKafkaLog) ProtoMessage() {} func (x *ReqKafkaLog) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[333] 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 ReqKafkaLog.ProtoReflect.Descriptor instead. func (*ReqKafkaLog) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{333} } func (x *ReqKafkaLog) GetEvent() string { if x != nil { return x.Event } return "" } func (x *ReqKafkaLog) GetData() string { if x != nil { return x.Data } return "" } // -------------------后台管理------------------- type AdminReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *AdminReq) Reset() { *x = AdminReq{} mi := &file_Gameapi_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AdminReq) String() string { return protoimpl.X.MessageStringOf(x) } func (*AdminReq) ProtoMessage() {} func (x *AdminReq) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[334] 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 AdminReq.ProtoReflect.Descriptor instead. func (*AdminReq) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{334} } func (x *AdminReq) GetFunc() string { if x != nil { return x.Func } return "" } func (x *AdminReq) GetInfo() []byte { if x != nil { return x.Info } return nil } type AdminRes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Func string `protobuf:"bytes,1,opt,name=Func,proto3" json:"Func,omitempty"` Info []byte `protobuf:"bytes,2,opt,name=Info,proto3" json:"Info,omitempty"` } func (x *AdminRes) Reset() { *x = AdminRes{} mi := &file_Gameapi_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *AdminRes) String() string { return protoimpl.X.MessageStringOf(x) } func (*AdminRes) ProtoMessage() {} func (x *AdminRes) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[335] 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 AdminRes.ProtoReflect.Descriptor instead. func (*AdminRes) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{335} } func (x *AdminRes) GetFunc() string { if x != nil { return x.Func } return "" } func (x *AdminRes) GetInfo() []byte { if x != nil { return x.Info } return nil } type ReqAdminInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Uid int64 `protobuf:"varint,1,opt,name=Uid,proto3" json:"Uid,omitempty"` } func (x *ReqAdminInfo) Reset() { *x = ReqAdminInfo{} mi := &file_Gameapi_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqAdminInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqAdminInfo) ProtoMessage() {} func (x *ReqAdminInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[336] 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 ReqAdminInfo.ProtoReflect.Descriptor instead. func (*ReqAdminInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{336} } func (x *ReqAdminInfo) GetUid() int64 { if x != nil { return x.Uid } return 0 } type ReqServerInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ReqServerInfo) Reset() { *x = ReqServerInfo{} mi := &file_Gameapi_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ReqServerInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReqServerInfo) ProtoMessage() {} func (x *ReqServerInfo) ProtoReflect() protoreflect.Message { mi := &file_Gameapi_proto_msgTypes[337] 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 ReqServerInfo.ProtoReflect.Descriptor instead. func (*ReqServerInfo) Descriptor() ([]byte, []int) { return file_Gameapi_proto_rawDescGZIP(), []int{337} } var File_Gameapi_proto protoreflect.FileDescriptor var file_Gameapi_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x22, 0xb5, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x22, 0x2b, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x43, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x54, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4f, 0x6e, 0x6c, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x71, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4f, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x59, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x55, 0x6e, 0x42, 0x69, 0x6e, 0x64, 0x46, 0x61, 0x63, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x24, 0x0a, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x42, 0x69, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x79, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4e, 0x65, 0x77, 0x46, 0x42, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x79, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x63, 0x6b, 0x4f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb3, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x42, 0x0a, 0x14, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x45, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x75, 0x6e, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x60, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x34, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 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, 0x40, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x50, 0x77, 0x64, 0x22, 0x7c, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0x29, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xee, 0x05, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70, 0x61, 0x63, 0x6b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x6f, 0x6c, 0x69, 0x6e, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x72, 0x6f, 0x6c, 0x65, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x45, 0x6d, 0x69, 0x74, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x4e, 0x6f, 0x41, 0x64, 0x12, 0x2c, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x73, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x61, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0xe5, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x22, 0xbb, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x6d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x3e, 0x0a, 0x10, 0x4d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, 0x65, 0x6d, 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, 0x47, 0x0a, 0x17, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x75, 0x72, 0x43, 0x6e, 0x74, 0x22, 0x23, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x2d, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 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, 0x3f, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x64, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x64, 0x64, 0x43, 0x6e, 0x74, 0x22, 0x25, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0x2f, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xf3, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0xb6, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x66, 0x66, 0x12, 0x2e, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x52, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x74, 0x69, 0x72, 0x65, 0x45, 0x6d, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x48, 0x6f, 0x6e, 0x6f, 0x72, 0x22, 0x90, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x48, 0x41, 0x4e, 0x44, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x45, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x45, 0x6d, 0x69, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x41, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x4f, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0c, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x0c, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb7, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x42, 0x75, 0x66, 0x66, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xff, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb3, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4f, 0x6c, 0x64, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x77, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x8e, 0x01, 0x0a, 0x08, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x12, 0x3c, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x52, 0x0d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x75, 0x79, 0x43, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x46, 0x72, 0x65, 0x65, 0x43, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x50, 0x75, 0x74, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x42, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x42, 0x61, 0x67, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x54, 0x61, 0x6b, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x4f, 0x75, 0x74, 0x42, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x12, 0x26, 0x0a, 0x04, 0x63, 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, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xa2, 0x02, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x31, 0x0a, 0x19, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x22, 0xe5, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x72, 0x69, 0x65, 0x66, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x64, 0x77, 0x55, 0x69, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x50, 0x69, 0x63, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2f, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x22, 0x57, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x82, 0x01, 0x0a, 0x08, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x4d, 0x75, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, 0x74, 0x42, 0x75, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x75, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x41, 0x44, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9c, 0x02, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 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, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 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, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 0x22, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 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, 0x30, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x40, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 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, 0xb3, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 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, 0x27, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x6c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65, 0x6c, 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, 0x45, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3d, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x09, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x72, 0x65, 0x61, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 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, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 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, 0x3c, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x47, 0x6d, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x2c, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x08, 0x43, 0x61, 0x72, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x43, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x09, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x1a, 0x3a, 0x0a, 0x0c, 0x41, 0x6c, 0x6c, 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, 0x3b, 0x0a, 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x96, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x52, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x52, 0x65, 0x71, 0x55, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x05, 0x45, 0x78, 0x55, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x54, 0x0a, 0x18, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 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, 0x2f, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 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, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x7d, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x43, 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, 0x12, 0x1a, 0x0a, 0x08, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 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, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 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, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 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, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 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, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x47, 0x69, 0x76, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x53, 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, 0x3b, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x3f, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x26, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x41, 0x67, 0x72, 0x65, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x43, 0x61, 0x72, 0x64, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x22, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x22, 0x74, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x43, 0x61, 0x72, 0x64, 0x22, 0x38, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x47, 0x6f, 0x6c, 0x64, 0x43, 0x61, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6f, 0x75, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x69, 0x76, 0x65, 0x22, 0x20, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x64, 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, 0x85, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x52, 0x65, 0x77, 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, 0x22, 0x8e, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x6f, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 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, 0x12, 0x30, 0x0a, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x08, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2e, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x43, 0x61, 0x72, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x44, 0x61, 0x79, 0x45, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x45, 0x6e, 0x64, 0x1a, 0x52, 0x0a, 0x0f, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 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, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x51, 0x0a, 0x0e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x6d, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 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, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4e, 0x65, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x09, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x55, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x12, 0x33, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 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, 0x7d, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x22, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 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, 0x27, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 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, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x71, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x4a, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 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, 0x53, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2e, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x46, 0x61, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x08, 0x46, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x20, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x61, 0x63, 0x65, 0x22, 0x46, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x46, 0x61, 0x63, 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, 0x5b, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x65, 0x74, 0x49, 0x64, 0x22, 0x36, 0x0a, 0x0a, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x26, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x53, 0x65, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 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, 0xb9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0a, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x31, 0x18, 0x01, 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, 0x31, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x32, 0x18, 0x02, 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, 0x32, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x33, 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, 0x33, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x28, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x28, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x45, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xaa, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 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, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 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, 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, 0x14, 0x0a, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, 0x65, 0x64, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x57, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf5, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x41, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 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, 0x22, 0x25, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 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, 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, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x43, 0x68, 0x65, 0x73, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0x03, 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, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0xe4, 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, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x79, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x4d, 0x79, 0x53, 0x63, 0x6f, 0x72, 0x65, 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, 0xa0, 0x01, 0x0a, 0x08, 0x4d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0x34, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 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, 0x04, 0x49, 0x6e, 0x66, 0x6f, 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, 0x57, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0x5c, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0x59, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 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, 0xad, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 0x2e, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x6d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x3d, 0x0a, 0x0f, 0x4d, 0x43, 0x68, 0x65, 0x73, 0x73, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x4c, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x32, 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, 0x78, 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, 0x1c, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 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, 0x03, 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, 0x12, 0x41, 0x0a, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x1a, 0x3b, 0x0a, 0x0d, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 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, 0x03, 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, 0x03, 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, 0x03, 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, 0x22, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x32, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x39, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x32, 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, 0x0b, 0x0a, 0x09, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x8f, 0x02, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x6d, 0x12, 0x2e, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 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, 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, 0x8d, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x47, 0x65, 0x6d, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 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, 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, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 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, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 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, 0x73, 0x0a, 0x09, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x2e, 0x52, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x52, 0x65, 0x64, 0x1a, 0x36, 0x0a, 0x08, 0x52, 0x65, 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, 0x22, 0x30, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x63, 0x74, 0x52, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x52, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x52, 0x65, 0x64, 0x22, 0x3c, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x2a, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x73, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x2f, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 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, 0x79, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x32, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x1a, 0x37, 0x0a, 0x09, 0x49, 0x74, 0x65, 0x6d, 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, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x2e, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x08, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 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, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x12, 0x36, 0x0a, 0x03, 0x4d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, 0x65, 0x2e, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x03, 0x4d, 0x61, 0x70, 0x1a, 0x36, 0x0a, 0x08, 0x4d, 0x61, 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, 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, 0x4d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x54, 0x61, 0x6b, 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, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 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, 0x09, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1a, 0x0a, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x50, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x50, 0x61, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x47, 0x61, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x22, 0x50, 0x0a, 0x0c, 0x72, 0x61, 0x63, 0x65, 0x6f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x52, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x52, 0x61, 0x63, 0x65, 0x53, 0x74, 0x61, 0x72, 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, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x52, 0x61, 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, 0x0d, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x95, 0x06, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 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, 0x12, 0x32, 0x0a, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x3f, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x08, 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, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4a, 0x61, 0x63, 0x6b, 0x70, 0x6f, 0x74, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 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, 0x37, 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 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, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 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, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x72, 0x6f, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 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, 0x36, 0x0a, 0x12, 0x4e, 0x6f, 0x66, 0x69, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x4f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x52, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x58, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x18, 0x01, 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, 0x08, 0x4c, 0x6f, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x22, 0xb0, 0x02, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x41, 0x6c, 0x6c, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x3a, 0x0a, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x4d, 0x6f, 0x6f, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x4d, 0x6f, 0x6f, 0x64, 0x12, 0x4c, 0x0a, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4d, 0x6f, 0x6f, 0x64, 0x2e, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x1a, 0x37, 0x0a, 0x09, 0x4d, 0x6f, 0x6f, 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, 0x3d, 0x0a, 0x0f, 0x50, 0x68, 0x79, 0x73, 0x69, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 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, 0x74, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x22, 0x7c, 0x0a, 0x0c, 0x52, 0x6f, 0x6f, 0x6d, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 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, 0x1a, 0x0a, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x4c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0xd9, 0x04, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 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, 0x43, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x61, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x46, 0x6c, 0x69, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x66, 0x6c, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x68, 0x69, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x43, 0x68, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x50, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 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, 0x4c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 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, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x37, 0x0a, 0x09, 0x46, 0x6c, 0x69, 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, 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, 0x21, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 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, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 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, 0x25, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 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, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 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, 0x49, 0x74, 0x65, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, 0x0a, 0x13, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 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, 0x22, 0x4f, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 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, 0x99, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 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, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 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, 0x29, 0x0a, 0x17, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x17, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 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, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 0x65, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x6f, 0x73, 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, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x57, 0x6f, 0x72, 0x6b, 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, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 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, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x22, 0x5b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 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, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x4b, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 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, 0x24, 0x0a, 0x12, 0x52, 0x65, 0x71, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 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, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x53, 0x68, 0x69, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x53, 0x68, 0x69, 0x66, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, 0x05, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 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, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x16, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x74, 0x75, 0x74, 0x6f, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x4c, 0x69, 0x73, 0x74, 0x32, 0x22, 0x52, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 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, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, 0x22, 0x50, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 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, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x50, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x50, 0x6f, 0x73, 0x22, 0x51, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 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, 0x2b, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x53, 0x74, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x53, 0x74, 0x61, 0x72, 0x22, 0x37, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4b, 0x61, 0x66, 0x6b, 0x61, 0x4c, 0x6f, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x32, 0x0a, 0x08, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x46, 0x75, 0x6e, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x20, 0x0a, 0x0c, 0x52, 0x65, 0x71, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x55, 0x69, 0x64, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0xfa, 0x07, 0x0a, 0x0e, 0x49, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x4f, 0x50, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x12, 0x0c, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x65, 0x76, 0x55, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x43, 0x68, 0x65, 0x73, 0x73, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x65, 0x41, 0x64, 0x64, 0x10, 0x09, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x75, 0x79, 0x43, 0x68, 0x65, 0x73, 0x73, 0x42, 0x61, 0x67, 0x47, 0x72, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x68, 0x65, 0x73, 0x73, 0x45, 0x78, 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x78, 0x53, 0x74, 0x61, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0d, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0e, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x75, 0x69, 0x64, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x0f, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x10, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x57, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x11, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x75, 0x79, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x10, 0x12, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x65, 0x76, 0x65, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x13, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x14, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x61, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x72, 0x65, 0x65, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x18, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x68, 0x65, 0x73, 0x73, 0x53, 0x68, 0x6f, 0x70, 0x10, 0x1a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1b, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x69, 0x67, 0x67, 0x79, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1c, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1e, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x6d, 0x70, 0x73, 0x68, 0x69, 0x70, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x1f, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x10, 0x20, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x10, 0x21, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x6b, 0x65, 0x10, 0x22, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x23, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x24, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x25, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x63, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x26, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x10, 0x27, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x72, 0x61, 0x77, 0x10, 0x28, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x43, 0x68, 0x69, 0x70, 0x10, 0x29, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x46, 0x6c, 0x69, 0x70, 0x10, 0x2a, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x46, 0x69, 0x6c, 0x70, 0x10, 0x2b, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x64, 0x10, 0x2c, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x4d, 0x10, 0x2d, 0x12, 0x12, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x72, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x61, 0x72, 0x64, 0x48, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x2f, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x73, 0x74, 0x52, 0x61, 0x69, 0x6e, 0x10, 0x30, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x42, 0x79, 0x41, 0x44, 0x10, 0x31, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x65, 0x73, 0x74, 0x10, 0x32, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x79, 0x49, 0x74, 0x65, 0x6d, 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x72, 0x73, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0x34, 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 ( file_Gameapi_proto_rawDescOnce sync.Once file_Gameapi_proto_rawDescData = file_Gameapi_proto_rawDesc ) func file_Gameapi_proto_rawDescGZIP() []byte { file_Gameapi_proto_rawDescOnce.Do(func() { file_Gameapi_proto_rawDescData = protoimpl.X.CompressGZIP(file_Gameapi_proto_rawDescData) }) return file_Gameapi_proto_rawDescData } var file_Gameapi_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_Gameapi_proto_msgTypes = make([]protoimpl.MessageInfo, 386) var file_Gameapi_proto_goTypes = []any{ (ITEM_POP_LABEL)(0), // 0: tutorial.ITEM_POP_LABEL (HANDLE_TYPE)(0), // 1: tutorial.HANDLE_TYPE (RES_CODE)(0), // 2: tutorial.RES_CODE (ITEM_TYPE)(0), // 3: tutorial.ITEM_TYPE (*ClientReq)(nil), // 4: tutorial.ClientReq (*ReqOfflineReconnect)(nil), // 5: tutorial.ReqOfflineReconnect (*ResOfflineReconnect)(nil), // 6: tutorial.ResOfflineReconnect (*ReqBindFacebookAccount)(nil), // 7: tutorial.ReqBindFacebookAccount (*ResBindFacebookAccount)(nil), // 8: tutorial.ResBindFacebookAccount (*ReqOnlyBindFacebook)(nil), // 9: tutorial.ReqOnlyBindFacebook (*ResOnlyBindFacebook)(nil), // 10: tutorial.ResOnlyBindFacebook (*ReqUnBindFacebook)(nil), // 11: tutorial.ReqUnBindFacebook (*ResUnBindFacebook)(nil), // 12: tutorial.ResUnBindFacebook (*ReqSynGameData)(nil), // 13: tutorial.ReqSynGameData (*ResSynGameData)(nil), // 14: tutorial.ResSynGameData (*ForceKickOut)(nil), // 15: tutorial.ForceKickOut (*ResServerVersion)(nil), // 16: tutorial.ResServerVersion (*ResChessColorData)(nil), // 17: tutorial.ResChessColorData (*ClientRes)(nil), // 18: tutorial.ClientRes (*ReqRegisterAccount)(nil), // 19: tutorial.ReqRegisterAccount (*ResRegisterAccount)(nil), // 20: tutorial.ResRegisterAccount (*ReqLogin)(nil), // 21: tutorial.ReqLogin (*ResLogin)(nil), // 22: tutorial.ResLogin (*ReqPlayerBaseInfo)(nil), // 23: tutorial.ReqPlayerBaseInfo (*ResPlayerBaseInfo)(nil), // 24: tutorial.ResPlayerBaseInfo (*ReqPlayerAsset)(nil), // 25: tutorial.ReqPlayerAsset (*ResPlayerAsset)(nil), // 26: tutorial.ResPlayerAsset (*UpdateBaseItemInfo)(nil), // 27: tutorial.UpdateBaseItemInfo (*NotifyRenewBuyEnergyCnt)(nil), // 28: tutorial.NotifyRenewBuyEnergyCnt (*ReqRemoveAd)(nil), // 29: tutorial.ReqRemoveAd (*ResRemoveAd)(nil), // 30: tutorial.ResRemoveAd (*NotifyAddEnergy)(nil), // 31: tutorial.NotifyAddEnergy (*ReqServerTime)(nil), // 32: tutorial.ReqServerTime (*ResServerTime)(nil), // 33: tutorial.ResServerTime (*ReqPlayerChessData)(nil), // 34: tutorial.ReqPlayerChessData (*ResPlayerChessData)(nil), // 35: tutorial.ResPlayerChessData (*ResPlayerChessInfo)(nil), // 36: tutorial.ResPlayerChessInfo (*ChessHandle)(nil), // 37: tutorial.ChessHandle (*UpdatePlayerChessData)(nil), // 38: tutorial.UpdatePlayerChessData (*ResUpdatePlayerChessData)(nil), // 39: tutorial.ResUpdatePlayerChessData (*ReqSeparateChess)(nil), // 40: tutorial.ReqSeparateChess (*ResSeparateChess)(nil), // 41: tutorial.ResSeparateChess (*ReqGetChessFromBuff)(nil), // 42: tutorial.ReqGetChessFromBuff (*ResGetChessFromBuff)(nil), // 43: tutorial.ResGetChessFromBuff (*ReqChessEx)(nil), // 44: tutorial.ReqChessEx (*ResChessEx)(nil), // 45: tutorial.ResChessEx (*ReqSourceChest)(nil), // 46: tutorial.ReqSourceChest (*ResSourceChest)(nil), // 47: tutorial.ResSourceChest (*ReqPlayroomOutline)(nil), // 48: tutorial.ReqPlayroomOutline (*ResPlayroomOutline)(nil), // 49: tutorial.ResPlayroomOutline (*ChessBag)(nil), // 50: tutorial.ChessBag (*ChessBagGrid)(nil), // 51: tutorial.ChessBagGrid (*ReqPutChessInBag)(nil), // 52: tutorial.ReqPutChessInBag (*ResPutChessInBag)(nil), // 53: tutorial.ResPutChessInBag (*ReqTakeChessOutBag)(nil), // 54: tutorial.ReqTakeChessOutBag (*ResTakeChessOutBag)(nil), // 55: tutorial.ResTakeChessOutBag (*ReqBuyChessBagGrid)(nil), // 56: tutorial.ReqBuyChessBagGrid (*ResBuyChessBagGrid)(nil), // 57: tutorial.ResBuyChessBagGrid (*ReqPlayerProfileData)(nil), // 58: tutorial.ReqPlayerProfileData (*ResPlayerProfileData)(nil), // 59: tutorial.ResPlayerProfileData (*ReqPlayerBriefProfileData)(nil), // 60: tutorial.ReqPlayerBriefProfileData (*ResPlayerBriefProfileData)(nil), // 61: tutorial.ResPlayerBriefProfileData (*ReqSetEnergyMul)(nil), // 62: tutorial.ReqSetEnergyMul (*ResSetEnergyMul)(nil), // 63: tutorial.ResSetEnergyMul (*BaseInfo)(nil), // 64: tutorial.BaseInfo (*ReqUserInfo)(nil), // 65: tutorial.ReqUserInfo (*UserInfo)(nil), // 66: tutorial.UserInfo (*ReqSetName)(nil), // 67: tutorial.ReqSetName (*ResSetName)(nil), // 68: tutorial.ResSetName (*ReqSetPetName)(nil), // 69: tutorial.ReqSetPetName (*ResSetPetName)(nil), // 70: tutorial.ResSetPetName (*ReqBuyEnergy)(nil), // 71: tutorial.ReqBuyEnergy (*ResBuyEnergy)(nil), // 72: tutorial.ResBuyEnergy (*ReqGetEnergyByAD)(nil), // 73: tutorial.ReqGetEnergyByAD (*ResGetEnergyByAD)(nil), // 74: tutorial.ResGetEnergyByAD (*ReqGetHandbookReward)(nil), // 75: tutorial.ReqGetHandbookReward (*HandbookInfo)(nil), // 76: tutorial.HandbookInfo (*Handbook)(nil), // 77: tutorial.Handbook (*ResGetHandbookReward)(nil), // 78: tutorial.ResGetHandbookReward (*ReqRewardOrder)(nil), // 79: tutorial.ReqRewardOrder (*ResRewardOrder)(nil), // 80: tutorial.ResRewardOrder (*ReqDelOrder)(nil), // 81: tutorial.ReqDelOrder (*ResDelOrder)(nil), // 82: tutorial.ResDelOrder (*Order)(nil), // 83: tutorial.Order (*ResOrderList)(nil), // 84: tutorial.ResOrderList (*ResDecorateInfo)(nil), // 85: tutorial.ResDecorateInfo (*ReqDecorate)(nil), // 86: tutorial.ReqDecorate (*ResDecorate)(nil), // 87: tutorial.ResDecorate (*ReqDecorateAll)(nil), // 88: tutorial.ReqDecorateAll (*ResDecorateAll)(nil), // 89: tutorial.ResDecorateAll (*ReqGmCommand)(nil), // 90: tutorial.ReqGmCommand (*Card)(nil), // 91: tutorial.Card (*ReqCardInfo)(nil), // 92: tutorial.ReqCardInfo (*ResCardInfo)(nil), // 93: tutorial.ResCardInfo (*ResNotifyCardTimes)(nil), // 94: tutorial.ResNotifyCardTimes (*ReqCardSeasonFirstReward)(nil), // 95: tutorial.ReqCardSeasonFirstReward (*ResCardSeasonFirstReward)(nil), // 96: tutorial.ResCardSeasonFirstReward (*ReqCardHandbookReward)(nil), // 97: tutorial.ReqCardHandbookReward (*ResCardHandbookReward)(nil), // 98: tutorial.ResCardHandbookReward (*ReqMasterCard)(nil), // 99: tutorial.ReqMasterCard (*ResMasterCard)(nil), // 100: tutorial.ResMasterCard (*ReqCardCollectReward)(nil), // 101: tutorial.ReqCardCollectReward (*ResCardCollectReward)(nil), // 102: tutorial.ResCardCollectReward (*ReqExStarReward)(nil), // 103: tutorial.ReqExStarReward (*ResExStarReward)(nil), // 104: tutorial.ResExStarReward (*ReqAllCollectReward)(nil), // 105: tutorial.ReqAllCollectReward (*ResAllCollectReward)(nil), // 106: tutorial.ResAllCollectReward (*ReqCardGive)(nil), // 107: tutorial.ReqCardGive (*ResCardGive)(nil), // 108: tutorial.ResCardGive (*ReqAgreeCardGive)(nil), // 109: tutorial.ReqAgreeCardGive (*ResAgreeCardGive)(nil), // 110: tutorial.ResAgreeCardGive (*ReqRefuseCardGive)(nil), // 111: tutorial.ReqRefuseCardGive (*ResRefuseCardGive)(nil), // 112: tutorial.ResRefuseCardGive (*ReqCardSend)(nil), // 113: tutorial.ReqCardSend (*ResCardSend)(nil), // 114: tutorial.ResCardSend (*ReqCardExchange)(nil), // 115: tutorial.ReqCardExchange (*ResCardExchange)(nil), // 116: tutorial.ResCardExchange (*ReqSelectCardExchange)(nil), // 117: tutorial.ReqSelectCardExchange (*ResSelectCardExchange)(nil), // 118: tutorial.ResSelectCardExchange (*ReqAgreeCardExchange)(nil), // 119: tutorial.ReqAgreeCardExchange (*ResAgreeCardExchange)(nil), // 120: tutorial.ResAgreeCardExchange (*ReqRefuseCardSelect)(nil), // 121: tutorial.ReqRefuseCardSelect (*ResRefuseCardSelect)(nil), // 122: tutorial.ResRefuseCardSelect (*ReqRefuseCardExchange)(nil), // 123: tutorial.ReqRefuseCardExchange (*ResRefuseCardExchange)(nil), // 124: tutorial.ResRefuseCardExchange (*ReqGetFriendCard)(nil), // 125: tutorial.ReqGetFriendCard (*ResGetFriendCard)(nil), // 126: tutorial.ResGetFriendCard (*ReqGetGoldCard)(nil), // 127: tutorial.ReqGetGoldCard (*ResGetGoldCard)(nil), // 128: tutorial.ResGetGoldCard (*ReqGuideReward)(nil), // 129: tutorial.ReqGuideReward (*ResGuideReward)(nil), // 130: tutorial.ResGuideReward (*ResGuildInfo)(nil), // 131: tutorial.ResGuildInfo (*ResItemPop)(nil), // 132: tutorial.ResItemPop (*ItemInfo)(nil), // 133: tutorial.ItemInfo (*CardPack)(nil), // 134: tutorial.CardPack (*ResDailyTask)(nil), // 135: tutorial.ResDailyTask (*DailyWeek)(nil), // 136: tutorial.DailyWeek (*DailyTask)(nil), // 137: tutorial.DailyTask (*QuestProgress)(nil), // 138: tutorial.QuestProgress (*ReqGetDailyTaskReward)(nil), // 139: tutorial.ReqGetDailyTaskReward (*ResGetDailyTaskReward)(nil), // 140: tutorial.ResGetDailyTaskReward (*ReqGetDailyWeekReward)(nil), // 141: tutorial.ReqGetDailyWeekReward (*ResGetDailyWeekReward)(nil), // 142: tutorial.ResGetDailyWeekReward (*ReqDailyUnlock)(nil), // 143: tutorial.ReqDailyUnlock (*ResDailyUnlock)(nil), // 144: tutorial.ResDailyUnlock (*ResFaceInfo)(nil), // 145: tutorial.ResFaceInfo (*FaceInfo)(nil), // 146: tutorial.FaceInfo (*ReqSetFace)(nil), // 147: tutorial.ReqSetFace (*ResSetFace)(nil), // 148: tutorial.ResSetFace (*ResAvatarInfo)(nil), // 149: tutorial.ResAvatarInfo (*AvatarInfo)(nil), // 150: tutorial.AvatarInfo (*ReqSetAvatar)(nil), // 151: tutorial.ReqSetAvatar (*ResSetAvatar)(nil), // 152: tutorial.ResSetAvatar (*ResSevenLogin)(nil), // 153: tutorial.ResSevenLogin (*SevenLoginReward)(nil), // 154: tutorial.SevenLoginReward (*ReqGetSevenLoginReward)(nil), // 155: tutorial.ReqGetSevenLoginReward (*ResGetSevenLoginReward)(nil), // 156: tutorial.ResGetSevenLoginReward (*ReqGetMonthLoginReward)(nil), // 157: tutorial.ReqGetMonthLoginReward (*ResGetMonthLoginReward)(nil), // 158: tutorial.ResGetMonthLoginReward (*ResActivity)(nil), // 159: tutorial.ResActivity (*ActivityInfo)(nil), // 160: tutorial.ActivityInfo (*ReqLimitEvent)(nil), // 161: tutorial.ReqLimitEvent (*ResLimitEvent)(nil), // 162: tutorial.ResLimitEvent (*ResLimitEventProgress)(nil), // 163: tutorial.ResLimitEventProgress (*ReqLimitEventReward)(nil), // 164: tutorial.ReqLimitEventReward (*ResLimitEventReward)(nil), // 165: tutorial.ResLimitEventReward (*ReqSelectLimitEvent)(nil), // 166: tutorial.ReqSelectLimitEvent (*ResSelectLimitEvent)(nil), // 167: tutorial.ResSelectLimitEvent (*LimitEvent)(nil), // 168: tutorial.LimitEvent (*LimitEventNotify)(nil), // 169: tutorial.LimitEventNotify (*ReqLimitSenceReward)(nil), // 170: tutorial.ReqLimitSenceReward (*ResLimitSenceReward)(nil), // 171: tutorial.ResLimitSenceReward (*ResChessRainReward)(nil), // 172: tutorial.ResChessRainReward (*ReqFastProduceReward)(nil), // 173: tutorial.ReqFastProduceReward (*ResFastProduceReward)(nil), // 174: tutorial.ResFastProduceReward (*ReqSearchPlayer)(nil), // 175: tutorial.ReqSearchPlayer (*ResSearchPlayer)(nil), // 176: tutorial.ResSearchPlayer (*ResPlayerSimple)(nil), // 177: tutorial.ResPlayerSimple (*ResPlayerRank)(nil), // 178: tutorial.ResPlayerRank (*ResFriendLog)(nil), // 179: tutorial.ResFriendLog (*NotifyFriendLog)(nil), // 180: tutorial.NotifyFriendLog (*NotifyFriendCard)(nil), // 181: tutorial.NotifyFriendCard (*ResFriendCard)(nil), // 182: tutorial.ResFriendCard (*ReqKv)(nil), // 183: tutorial.ReqKv (*ResKv)(nil), // 184: tutorial.ResKv (*ReqFriendRecommend)(nil), // 185: tutorial.ReqFriendRecommend (*ResFriendRecommend)(nil), // 186: tutorial.ResFriendRecommend (*ReqFriendIgnore)(nil), // 187: tutorial.ReqFriendIgnore (*ResFriendIgnore)(nil), // 188: tutorial.ResFriendIgnore (*ReqFriendList)(nil), // 189: tutorial.ReqFriendList (*ResFriendList)(nil), // 190: tutorial.ResFriendList (*ReqFriendApply)(nil), // 191: tutorial.ReqFriendApply (*ResFriendApply)(nil), // 192: tutorial.ResFriendApply (*ResFriendApplyInfo)(nil), // 193: tutorial.ResFriendApplyInfo (*ReqFriendCardMsg)(nil), // 194: tutorial.ReqFriendCardMsg (*ResFriendCardMsg)(nil), // 195: tutorial.ResFriendCardMsg (*ReqFriendTimeLine)(nil), // 196: tutorial.ReqFriendTimeLine (*ResFriendTimeLine)(nil), // 197: tutorial.ResFriendTimeLine (*ResFriendApplyNotify)(nil), // 198: tutorial.ResFriendApplyNotify (*ReqApplyFriend)(nil), // 199: tutorial.ReqApplyFriend (*ResApplyFriend)(nil), // 200: tutorial.ResApplyFriend (*ReqAgreeFriend)(nil), // 201: tutorial.ReqAgreeFriend (*ResAgreeFriend)(nil), // 202: tutorial.ResAgreeFriend (*ReqRefuseFriend)(nil), // 203: tutorial.ReqRefuseFriend (*ResRefuseFriend)(nil), // 204: tutorial.ResRefuseFriend (*ReqDelFriend)(nil), // 205: tutorial.ReqDelFriend (*ResDelFriend)(nil), // 206: tutorial.ResDelFriend (*ReqRank)(nil), // 207: tutorial.ReqRank (*ResRank)(nil), // 208: tutorial.ResRank (*ReqMailList)(nil), // 209: tutorial.ReqMailList (*ResMailList)(nil), // 210: tutorial.ResMailList (*MailInfo)(nil), // 211: tutorial.MailInfo (*MailNotify)(nil), // 212: tutorial.MailNotify (*ReqReadMail)(nil), // 213: tutorial.ReqReadMail (*ResReadMail)(nil), // 214: tutorial.ResReadMail (*ReqGetMailReward)(nil), // 215: tutorial.ReqGetMailReward (*ResGetMailReward)(nil), // 216: tutorial.ResGetMailReward (*ReqDeleteMail)(nil), // 217: tutorial.ReqDeleteMail (*ResDeleteMail)(nil), // 218: tutorial.ResDeleteMail (*ResCharge)(nil), // 219: tutorial.ResCharge (*ResSpecialShop)(nil), // 220: tutorial.ResSpecialShop (*ResChessShop)(nil), // 221: tutorial.ResChessShop (*ReqFreeShop)(nil), // 222: tutorial.ReqFreeShop (*ResFreeShop)(nil), // 223: tutorial.ResFreeShop (*ReqBuyChessShop)(nil), // 224: tutorial.ReqBuyChessShop (*ResBuyChessShop)(nil), // 225: tutorial.ResBuyChessShop (*ReqBuyChessShop2)(nil), // 226: tutorial.ReqBuyChessShop2 (*ResBuyChessShop2)(nil), // 227: tutorial.ResBuyChessShop2 (*ReqRefreshChessShop)(nil), // 228: tutorial.ReqRefreshChessShop (*ResRefreshChessShop)(nil), // 229: tutorial.ResRefreshChessShop (*ReqEndless)(nil), // 230: tutorial.ReqEndless (*ResEndless)(nil), // 231: tutorial.ResEndless (*ResEndlessInfo)(nil), // 232: tutorial.ResEndlessInfo (*ReqEndlessReward)(nil), // 233: tutorial.ReqEndlessReward (*ResEndlessReward)(nil), // 234: tutorial.ResEndlessReward (*ResPiggyBank)(nil), // 235: tutorial.ResPiggyBank (*ReqPiggyBankReward)(nil), // 236: tutorial.ReqPiggyBankReward (*ResPiggyBankReward)(nil), // 237: tutorial.ResPiggyBankReward (*ReqCreateOrderSn)(nil), // 238: tutorial.ReqCreateOrderSn (*ResCreateOrderSn)(nil), // 239: tutorial.ResCreateOrderSn (*ReqShippingOrder)(nil), // 240: tutorial.ReqShippingOrder (*ResShippingOrder)(nil), // 241: tutorial.ResShippingOrder (*ReqChampship)(nil), // 242: tutorial.ReqChampship (*ResChampship)(nil), // 243: tutorial.ResChampship (*ReqChampshipReward)(nil), // 244: tutorial.ReqChampshipReward (*ResChampshipReward)(nil), // 245: tutorial.ResChampshipReward (*ReqChampshipRankReward)(nil), // 246: tutorial.ReqChampshipRankReward (*ResChampshipRankReward)(nil), // 247: tutorial.ResChampshipRankReward (*ReqChampshipRank)(nil), // 248: tutorial.ReqChampshipRank (*ResChampshipRank)(nil), // 249: tutorial.ResChampshipRank (*ReqChampshipPreRank)(nil), // 250: tutorial.ReqChampshipPreRank (*ResChampshipPreRank)(nil), // 251: tutorial.ResChampshipPreRank (*ResNotifyCard)(nil), // 252: tutorial.ResNotifyCard (*ReqSetFacebookUrl)(nil), // 253: tutorial.ReqSetFacebookUrl (*ResSetFacebookUrl)(nil), // 254: tutorial.ResSetFacebookUrl (*ReqInviteFriendData)(nil), // 255: tutorial.ReqInviteFriendData (*ResInviteFriendData)(nil), // 256: tutorial.ResInviteFriendData (*ReqSelfInvited)(nil), // 257: tutorial.ReqSelfInvited (*ResSelfInvited)(nil), // 258: tutorial.ResSelfInvited (*NotifyInvitedSuccess)(nil), // 259: tutorial.NotifyInvitedSuccess (*ReqGetInviteReward)(nil), // 260: tutorial.ReqGetInviteReward (*ResGetInviteReward)(nil), // 261: tutorial.ResGetInviteReward (*ReqAutoAddInviteFriend)(nil), // 262: tutorial.ReqAutoAddInviteFriend (*ResAutoAddInviteFriend)(nil), // 263: tutorial.ResAutoAddInviteFriend (*ReqAutoAddInviteFriend2)(nil), // 264: tutorial.ReqAutoAddInviteFriend2 (*ResAutoAddInviteFriend2)(nil), // 265: tutorial.ResAutoAddInviteFriend2 (*ReqMining)(nil), // 266: tutorial.ReqMining (*ResMining)(nil), // 267: tutorial.ResMining (*ReqMiningTake)(nil), // 268: tutorial.ReqMiningTake (*ResMiningTake)(nil), // 269: tutorial.ResMiningTake (*ReqMiningReward)(nil), // 270: tutorial.ReqMiningReward (*ResMiningReward)(nil), // 271: tutorial.ResMiningReward (*ResActRed)(nil), // 272: tutorial.ResActRed (*NotifyActRed)(nil), // 273: tutorial.NotifyActRed (*ActivityNotify)(nil), // 274: tutorial.ActivityNotify (*ResItem)(nil), // 275: tutorial.ResItem (*ItemNotify)(nil), // 276: tutorial.ItemNotify (*ReqGuessColor)(nil), // 277: tutorial.ReqGuessColor (*ResGuessColor)(nil), // 278: tutorial.ResGuessColor (*Opponent)(nil), // 279: tutorial.opponent (*ReqGuessColorTake)(nil), // 280: tutorial.ReqGuessColorTake (*ResGuessColorTake)(nil), // 281: tutorial.ResGuessColorTake (*ReqGuessColorReward)(nil), // 282: tutorial.ReqGuessColorReward (*ResGuessColorReward)(nil), // 283: tutorial.ResGuessColorReward (*ReqRace)(nil), // 284: tutorial.ReqRace (*ResRace)(nil), // 285: tutorial.ResRace (*Raceopponent)(nil), // 286: tutorial.raceopponent (*ReqRaceStart)(nil), // 287: tutorial.ReqRaceStart (*ResRaceStart)(nil), // 288: tutorial.ResRaceStart (*ReqRaceReward)(nil), // 289: tutorial.ReqRaceReward (*ResRaceReward)(nil), // 290: tutorial.ResRaceReward (*ReqPlayroom)(nil), // 291: tutorial.ReqPlayroom (*ResPlayroom)(nil), // 292: tutorial.ResPlayroom (*ReqPlayroomWrokOutline)(nil), // 293: tutorial.ReqPlayroomWrokOutline (*ResPlayroomWrokOutline)(nil), // 294: tutorial.ResPlayroomWrokOutline (*NofiPlayroomStatus)(nil), // 295: tutorial.NofiPlayroomStatus (*NotifyPlayroomWork)(nil), // 296: tutorial.NotifyPlayroomWork (*NotifyPlayroomLose)(nil), // 297: tutorial.NotifyPlayroomLose (*NotifyPlayroomMood)(nil), // 298: tutorial.NotifyPlayroomMood (*FriendRoom)(nil), // 299: tutorial.FriendRoom (*RoomOpponent)(nil), // 300: tutorial.RoomOpponent (*ReqPlayroomInfo)(nil), // 301: tutorial.ReqPlayroomInfo (*ResPlayroomInfo)(nil), // 302: tutorial.ResPlayroomInfo (*ReqPlayroomFlip)(nil), // 303: tutorial.ReqPlayroomFlip (*ResPlayroomFlip)(nil), // 304: tutorial.ResPlayroomFlip (*ReqPlayroomFlipReward)(nil), // 305: tutorial.ReqPlayroomFlipReward (*ResPlayroomFlipReward)(nil), // 306: tutorial.ResPlayroomFlipReward (*ReqPlayroomGame)(nil), // 307: tutorial.ReqPlayroomGame (*ResPlayroomGame)(nil), // 308: tutorial.ResPlayroomGame (*ReqPlayroomInteract)(nil), // 309: tutorial.ReqPlayroomInteract (*ResPlayroomInteract)(nil), // 310: tutorial.ResPlayroomInteract (*ReqPlayroomSetRoom)(nil), // 311: tutorial.ReqPlayroomSetRoom (*ResPlayroomSetRoom)(nil), // 312: tutorial.ResPlayroomSetRoom (*ReqPlayroomSelectReward)(nil), // 313: tutorial.ReqPlayroomSelectReward (*ResPlayroomSelectReward)(nil), // 314: tutorial.ResPlayroomSelectReward (*ReqPlayroomLose)(nil), // 315: tutorial.ReqPlayroomLose (*ResPlayroomLose)(nil), // 316: tutorial.ResPlayroomLose (*ReqPlayroomWork)(nil), // 317: tutorial.ReqPlayroomWork (*ResPlayroomWork)(nil), // 318: tutorial.ResPlayroomWork (*ReqPlayroomRest)(nil), // 319: tutorial.ReqPlayroomRest (*ResPlayroomRest)(nil), // 320: tutorial.ResPlayroomRest (*ReqPlayroomDraw)(nil), // 321: tutorial.ReqPlayroomDraw (*ResPlayroomDraw)(nil), // 322: tutorial.ResPlayroomDraw (*ReqPlayroomChip)(nil), // 323: tutorial.ReqPlayroomChip (*ResPlayroomChip)(nil), // 324: tutorial.ResPlayroomChip (*ReqPlayroomBuyItem)(nil), // 325: tutorial.ReqPlayroomBuyItem (*ResPlayroomBuyItem)(nil), // 326: tutorial.ResPlayroomBuyItem (*ReqFriendTreasure)(nil), // 327: tutorial.ReqFriendTreasure (*ResFriendTreasure)(nil), // 328: tutorial.ResFriendTreasure (*TreasureInfo)(nil), // 329: tutorial.TreasureInfo (*ReqFriendTreasureStart)(nil), // 330: tutorial.ReqFriendTreasureStart (*ResFriendTreasureStart)(nil), // 331: tutorial.ResFriendTreasureStart (*ReqFriendTreasureEnd)(nil), // 332: tutorial.ReqFriendTreasureEnd (*ResFriendTreasureEnd)(nil), // 333: tutorial.ResFriendTreasureEnd (*ReqFriendTreasureFilp)(nil), // 334: tutorial.ReqFriendTreasureFilp (*ResFriendTreasureFilp)(nil), // 335: tutorial.ResFriendTreasureFilp (*ResFriendTreasureStar)(nil), // 336: tutorial.ResFriendTreasureStar (*ReqKafkaLog)(nil), // 337: tutorial.ReqKafkaLog (*AdminReq)(nil), // 338: tutorial.AdminReq (*AdminRes)(nil), // 339: tutorial.AdminRes (*ReqAdminInfo)(nil), // 340: tutorial.ReqAdminInfo (*ReqServerInfo)(nil), // 341: tutorial.ReqServerInfo nil, // 342: tutorial.ResChessColorData.MChessColorDataEntry nil, // 343: tutorial.UpdateBaseItemInfo.MUpdateItemEntry nil, // 344: tutorial.ResPlayerChessData.MChessDataEntry nil, // 345: tutorial.UpdatePlayerChessData.MChessDataEntry nil, // 346: tutorial.ReqSeparateChess.MChessDataEntry nil, // 347: tutorial.ReqGetChessFromBuff.MChessDataEntry nil, // 348: tutorial.ReqChessEx.MChessDataEntry nil, // 349: tutorial.ReqSourceChest.MChessDataEntry nil, // 350: tutorial.ReqPlayroomOutline.MChessDataEntry nil, // 351: tutorial.ReqPutChessInBag.MChessDataEntry nil, // 352: tutorial.ReqTakeChessOutBag.MChessDataEntry nil, // 353: tutorial.ReqRewardOrder.MChessDataEntry nil, // 354: tutorial.ResCardInfo.AllCardEntry nil, // 355: tutorial.ResCardInfo.HandbookEntry nil, // 356: tutorial.ResGuildInfo.RewardEntry nil, // 357: tutorial.ResDailyTask.WeekRewardEntry nil, // 358: tutorial.ResDailyTask.DailyTaskEntry nil, // 359: tutorial.ResLimitEvent.LimitEventListEntry nil, // 360: tutorial.ResLimitEventProgress.ProgressRewardEntry nil, // 361: tutorial.ResKv.KvEntry nil, // 362: tutorial.ResRank.RankListEntry nil, // 363: tutorial.ResMailList.MailListEntry nil, // 364: tutorial.ResCharge.SpecialShopEntry nil, // 365: tutorial.ResCharge.ChessShopEntry nil, // 366: tutorial.ResCharge.GiftEntry nil, // 367: tutorial.ReqBuyChessShop2.MChessDataEntry nil, // 368: tutorial.ResEndless.EndlessListEntry nil, // 369: tutorial.ResChampshipRank.RankListEntry nil, // 370: tutorial.ResChampshipPreRank.RankListEntry nil, // 371: tutorial.ResNotifyCard.CardEntry nil, // 372: tutorial.ResNotifyCard.MasterEntry nil, // 373: tutorial.ResNotifyCard.HandbookEntry nil, // 374: tutorial.ResMining.MapEntry nil, // 375: tutorial.ReqMiningTake.MapEntry nil, // 376: tutorial.ResActRed.RedEntry nil, // 377: tutorial.ResItem.ItemEntry nil, // 378: tutorial.ItemNotify.ItemEntry nil, // 379: tutorial.ReqGuessColorTake.MapEntry nil, // 380: tutorial.ResPlayroom.PlayroomEntry nil, // 381: tutorial.ResPlayroom.MoodEntry nil, // 382: tutorial.ResPlayroom.PhysiologyEntry nil, // 383: tutorial.NotifyPlayroomMood.MoodEntry nil, // 384: tutorial.NotifyPlayroomMood.PhysiologyEntry nil, // 385: tutorial.ResPlayroomInfo.PlayroomEntry nil, // 386: tutorial.ResPlayroomInfo.ItemsEntry nil, // 387: tutorial.ResPlayroomInfo.FlipEntry nil, // 388: tutorial.ResPlayroomGame.ItemsEntry nil, // 389: tutorial.ReqPlayroomSetRoom.PlayroomEntry } var file_Gameapi_proto_depIdxs = []int32{ 342, // 0: tutorial.ResChessColorData.mChessColorData:type_name -> tutorial.ResChessColorData.MChessColorDataEntry 343, // 1: tutorial.UpdateBaseItemInfo.mUpdateItem:type_name -> tutorial.UpdateBaseItemInfo.MUpdateItemEntry 344, // 2: tutorial.ResPlayerChessData.mChessData:type_name -> tutorial.ResPlayerChessData.MChessDataEntry 50, // 3: tutorial.ResPlayerChessInfo.ChessBag:type_name -> tutorial.ChessBag 1, // 4: tutorial.ChessHandle.type:type_name -> tutorial.HANDLE_TYPE 345, // 5: tutorial.UpdatePlayerChessData.mChessData:type_name -> tutorial.UpdatePlayerChessData.MChessDataEntry 37, // 6: tutorial.UpdatePlayerChessData.mChessHandle:type_name -> tutorial.ChessHandle 2, // 7: tutorial.ResUpdatePlayerChessData.code:type_name -> tutorial.RES_CODE 346, // 8: tutorial.ReqSeparateChess.mChessData:type_name -> tutorial.ReqSeparateChess.MChessDataEntry 2, // 9: tutorial.ResSeparateChess.code:type_name -> tutorial.RES_CODE 347, // 10: tutorial.ReqGetChessFromBuff.mChessData:type_name -> tutorial.ReqGetChessFromBuff.MChessDataEntry 2, // 11: tutorial.ResGetChessFromBuff.code:type_name -> tutorial.RES_CODE 348, // 12: tutorial.ReqChessEx.mChessData:type_name -> tutorial.ReqChessEx.MChessDataEntry 2, // 13: tutorial.ResChessEx.code:type_name -> tutorial.RES_CODE 349, // 14: tutorial.ReqSourceChest.mChessData:type_name -> tutorial.ReqSourceChest.MChessDataEntry 2, // 15: tutorial.ResSourceChest.code:type_name -> tutorial.RES_CODE 350, // 16: tutorial.ReqPlayroomOutline.mChessData:type_name -> tutorial.ReqPlayroomOutline.MChessDataEntry 2, // 17: tutorial.ResPlayroomOutline.code:type_name -> tutorial.RES_CODE 51, // 18: tutorial.ChessBag.ChessBagGrids:type_name -> tutorial.ChessBagGrid 351, // 19: tutorial.ReqPutChessInBag.mChessData:type_name -> tutorial.ReqPutChessInBag.MChessDataEntry 2, // 20: tutorial.ResPutChessInBag.code:type_name -> tutorial.RES_CODE 352, // 21: tutorial.ReqTakeChessOutBag.mChessData:type_name -> tutorial.ReqTakeChessOutBag.MChessDataEntry 2, // 22: tutorial.ResTakeChessOutBag.code:type_name -> tutorial.RES_CODE 2, // 23: tutorial.ResBuyChessBagGrid.code:type_name -> tutorial.RES_CODE 2, // 24: tutorial.ResSetEnergyMul.ResultCode:type_name -> tutorial.RES_CODE 150, // 25: tutorial.UserInfo.AvatarList:type_name -> tutorial.AvatarInfo 146, // 26: tutorial.UserInfo.FaceList:type_name -> tutorial.FaceInfo 2, // 27: tutorial.ResSetName.ResultCode:type_name -> tutorial.RES_CODE 2, // 28: tutorial.ResSetPetName.ResultCode:type_name -> tutorial.RES_CODE 2, // 29: tutorial.ResBuyEnergy.Code:type_name -> tutorial.RES_CODE 2, // 30: tutorial.ResGetEnergyByAD.Code:type_name -> tutorial.RES_CODE 76, // 31: tutorial.Handbook.Handbooks:type_name -> tutorial.HandbookInfo 2, // 32: tutorial.ResGetHandbookReward.Code:type_name -> tutorial.RES_CODE 353, // 33: tutorial.ReqRewardOrder.mChessData:type_name -> tutorial.ReqRewardOrder.MChessDataEntry 2, // 34: tutorial.ResRewardOrder.Code:type_name -> tutorial.RES_CODE 2, // 35: tutorial.ResDelOrder.Code:type_name -> tutorial.RES_CODE 83, // 36: tutorial.ResOrderList.OrderList:type_name -> tutorial.Order 2, // 37: tutorial.ResDecorate.Code:type_name -> tutorial.RES_CODE 2, // 38: tutorial.ResDecorateAll.Code:type_name -> tutorial.RES_CODE 91, // 39: tutorial.ResCardInfo.CardList:type_name -> tutorial.Card 354, // 40: tutorial.ResCardInfo.AllCard:type_name -> tutorial.ResCardInfo.AllCardEntry 355, // 41: tutorial.ResCardInfo.Handbook:type_name -> tutorial.ResCardInfo.HandbookEntry 2, // 42: tutorial.ResCardSeasonFirstReward.Code:type_name -> tutorial.RES_CODE 2, // 43: tutorial.ResCardHandbookReward.Code:type_name -> tutorial.RES_CODE 2, // 44: tutorial.ResMasterCard.Code:type_name -> tutorial.RES_CODE 2, // 45: tutorial.ResCardCollectReward.Code:type_name -> tutorial.RES_CODE 2, // 46: tutorial.ResExStarReward.Code:type_name -> tutorial.RES_CODE 2, // 47: tutorial.ResAllCollectReward.Code:type_name -> tutorial.RES_CODE 2, // 48: tutorial.ResCardGive.Code:type_name -> tutorial.RES_CODE 2, // 49: tutorial.ResAgreeCardGive.Code:type_name -> tutorial.RES_CODE 2, // 50: tutorial.ResRefuseCardGive.Code:type_name -> tutorial.RES_CODE 2, // 51: tutorial.ResCardSend.Code:type_name -> tutorial.RES_CODE 2, // 52: tutorial.ResCardExchange.Code:type_name -> tutorial.RES_CODE 2, // 53: tutorial.ResSelectCardExchange.Code:type_name -> tutorial.RES_CODE 2, // 54: tutorial.ResAgreeCardExchange.Code:type_name -> tutorial.RES_CODE 2, // 55: tutorial.ResRefuseCardSelect.Code:type_name -> tutorial.RES_CODE 2, // 56: tutorial.ResRefuseCardExchange.Code:type_name -> tutorial.RES_CODE 2, // 57: tutorial.ResGetFriendCard.Code:type_name -> tutorial.RES_CODE 2, // 58: tutorial.ResGuideReward.Code:type_name -> tutorial.RES_CODE 356, // 59: tutorial.ResGuildInfo.Reward:type_name -> tutorial.ResGuildInfo.RewardEntry 133, // 60: tutorial.ResItemPop.Items:type_name -> tutorial.ItemInfo 134, // 61: tutorial.ResItemPop.CardPacks:type_name -> tutorial.CardPack 357, // 62: tutorial.ResDailyTask.WeekReward:type_name -> tutorial.ResDailyTask.WeekRewardEntry 358, // 63: tutorial.ResDailyTask.DailyTask:type_name -> tutorial.ResDailyTask.DailyTaskEntry 133, // 64: tutorial.DailyWeek.Items:type_name -> tutorial.ItemInfo 138, // 65: tutorial.DailyTask.Progress:type_name -> tutorial.QuestProgress 133, // 66: tutorial.DailyTask.Items:type_name -> tutorial.ItemInfo 2, // 67: tutorial.ResGetDailyTaskReward.Code:type_name -> tutorial.RES_CODE 2, // 68: tutorial.ResGetDailyWeekReward.Code:type_name -> tutorial.RES_CODE 2, // 69: tutorial.ResDailyUnlock.Code:type_name -> tutorial.RES_CODE 146, // 70: tutorial.ResFaceInfo.FaceList:type_name -> tutorial.FaceInfo 2, // 71: tutorial.ResSetFace.Code:type_name -> tutorial.RES_CODE 150, // 72: tutorial.ResAvatarInfo.AvatarList:type_name -> tutorial.AvatarInfo 2, // 73: tutorial.ResSetAvatar.Code:type_name -> tutorial.RES_CODE 154, // 74: tutorial.ResSevenLogin.WeekReward:type_name -> tutorial.SevenLoginReward 154, // 75: tutorial.ResSevenLogin.MonthReward:type_name -> tutorial.SevenLoginReward 133, // 76: tutorial.SevenLoginReward.Item1:type_name -> tutorial.ItemInfo 133, // 77: tutorial.SevenLoginReward.Item2:type_name -> tutorial.ItemInfo 133, // 78: tutorial.SevenLoginReward.Item3:type_name -> tutorial.ItemInfo 2, // 79: tutorial.ResGetSevenLoginReward.Code:type_name -> tutorial.RES_CODE 2, // 80: tutorial.ResGetMonthLoginReward.Code:type_name -> tutorial.RES_CODE 160, // 81: tutorial.ResActivity.ActiveList:type_name -> tutorial.ActivityInfo 359, // 82: tutorial.ResLimitEvent.LimitEventList:type_name -> tutorial.ResLimitEvent.LimitEventListEntry 360, // 83: tutorial.ResLimitEventProgress.ProgressReward:type_name -> tutorial.ResLimitEventProgress.ProgressRewardEntry 2, // 84: tutorial.ResLimitEventReward.Code:type_name -> tutorial.RES_CODE 2, // 85: tutorial.ResSelectLimitEvent.Code:type_name -> tutorial.RES_CODE 2, // 86: tutorial.ResLimitSenceReward.Code:type_name -> tutorial.RES_CODE 133, // 87: tutorial.ResChessRainReward.Items:type_name -> tutorial.ItemInfo 2, // 88: tutorial.ResFastProduceReward.Code:type_name -> tutorial.RES_CODE 177, // 89: tutorial.ResSearchPlayer.List:type_name -> tutorial.ResPlayerSimple 177, // 90: tutorial.ResFriendLog.Player:type_name -> tutorial.ResPlayerSimple 179, // 91: tutorial.NotifyFriendLog.info:type_name -> tutorial.ResFriendLog 182, // 92: tutorial.NotifyFriendCard.Info:type_name -> tutorial.ResFriendCard 361, // 93: tutorial.ResKv.kv:type_name -> tutorial.ResKv.KvEntry 177, // 94: tutorial.ResFriendRecommend.List:type_name -> tutorial.ResPlayerSimple 2, // 95: tutorial.ResFriendIgnore.Code:type_name -> tutorial.RES_CODE 177, // 96: tutorial.ResFriendList.FriendList:type_name -> tutorial.ResPlayerSimple 193, // 97: tutorial.ResFriendApply.ApplyList:type_name -> tutorial.ResFriendApplyInfo 177, // 98: tutorial.ResFriendApplyInfo.Player:type_name -> tutorial.ResPlayerSimple 182, // 99: tutorial.ResFriendCardMsg.MsgList:type_name -> tutorial.ResFriendCard 179, // 100: tutorial.ResFriendTimeLine.Log:type_name -> tutorial.ResFriendLog 177, // 101: tutorial.ResFriendApplyNotify.Player:type_name -> tutorial.ResPlayerSimple 2, // 102: tutorial.ResApplyFriend.Code:type_name -> tutorial.RES_CODE 2, // 103: tutorial.ResAgreeFriend.Code:type_name -> tutorial.RES_CODE 177, // 104: tutorial.ResAgreeFriend.Player:type_name -> tutorial.ResPlayerSimple 2, // 105: tutorial.ResRefuseFriend.Code:type_name -> tutorial.RES_CODE 2, // 106: tutorial.ResDelFriend.Code:type_name -> tutorial.RES_CODE 362, // 107: tutorial.ResRank.RankList:type_name -> tutorial.ResRank.RankListEntry 363, // 108: tutorial.ResMailList.MailList:type_name -> tutorial.ResMailList.MailListEntry 133, // 109: tutorial.MailInfo.Items:type_name -> tutorial.ItemInfo 211, // 110: tutorial.MailNotify.Info:type_name -> tutorial.MailInfo 2, // 111: tutorial.ResReadMail.Code:type_name -> tutorial.RES_CODE 2, // 112: tutorial.ResGetMailReward.Code:type_name -> tutorial.RES_CODE 2, // 113: tutorial.ResDeleteMail.Code:type_name -> tutorial.RES_CODE 364, // 114: tutorial.ResCharge.SpecialShop:type_name -> tutorial.ResCharge.SpecialShopEntry 365, // 115: tutorial.ResCharge.ChessShop:type_name -> tutorial.ResCharge.ChessShopEntry 366, // 116: tutorial.ResCharge.Gift:type_name -> tutorial.ResCharge.GiftEntry 2, // 117: tutorial.ResFreeShop.Code:type_name -> tutorial.RES_CODE 2, // 118: tutorial.ResBuyChessShop.Code:type_name -> tutorial.RES_CODE 367, // 119: tutorial.ReqBuyChessShop2.mChessData:type_name -> tutorial.ReqBuyChessShop2.MChessDataEntry 2, // 120: tutorial.ResBuyChessShop2.Code:type_name -> tutorial.RES_CODE 2, // 121: tutorial.ResRefreshChessShop.Code:type_name -> tutorial.RES_CODE 368, // 122: tutorial.ResEndless.EndlessList:type_name -> tutorial.ResEndless.EndlessListEntry 133, // 123: tutorial.ResEndlessInfo.Items:type_name -> tutorial.ItemInfo 2, // 124: tutorial.ResEndlessReward.Code:type_name -> tutorial.RES_CODE 2, // 125: tutorial.ResPiggyBankReward.Code:type_name -> tutorial.RES_CODE 2, // 126: tutorial.ResShippingOrder.Code:type_name -> tutorial.RES_CODE 2, // 127: tutorial.ResChampshipReward.Code:type_name -> tutorial.RES_CODE 2, // 128: tutorial.ResChampshipRankReward.Code:type_name -> tutorial.RES_CODE 369, // 129: tutorial.ResChampshipRank.RankList:type_name -> tutorial.ResChampshipRank.RankListEntry 370, // 130: tutorial.ResChampshipPreRank.RankList:type_name -> tutorial.ResChampshipPreRank.RankListEntry 371, // 131: tutorial.ResNotifyCard.Card:type_name -> tutorial.ResNotifyCard.CardEntry 372, // 132: tutorial.ResNotifyCard.Master:type_name -> tutorial.ResNotifyCard.MasterEntry 373, // 133: tutorial.ResNotifyCard.Handbook:type_name -> tutorial.ResNotifyCard.HandbookEntry 2, // 134: tutorial.ResSetFacebookUrl.Code:type_name -> tutorial.RES_CODE 374, // 135: tutorial.ResMining.Map:type_name -> tutorial.ResMining.MapEntry 375, // 136: tutorial.ReqMiningTake.Map:type_name -> tutorial.ReqMiningTake.MapEntry 2, // 137: tutorial.ResMiningTake.Code:type_name -> tutorial.RES_CODE 2, // 138: tutorial.ResMiningReward.Code:type_name -> tutorial.RES_CODE 376, // 139: tutorial.ResActRed.Red:type_name -> tutorial.ResActRed.RedEntry 160, // 140: tutorial.ActivityNotify.Info:type_name -> tutorial.ActivityInfo 377, // 141: tutorial.ResItem.Item:type_name -> tutorial.ResItem.ItemEntry 378, // 142: tutorial.ItemNotify.Item:type_name -> tutorial.ItemNotify.ItemEntry 279, // 143: tutorial.ResGuessColor.Opponent:type_name -> tutorial.opponent 379, // 144: tutorial.ReqGuessColorTake.Map:type_name -> tutorial.ReqGuessColorTake.MapEntry 2, // 145: tutorial.ResGuessColorTake.Code:type_name -> tutorial.RES_CODE 2, // 146: tutorial.ResGuessColorReward.Code:type_name -> tutorial.RES_CODE 286, // 147: tutorial.ResRace.Opponent:type_name -> tutorial.raceopponent 2, // 148: tutorial.ResRaceStart.Code:type_name -> tutorial.RES_CODE 2, // 149: tutorial.ResRaceReward.Code:type_name -> tutorial.RES_CODE 133, // 150: tutorial.ResPlayroom.Items:type_name -> tutorial.ItemInfo 300, // 151: tutorial.ResPlayroom.Opponent:type_name -> tutorial.RoomOpponent 299, // 152: tutorial.ResPlayroom.Friend:type_name -> tutorial.FriendRoom 380, // 153: tutorial.ResPlayroom.Playroom:type_name -> tutorial.ResPlayroom.PlayroomEntry 381, // 154: tutorial.ResPlayroom.Mood:type_name -> tutorial.ResPlayroom.MoodEntry 133, // 155: tutorial.ResPlayroom.LoseItem:type_name -> tutorial.ItemInfo 382, // 156: tutorial.ResPlayroom.Physiology:type_name -> tutorial.ResPlayroom.PhysiologyEntry 2, // 157: tutorial.ResPlayroomWrokOutline.Code:type_name -> tutorial.RES_CODE 133, // 158: tutorial.NotifyPlayroomLose.LoseItem:type_name -> tutorial.ItemInfo 383, // 159: tutorial.NotifyPlayroomMood.Mood:type_name -> tutorial.NotifyPlayroomMood.MoodEntry 384, // 160: tutorial.NotifyPlayroomMood.Physiology:type_name -> tutorial.NotifyPlayroomMood.PhysiologyEntry 385, // 161: tutorial.ResPlayroomInfo.Playroom:type_name -> tutorial.ResPlayroomInfo.PlayroomEntry 386, // 162: tutorial.ResPlayroomInfo.Items:type_name -> tutorial.ResPlayroomInfo.ItemsEntry 387, // 163: tutorial.ResPlayroomInfo.flip:type_name -> tutorial.ResPlayroomInfo.FlipEntry 2, // 164: tutorial.ResPlayroomFlip.Code:type_name -> tutorial.RES_CODE 2, // 165: tutorial.ResPlayroomFlipReward.Code:type_name -> tutorial.RES_CODE 2, // 166: tutorial.ResPlayroomGame.Code:type_name -> tutorial.RES_CODE 388, // 167: tutorial.ResPlayroomGame.Items:type_name -> tutorial.ResPlayroomGame.ItemsEntry 2, // 168: tutorial.ResPlayroomInteract.Code:type_name -> tutorial.RES_CODE 389, // 169: tutorial.ReqPlayroomSetRoom.Playroom:type_name -> tutorial.ReqPlayroomSetRoom.PlayroomEntry 2, // 170: tutorial.ResPlayroomSetRoom.Code:type_name -> tutorial.RES_CODE 2, // 171: tutorial.ResPlayroomSelectReward.Code:type_name -> tutorial.RES_CODE 2, // 172: tutorial.ResPlayroomLose.Code:type_name -> tutorial.RES_CODE 2, // 173: tutorial.ResPlayroomWork.Code:type_name -> tutorial.RES_CODE 2, // 174: tutorial.ResPlayroomRest.Code:type_name -> tutorial.RES_CODE 2, // 175: tutorial.ResPlayroomDraw.Code:type_name -> tutorial.RES_CODE 2, // 176: tutorial.ResPlayroomChip.Code:type_name -> tutorial.RES_CODE 2, // 177: tutorial.ResPlayroomBuyItem.Code:type_name -> tutorial.RES_CODE 329, // 178: tutorial.ResFriendTreasure.List:type_name -> tutorial.TreasureInfo 329, // 179: tutorial.ReqFriendTreasureStart.List:type_name -> tutorial.TreasureInfo 2, // 180: tutorial.ResFriendTreasureStart.Code:type_name -> tutorial.RES_CODE 2, // 181: tutorial.ResFriendTreasureEnd.Code:type_name -> tutorial.RES_CODE 2, // 182: tutorial.ResFriendTreasureFilp.Code:type_name -> tutorial.RES_CODE 136, // 183: tutorial.ResDailyTask.WeekRewardEntry.value:type_name -> tutorial.DailyWeek 137, // 184: tutorial.ResDailyTask.DailyTaskEntry.value:type_name -> tutorial.DailyTask 168, // 185: tutorial.ResLimitEvent.LimitEventListEntry.value:type_name -> tutorial.LimitEvent 177, // 186: tutorial.ResRank.RankListEntry.value:type_name -> tutorial.ResPlayerSimple 211, // 187: tutorial.ResMailList.MailListEntry.value:type_name -> tutorial.MailInfo 220, // 188: tutorial.ResCharge.SpecialShopEntry.value:type_name -> tutorial.ResSpecialShop 221, // 189: tutorial.ResCharge.ChessShopEntry.value:type_name -> tutorial.ResChessShop 232, // 190: tutorial.ResEndless.EndlessListEntry.value:type_name -> tutorial.ResEndlessInfo 178, // 191: tutorial.ResChampshipRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank 178, // 192: tutorial.ResChampshipPreRank.RankListEntry.value:type_name -> tutorial.ResPlayerRank 133, // 193: tutorial.ResPlayroomInfo.ItemsEntry.value:type_name -> tutorial.ItemInfo 133, // 194: tutorial.ResPlayroomGame.ItemsEntry.value:type_name -> tutorial.ItemInfo 195, // [195:195] is the sub-list for method output_type 195, // [195:195] is the sub-list for method input_type 195, // [195:195] is the sub-list for extension type_name 195, // [195:195] is the sub-list for extension extendee 0, // [0:195] is the sub-list for field type_name } func init() { file_Gameapi_proto_init() } func file_Gameapi_proto_init() { if File_Gameapi_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_Gameapi_proto_rawDesc, NumEnums: 4, NumMessages: 386, NumExtensions: 0, NumServices: 0, }, GoTypes: file_Gameapi_proto_goTypes, DependencyIndexes: file_Gameapi_proto_depIdxs, EnumInfos: file_Gameapi_proto_enumTypes, MessageInfos: file_Gameapi_proto_msgTypes, }.Build() File_Gameapi_proto = out.File file_Gameapi_proto_rawDesc = nil file_Gameapi_proto_goTypes = nil file_Gameapi_proto_depIdxs = nil }