// Sorapointa - A server software re-implementation for a certain anime game, and avoid sorapointa. // Copyright (C) 2022 Sorapointa Team // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 // protoc v3.14.0 // source: GCGMessage.proto package proto 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 GCGMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Message: // // *GCGMessage_TokenChange // *GCGMessage_PhaseChange // *GCGMessage_AddCards // *GCGMessage_RemoveCards // *GCGMessage_SelectOnStage // *GCGMessage_DiceRoll // *GCGMessage_DiceReroll // *GCGMessage_Pass // *GCGMessage_CharDie // *GCGMessage_SkillResult // *GCGMessage_CostDice // *GCGMessage_AddDice // *GCGMessage_MoveCard // *GCGMessage_UseSkill // *GCGMessage_NewCard // *GCGMessage_UpdateController // *GCGMessage_ModifyAdd // *GCGMessage_ModifyRemove // *GCGMessage_UseSkillEnd // *GCGMessage_PveGenCardOp // *GCGMessage_PveDoOp // *GCGMessage_DuelDataChange // *GCGMessage_ClientPerform // *GCGMessage_GameOver // *GCGMessage_OpTimer // *GCGMessage_WaitingListChange // *GCGMessage_CardUpdate // *GCGMessage_SelectOnStageByEffect // *GCGMessage_CostRevise Message isGCGMessage_Message `protobuf_oneof:"message"` } func (x *GCGMessage) Reset() { *x = GCGMessage{} if protoimpl.UnsafeEnabled { mi := &file_GCGMessage_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GCGMessage) String() string { return protoimpl.X.MessageStringOf(x) } func (*GCGMessage) ProtoMessage() {} func (x *GCGMessage) ProtoReflect() protoreflect.Message { mi := &file_GCGMessage_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GCGMessage.ProtoReflect.Descriptor instead. func (*GCGMessage) Descriptor() ([]byte, []int) { return file_GCGMessage_proto_rawDescGZIP(), []int{0} } func (m *GCGMessage) GetMessage() isGCGMessage_Message { if m != nil { return m.Message } return nil } func (x *GCGMessage) GetTokenChange() *GCGMsgTokenChange { if x, ok := x.GetMessage().(*GCGMessage_TokenChange); ok { return x.TokenChange } return nil } func (x *GCGMessage) GetPhaseChange() *GCGMsgPhaseChange { if x, ok := x.GetMessage().(*GCGMessage_PhaseChange); ok { return x.PhaseChange } return nil } func (x *GCGMessage) GetAddCards() *GCGMsgAddCards { if x, ok := x.GetMessage().(*GCGMessage_AddCards); ok { return x.AddCards } return nil } func (x *GCGMessage) GetRemoveCards() *GCGMsgRemoveCards { if x, ok := x.GetMessage().(*GCGMessage_RemoveCards); ok { return x.RemoveCards } return nil } func (x *GCGMessage) GetSelectOnStage() *GCGMsgSelectOnStage { if x, ok := x.GetMessage().(*GCGMessage_SelectOnStage); ok { return x.SelectOnStage } return nil } func (x *GCGMessage) GetDiceRoll() *GCGMsgDiceRoll { if x, ok := x.GetMessage().(*GCGMessage_DiceRoll); ok { return x.DiceRoll } return nil } func (x *GCGMessage) GetDiceReroll() *GCGMsgDiceReroll { if x, ok := x.GetMessage().(*GCGMessage_DiceReroll); ok { return x.DiceReroll } return nil } func (x *GCGMessage) GetPass() *GCGMsgPass { if x, ok := x.GetMessage().(*GCGMessage_Pass); ok { return x.Pass } return nil } func (x *GCGMessage) GetCharDie() *GCGMsgCharDie { if x, ok := x.GetMessage().(*GCGMessage_CharDie); ok { return x.CharDie } return nil } func (x *GCGMessage) GetSkillResult() *GCGMsgSkillResult { if x, ok := x.GetMessage().(*GCGMessage_SkillResult); ok { return x.SkillResult } return nil } func (x *GCGMessage) GetCostDice() *GCGMsgCostDice { if x, ok := x.GetMessage().(*GCGMessage_CostDice); ok { return x.CostDice } return nil } func (x *GCGMessage) GetAddDice() *GCGMsgAddDice { if x, ok := x.GetMessage().(*GCGMessage_AddDice); ok { return x.AddDice } return nil } func (x *GCGMessage) GetMoveCard() *GCGMsgMoveCard { if x, ok := x.GetMessage().(*GCGMessage_MoveCard); ok { return x.MoveCard } return nil } func (x *GCGMessage) GetUseSkill() *GCGMsgUseSkill { if x, ok := x.GetMessage().(*GCGMessage_UseSkill); ok { return x.UseSkill } return nil } func (x *GCGMessage) GetNewCard() *GCGMsgNewCard { if x, ok := x.GetMessage().(*GCGMessage_NewCard); ok { return x.NewCard } return nil } func (x *GCGMessage) GetUpdateController() *GCGMsgUpdateController { if x, ok := x.GetMessage().(*GCGMessage_UpdateController); ok { return x.UpdateController } return nil } func (x *GCGMessage) GetModifyAdd() *GCGMsgModifyAdd { if x, ok := x.GetMessage().(*GCGMessage_ModifyAdd); ok { return x.ModifyAdd } return nil } func (x *GCGMessage) GetModifyRemove() *GCGMsgModifyRemove { if x, ok := x.GetMessage().(*GCGMessage_ModifyRemove); ok { return x.ModifyRemove } return nil } func (x *GCGMessage) GetUseSkillEnd() *GCGMsgUseSkillEnd { if x, ok := x.GetMessage().(*GCGMessage_UseSkillEnd); ok { return x.UseSkillEnd } return nil } func (x *GCGMessage) GetPveGenCardOp() *GCGMsgPVEGenCardOp { if x, ok := x.GetMessage().(*GCGMessage_PveGenCardOp); ok { return x.PveGenCardOp } return nil } func (x *GCGMessage) GetPveDoOp() *GCGMsgPVEDoOp { if x, ok := x.GetMessage().(*GCGMessage_PveDoOp); ok { return x.PveDoOp } return nil } func (x *GCGMessage) GetDuelDataChange() *GCGMsgDuelDataChange { if x, ok := x.GetMessage().(*GCGMessage_DuelDataChange); ok { return x.DuelDataChange } return nil } func (x *GCGMessage) GetClientPerform() *GCGMsgClientPerform { if x, ok := x.GetMessage().(*GCGMessage_ClientPerform); ok { return x.ClientPerform } return nil } func (x *GCGMessage) GetGameOver() *GCGMsgGameOver { if x, ok := x.GetMessage().(*GCGMessage_GameOver); ok { return x.GameOver } return nil } func (x *GCGMessage) GetOpTimer() *GCGMsgOpTimer { if x, ok := x.GetMessage().(*GCGMessage_OpTimer); ok { return x.OpTimer } return nil } func (x *GCGMessage) GetWaitingListChange() *GCGMsgWaitingListChange { if x, ok := x.GetMessage().(*GCGMessage_WaitingListChange); ok { return x.WaitingListChange } return nil } func (x *GCGMessage) GetCardUpdate() *GCGMsgCardUpdate { if x, ok := x.GetMessage().(*GCGMessage_CardUpdate); ok { return x.CardUpdate } return nil } func (x *GCGMessage) GetSelectOnStageByEffect() *GCGMsgSelectOnStageByEffect { if x, ok := x.GetMessage().(*GCGMessage_SelectOnStageByEffect); ok { return x.SelectOnStageByEffect } return nil } func (x *GCGMessage) GetCostRevise() *GCGMsgCostRevise { if x, ok := x.GetMessage().(*GCGMessage_CostRevise); ok { return x.CostRevise } return nil } type isGCGMessage_Message interface { isGCGMessage_Message() } type GCGMessage_TokenChange struct { TokenChange *GCGMsgTokenChange `protobuf:"bytes,12,opt,name=token_change,json=tokenChange,proto3,oneof"` } type GCGMessage_PhaseChange struct { PhaseChange *GCGMsgPhaseChange `protobuf:"bytes,13,opt,name=phase_change,json=phaseChange,proto3,oneof"` } type GCGMessage_AddCards struct { AddCards *GCGMsgAddCards `protobuf:"bytes,10,opt,name=add_cards,json=addCards,proto3,oneof"` } type GCGMessage_RemoveCards struct { RemoveCards *GCGMsgRemoveCards `protobuf:"bytes,14,opt,name=remove_cards,json=removeCards,proto3,oneof"` } type GCGMessage_SelectOnStage struct { SelectOnStage *GCGMsgSelectOnStage `protobuf:"bytes,6,opt,name=select_on_stage,json=selectOnStage,proto3,oneof"` } type GCGMessage_DiceRoll struct { DiceRoll *GCGMsgDiceRoll `protobuf:"bytes,9,opt,name=dice_roll,json=diceRoll,proto3,oneof"` } type GCGMessage_DiceReroll struct { DiceReroll *GCGMsgDiceReroll `protobuf:"bytes,11,opt,name=dice_reroll,json=diceReroll,proto3,oneof"` } type GCGMessage_Pass struct { Pass *GCGMsgPass `protobuf:"bytes,5,opt,name=pass,proto3,oneof"` } type GCGMessage_CharDie struct { CharDie *GCGMsgCharDie `protobuf:"bytes,2,opt,name=char_die,json=charDie,proto3,oneof"` } type GCGMessage_SkillResult struct { SkillResult *GCGMsgSkillResult `protobuf:"bytes,1,opt,name=skill_result,json=skillResult,proto3,oneof"` } type GCGMessage_CostDice struct { CostDice *GCGMsgCostDice `protobuf:"bytes,7,opt,name=cost_dice,json=costDice,proto3,oneof"` } type GCGMessage_AddDice struct { AddDice *GCGMsgAddDice `protobuf:"bytes,3,opt,name=add_dice,json=addDice,proto3,oneof"` } type GCGMessage_MoveCard struct { MoveCard *GCGMsgMoveCard `protobuf:"bytes,15,opt,name=move_card,json=moveCard,proto3,oneof"` } type GCGMessage_UseSkill struct { UseSkill *GCGMsgUseSkill `protobuf:"bytes,4,opt,name=use_skill,json=useSkill,proto3,oneof"` } type GCGMessage_NewCard struct { NewCard *GCGMsgNewCard `protobuf:"bytes,1848,opt,name=new_card,json=newCard,proto3,oneof"` } type GCGMessage_UpdateController struct { UpdateController *GCGMsgUpdateController `protobuf:"bytes,429,opt,name=update_controller,json=updateController,proto3,oneof"` } type GCGMessage_ModifyAdd struct { ModifyAdd *GCGMsgModifyAdd `protobuf:"bytes,1851,opt,name=modify_add,json=modifyAdd,proto3,oneof"` } type GCGMessage_ModifyRemove struct { ModifyRemove *GCGMsgModifyRemove `protobuf:"bytes,471,opt,name=modify_remove,json=modifyRemove,proto3,oneof"` } type GCGMessage_UseSkillEnd struct { UseSkillEnd *GCGMsgUseSkillEnd `protobuf:"bytes,1411,opt,name=use_skill_end,json=useSkillEnd,proto3,oneof"` } type GCGMessage_PveGenCardOp struct { PveGenCardOp *GCGMsgPVEGenCardOp `protobuf:"bytes,1741,opt,name=pve_gen_card_op,json=pveGenCardOp,proto3,oneof"` } type GCGMessage_PveDoOp struct { PveDoOp *GCGMsgPVEDoOp `protobuf:"bytes,614,opt,name=pve_do_op,json=pveDoOp,proto3,oneof"` } type GCGMessage_DuelDataChange struct { DuelDataChange *GCGMsgDuelDataChange `protobuf:"bytes,1008,opt,name=duel_data_change,json=duelDataChange,proto3,oneof"` } type GCGMessage_ClientPerform struct { ClientPerform *GCGMsgClientPerform `protobuf:"bytes,1035,opt,name=client_perform,json=clientPerform,proto3,oneof"` } type GCGMessage_GameOver struct { GameOver *GCGMsgGameOver `protobuf:"bytes,714,opt,name=game_over,json=gameOver,proto3,oneof"` } type GCGMessage_OpTimer struct { OpTimer *GCGMsgOpTimer `protobuf:"bytes,1862,opt,name=op_timer,json=opTimer,proto3,oneof"` } type GCGMessage_WaitingListChange struct { WaitingListChange *GCGMsgWaitingListChange `protobuf:"bytes,1678,opt,name=waiting_list_change,json=waitingListChange,proto3,oneof"` } type GCGMessage_CardUpdate struct { CardUpdate *GCGMsgCardUpdate `protobuf:"bytes,1879,opt,name=card_update,json=cardUpdate,proto3,oneof"` } type GCGMessage_SelectOnStageByEffect struct { SelectOnStageByEffect *GCGMsgSelectOnStageByEffect `protobuf:"bytes,2042,opt,name=select_on_stage_by_effect,json=selectOnStageByEffect,proto3,oneof"` } type GCGMessage_CostRevise struct { CostRevise *GCGMsgCostRevise `protobuf:"bytes,1350,opt,name=cost_revise,json=costRevise,proto3,oneof"` } func (*GCGMessage_TokenChange) isGCGMessage_Message() {} func (*GCGMessage_PhaseChange) isGCGMessage_Message() {} func (*GCGMessage_AddCards) isGCGMessage_Message() {} func (*GCGMessage_RemoveCards) isGCGMessage_Message() {} func (*GCGMessage_SelectOnStage) isGCGMessage_Message() {} func (*GCGMessage_DiceRoll) isGCGMessage_Message() {} func (*GCGMessage_DiceReroll) isGCGMessage_Message() {} func (*GCGMessage_Pass) isGCGMessage_Message() {} func (*GCGMessage_CharDie) isGCGMessage_Message() {} func (*GCGMessage_SkillResult) isGCGMessage_Message() {} func (*GCGMessage_CostDice) isGCGMessage_Message() {} func (*GCGMessage_AddDice) isGCGMessage_Message() {} func (*GCGMessage_MoveCard) isGCGMessage_Message() {} func (*GCGMessage_UseSkill) isGCGMessage_Message() {} func (*GCGMessage_NewCard) isGCGMessage_Message() {} func (*GCGMessage_UpdateController) isGCGMessage_Message() {} func (*GCGMessage_ModifyAdd) isGCGMessage_Message() {} func (*GCGMessage_ModifyRemove) isGCGMessage_Message() {} func (*GCGMessage_UseSkillEnd) isGCGMessage_Message() {} func (*GCGMessage_PveGenCardOp) isGCGMessage_Message() {} func (*GCGMessage_PveDoOp) isGCGMessage_Message() {} func (*GCGMessage_DuelDataChange) isGCGMessage_Message() {} func (*GCGMessage_ClientPerform) isGCGMessage_Message() {} func (*GCGMessage_GameOver) isGCGMessage_Message() {} func (*GCGMessage_OpTimer) isGCGMessage_Message() {} func (*GCGMessage_WaitingListChange) isGCGMessage_Message() {} func (*GCGMessage_CardUpdate) isGCGMessage_Message() {} func (*GCGMessage_SelectOnStageByEffect) isGCGMessage_Message() {} func (*GCGMessage_CostRevise) isGCGMessage_Message() {} var File_GCGMessage_proto protoreflect.FileDescriptor var file_GCGMessage_proto_rawDesc = []byte{ 0x0a, 0x10, 0x47, 0x43, 0x47, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x44, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x61, 0x72, 0x44, 0x69, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x16, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x44, 0x75, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x64, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x56, 0x45, 0x44, 0x6f, 0x4f, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x18, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x56, 0x45, 0x47, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x10, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x68, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x79, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, 0x0e, 0x0a, 0x0a, 0x47, 0x43, 0x47, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x70, 0x68, 0x61, 0x73, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x68, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x68, 0x61, 0x73, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x08, 0x61, 0x64, 0x64, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x73, 0x48, 0x00, 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x0f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x64, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x12, 0x3a, 0x0a, 0x0b, 0x64, 0x69, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x44, 0x69, 0x63, 0x65, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x63, 0x65, 0x52, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x61, 0x73, 0x73, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5f, 0x64, 0x69, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x68, 0x61, 0x72, 0x44, 0x69, 0x65, 0x48, 0x00, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x44, 0x69, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x34, 0x0a, 0x09, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x64, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x44, 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x61, 0x64, 0x64, 0x5f, 0x64, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x41, 0x64, 0x64, 0x44, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x44, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x6d, 0x6f, 0x76, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x61, 0x72, 0x64, 0x12, 0x34, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x75, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x32, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x18, 0xb8, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4e, 0x65, 0x77, 0x43, 0x61, 0x72, 0x64, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x43, 0x61, 0x72, 0x64, 0x12, 0x4d, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x18, 0xad, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x64, 0x64, 0x18, 0xbb, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x64, 0x64, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x41, 0x64, 0x64, 0x12, 0x41, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0xd7, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x83, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x55, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x12, 0x43, 0x0a, 0x0f, 0x70, 0x76, 0x65, 0x5f, 0x67, 0x65, 0x6e, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6f, 0x70, 0x18, 0xcd, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x56, 0x45, 0x47, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x76, 0x65, 0x47, 0x65, 0x6e, 0x43, 0x61, 0x72, 0x64, 0x4f, 0x70, 0x12, 0x33, 0x0a, 0x09, 0x70, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x5f, 0x6f, 0x70, 0x18, 0xe6, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x50, 0x56, 0x45, 0x44, 0x6f, 0x4f, 0x70, 0x48, 0x00, 0x52, 0x07, 0x70, 0x76, 0x65, 0x44, 0x6f, 0x4f, 0x70, 0x12, 0x48, 0x0a, 0x10, 0x64, 0x75, 0x65, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x44, 0x75, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x75, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x8b, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x35, 0x0a, 0x09, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x18, 0xca, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x48, 0x00, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x18, 0xc6, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x13, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x8e, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x57, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x11, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0xd7, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x72, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5f, 0x0a, 0x19, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x18, 0xfa, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x79, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x15, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x42, 0x79, 0x45, 0x66, 0x66, 0x65, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x65, 0x18, 0xc6, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x47, 0x43, 0x47, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x3b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_GCGMessage_proto_rawDescOnce sync.Once file_GCGMessage_proto_rawDescData = file_GCGMessage_proto_rawDesc ) func file_GCGMessage_proto_rawDescGZIP() []byte { file_GCGMessage_proto_rawDescOnce.Do(func() { file_GCGMessage_proto_rawDescData = protoimpl.X.CompressGZIP(file_GCGMessage_proto_rawDescData) }) return file_GCGMessage_proto_rawDescData } var file_GCGMessage_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_GCGMessage_proto_goTypes = []interface{}{ (*GCGMessage)(nil), // 0: proto.GCGMessage (*GCGMsgTokenChange)(nil), // 1: proto.GCGMsgTokenChange (*GCGMsgPhaseChange)(nil), // 2: proto.GCGMsgPhaseChange (*GCGMsgAddCards)(nil), // 3: proto.GCGMsgAddCards (*GCGMsgRemoveCards)(nil), // 4: proto.GCGMsgRemoveCards (*GCGMsgSelectOnStage)(nil), // 5: proto.GCGMsgSelectOnStage (*GCGMsgDiceRoll)(nil), // 6: proto.GCGMsgDiceRoll (*GCGMsgDiceReroll)(nil), // 7: proto.GCGMsgDiceReroll (*GCGMsgPass)(nil), // 8: proto.GCGMsgPass (*GCGMsgCharDie)(nil), // 9: proto.GCGMsgCharDie (*GCGMsgSkillResult)(nil), // 10: proto.GCGMsgSkillResult (*GCGMsgCostDice)(nil), // 11: proto.GCGMsgCostDice (*GCGMsgAddDice)(nil), // 12: proto.GCGMsgAddDice (*GCGMsgMoveCard)(nil), // 13: proto.GCGMsgMoveCard (*GCGMsgUseSkill)(nil), // 14: proto.GCGMsgUseSkill (*GCGMsgNewCard)(nil), // 15: proto.GCGMsgNewCard (*GCGMsgUpdateController)(nil), // 16: proto.GCGMsgUpdateController (*GCGMsgModifyAdd)(nil), // 17: proto.GCGMsgModifyAdd (*GCGMsgModifyRemove)(nil), // 18: proto.GCGMsgModifyRemove (*GCGMsgUseSkillEnd)(nil), // 19: proto.GCGMsgUseSkillEnd (*GCGMsgPVEGenCardOp)(nil), // 20: proto.GCGMsgPVEGenCardOp (*GCGMsgPVEDoOp)(nil), // 21: proto.GCGMsgPVEDoOp (*GCGMsgDuelDataChange)(nil), // 22: proto.GCGMsgDuelDataChange (*GCGMsgClientPerform)(nil), // 23: proto.GCGMsgClientPerform (*GCGMsgGameOver)(nil), // 24: proto.GCGMsgGameOver (*GCGMsgOpTimer)(nil), // 25: proto.GCGMsgOpTimer (*GCGMsgWaitingListChange)(nil), // 26: proto.GCGMsgWaitingListChange (*GCGMsgCardUpdate)(nil), // 27: proto.GCGMsgCardUpdate (*GCGMsgSelectOnStageByEffect)(nil), // 28: proto.GCGMsgSelectOnStageByEffect (*GCGMsgCostRevise)(nil), // 29: proto.GCGMsgCostRevise } var file_GCGMessage_proto_depIdxs = []int32{ 1, // 0: proto.GCGMessage.token_change:type_name -> proto.GCGMsgTokenChange 2, // 1: proto.GCGMessage.phase_change:type_name -> proto.GCGMsgPhaseChange 3, // 2: proto.GCGMessage.add_cards:type_name -> proto.GCGMsgAddCards 4, // 3: proto.GCGMessage.remove_cards:type_name -> proto.GCGMsgRemoveCards 5, // 4: proto.GCGMessage.select_on_stage:type_name -> proto.GCGMsgSelectOnStage 6, // 5: proto.GCGMessage.dice_roll:type_name -> proto.GCGMsgDiceRoll 7, // 6: proto.GCGMessage.dice_reroll:type_name -> proto.GCGMsgDiceReroll 8, // 7: proto.GCGMessage.pass:type_name -> proto.GCGMsgPass 9, // 8: proto.GCGMessage.char_die:type_name -> proto.GCGMsgCharDie 10, // 9: proto.GCGMessage.skill_result:type_name -> proto.GCGMsgSkillResult 11, // 10: proto.GCGMessage.cost_dice:type_name -> proto.GCGMsgCostDice 12, // 11: proto.GCGMessage.add_dice:type_name -> proto.GCGMsgAddDice 13, // 12: proto.GCGMessage.move_card:type_name -> proto.GCGMsgMoveCard 14, // 13: proto.GCGMessage.use_skill:type_name -> proto.GCGMsgUseSkill 15, // 14: proto.GCGMessage.new_card:type_name -> proto.GCGMsgNewCard 16, // 15: proto.GCGMessage.update_controller:type_name -> proto.GCGMsgUpdateController 17, // 16: proto.GCGMessage.modify_add:type_name -> proto.GCGMsgModifyAdd 18, // 17: proto.GCGMessage.modify_remove:type_name -> proto.GCGMsgModifyRemove 19, // 18: proto.GCGMessage.use_skill_end:type_name -> proto.GCGMsgUseSkillEnd 20, // 19: proto.GCGMessage.pve_gen_card_op:type_name -> proto.GCGMsgPVEGenCardOp 21, // 20: proto.GCGMessage.pve_do_op:type_name -> proto.GCGMsgPVEDoOp 22, // 21: proto.GCGMessage.duel_data_change:type_name -> proto.GCGMsgDuelDataChange 23, // 22: proto.GCGMessage.client_perform:type_name -> proto.GCGMsgClientPerform 24, // 23: proto.GCGMessage.game_over:type_name -> proto.GCGMsgGameOver 25, // 24: proto.GCGMessage.op_timer:type_name -> proto.GCGMsgOpTimer 26, // 25: proto.GCGMessage.waiting_list_change:type_name -> proto.GCGMsgWaitingListChange 27, // 26: proto.GCGMessage.card_update:type_name -> proto.GCGMsgCardUpdate 28, // 27: proto.GCGMessage.select_on_stage_by_effect:type_name -> proto.GCGMsgSelectOnStageByEffect 29, // 28: proto.GCGMessage.cost_revise:type_name -> proto.GCGMsgCostRevise 29, // [29:29] is the sub-list for method output_type 29, // [29:29] is the sub-list for method input_type 29, // [29:29] is the sub-list for extension type_name 29, // [29:29] is the sub-list for extension extendee 0, // [0:29] is the sub-list for field type_name } func init() { file_GCGMessage_proto_init() } func file_GCGMessage_proto_init() { if File_GCGMessage_proto != nil { return } file_GCGMsgAddCards_proto_init() file_GCGMsgAddDice_proto_init() file_GCGMsgCardUpdate_proto_init() file_GCGMsgCharDie_proto_init() file_GCGMsgClientPerform_proto_init() file_GCGMsgCostDice_proto_init() file_GCGMsgCostRevise_proto_init() file_GCGMsgDiceReroll_proto_init() file_GCGMsgDiceRoll_proto_init() file_GCGMsgDuelDataChange_proto_init() file_GCGMsgGameOver_proto_init() file_GCGMsgModifyAdd_proto_init() file_GCGMsgModifyRemove_proto_init() file_GCGMsgMoveCard_proto_init() file_GCGMsgNewCard_proto_init() file_GCGMsgOpTimer_proto_init() file_GCGMsgPVEDoOp_proto_init() file_GCGMsgPVEGenCardOp_proto_init() file_GCGMsgPass_proto_init() file_GCGMsgPhaseChange_proto_init() file_GCGMsgRemoveCards_proto_init() file_GCGMsgSelectOnStage_proto_init() file_GCGMsgSelectOnStageByEffect_proto_init() file_GCGMsgSkillResult_proto_init() file_GCGMsgTokenChange_proto_init() file_GCGMsgUpdateController_proto_init() file_GCGMsgUseSkill_proto_init() file_GCGMsgUseSkillEnd_proto_init() file_GCGMsgWaitingListChange_proto_init() if !protoimpl.UnsafeEnabled { file_GCGMessage_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GCGMessage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_GCGMessage_proto_msgTypes[0].OneofWrappers = []interface{}{ (*GCGMessage_TokenChange)(nil), (*GCGMessage_PhaseChange)(nil), (*GCGMessage_AddCards)(nil), (*GCGMessage_RemoveCards)(nil), (*GCGMessage_SelectOnStage)(nil), (*GCGMessage_DiceRoll)(nil), (*GCGMessage_DiceReroll)(nil), (*GCGMessage_Pass)(nil), (*GCGMessage_CharDie)(nil), (*GCGMessage_SkillResult)(nil), (*GCGMessage_CostDice)(nil), (*GCGMessage_AddDice)(nil), (*GCGMessage_MoveCard)(nil), (*GCGMessage_UseSkill)(nil), (*GCGMessage_NewCard)(nil), (*GCGMessage_UpdateController)(nil), (*GCGMessage_ModifyAdd)(nil), (*GCGMessage_ModifyRemove)(nil), (*GCGMessage_UseSkillEnd)(nil), (*GCGMessage_PveGenCardOp)(nil), (*GCGMessage_PveDoOp)(nil), (*GCGMessage_DuelDataChange)(nil), (*GCGMessage_ClientPerform)(nil), (*GCGMessage_GameOver)(nil), (*GCGMessage_OpTimer)(nil), (*GCGMessage_WaitingListChange)(nil), (*GCGMessage_CardUpdate)(nil), (*GCGMessage_SelectOnStageByEffect)(nil), (*GCGMessage_CostRevise)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_GCGMessage_proto_rawDesc, NumEnums: 0, NumMessages: 1, NumExtensions: 0, NumServices: 0, }, GoTypes: file_GCGMessage_proto_goTypes, DependencyIndexes: file_GCGMessage_proto_depIdxs, MessageInfos: file_GCGMessage_proto_msgTypes, }.Build() File_GCGMessage_proto = out.File file_GCGMessage_proto_rawDesc = nil file_GCGMessage_proto_goTypes = nil file_GCGMessage_proto_depIdxs = nil }