diff --git a/Makefile b/Makefile index 45523ca..03bd083 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,7 @@ build-groupserver: go build -o $(INSTALL_PATH)/groupserver apps/groupserver/cmd/groupserver/main.go build-perun: - cd apps/perun && go build -o ../../$(INSTALL_PATH)/perun cmd/perun/main.go && cd ../.. + cd apps/perun && go build -o $(abspath $(INSTALL_PATH))/perun cmd/perun/main.go && cd ../.. build-mysqlreverseproxy: go build -o $(INSTALL_PATH)/mysqlreverseproxy apps/mysqlreverseproxy/cmd/mysqlreverseproxy/main.go diff --git a/api/proto/v1/characters/characters.proto b/api/proto/v1/characters/characters.proto index 29c1373..2408eff 100644 --- a/api/proto/v1/characters/characters.proto +++ b/api/proto/v1/characters/characters.proto @@ -9,20 +9,45 @@ service CharactersService { rpc CharactersToLoginByGUID(CharactersToLoginByGUIDRequest) returns (CharactersToLoginByGUIDResponse); rpc AccountDataForAccount(AccountDataForAccountRequest) returns (AccountDataForAccountResponse); + rpc UpdateAccountDataForAccount(UpdateAccountDataForAccountRequest) returns (UpdateAccountDataForAccountResponse); rpc WhoQuery(WhoQueryRequest) returns (WhoQueryResponse); rpc CharacterOnlineByName(CharacterOnlineByNameRequest) returns (CharacterOnlineByNameResponse); rpc CharacterByName(CharacterByNameRequest) returns (CharacterByNameResponse); + rpc CharacterByGUID(CharacterByGUIDRequest) returns (CharacterByGUIDResponse); rpc ShortOnlineCharactersDataByGUIDs(ShortCharactersDataByGUIDsRequest) returns (ShortCharactersDataByGUIDsResponse); + rpc ArenaTeamQueueDataForRatedArena(ArenaTeamQueueDataForRatedArenaRequest) returns (ArenaTeamQueueDataForRatedArenaResponse); + rpc GetArenaTeam(GetArenaTeamRequest) returns (GetArenaTeamResponse); + rpc GetArenaTeamPetition(GetArenaTeamPetitionRequest) returns (GetArenaTeamPetitionResponse); + rpc CreateArenaTeamFromPetition(CreateArenaTeamFromPetitionRequest) returns (CreateArenaTeamFromPetitionResponse); + rpc InviteArenaTeamMember(InviteArenaTeamMemberRequest) returns (InviteArenaTeamMemberResponse); + rpc AcceptArenaTeamInvite(AcceptArenaTeamInviteRequest) returns (AcceptArenaTeamInviteResponse); + rpc DeclineArenaTeamInvite(DeclineArenaTeamInviteRequest) returns (ArenaTeamMutationResponse); + rpc AddArenaTeamMember(AddArenaTeamMemberRequest) returns (ArenaTeamMutationResponse); + rpc RemoveArenaTeamMember(RemoveArenaTeamMemberRequest) returns (ArenaTeamMutationResponse); + rpc DisbandArenaTeam(DisbandArenaTeamRequest) returns (ArenaTeamMutationResponse); + rpc SetArenaTeamCaptain(SetArenaTeamCaptainRequest) returns (ArenaTeamMutationResponse); + rpc SetArenaTeamName(SetArenaTeamNameRequest) returns (ArenaTeamMutationResponse); + rpc SaveArenaTeamStats(SaveArenaTeamStatsRequest) returns (ArenaTeamMutationResponse); + rpc DeleteAllArenaTeams(DeleteAllArenaTeamsRequest) returns (ArenaTeamMutationResponse); + rpc ValidateArenaTeamCharacterDelete(ValidateArenaTeamCharacterDeleteRequest) returns (ArenaTeamMutationResponse); + rpc RemovePlayerFromArenaTeams(RemovePlayerFromArenaTeamsRequest) returns (ArenaTeamMutationResponse); // Would effect only offline player. rpc SavePlayerPosition(SavePlayerPositionRequest) returns (SavePlayerPositionResponse); + rpc RecordLfgDungeonRoute(RecordLfgDungeonRouteRequest) returns (RecordLfgDungeonRouteResponse); + rpc ConfirmLfgDungeonRouteEntered(ConfirmLfgDungeonRouteEnteredRequest) returns (ConfirmLfgDungeonRouteEnteredResponse); + rpc ClearUnboundLfgDungeonRoute(ClearUnboundLfgDungeonRouteRequest) returns (ClearUnboundLfgDungeonRouteResponse); + rpc GetLfgDungeonRoute(GetLfgDungeonRouteRequest) returns (GetLfgDungeonRouteResponse); // Friends and ignore list management rpc GetFriendsList(GetFriendsListRequest) returns (GetFriendsListResponse); rpc AddFriend(AddFriendRequest) returns (AddFriendResponse); + rpc AddRealIDFriendByEmail(AddRealIDFriendByEmailRequest) returns (AddRealIDFriendByEmailResponse); + rpc AcceptRealIDFriend(AcceptRealIDFriendRequest) returns (AcceptRealIDFriendResponse); + rpc AreRealIDFriends(AreRealIDFriendsRequest) returns (AreRealIDFriendsResponse); rpc RemoveFriend(RemoveFriendRequest) returns (RemoveFriendResponse); rpc SetFriendNote(SetFriendNoteRequest) returns (SetFriendNoteResponse); rpc AddIgnore(AddIgnoreRequest) returns (AddIgnoreResponse); @@ -60,6 +85,7 @@ message LogInCharacter { bool banned = 23; repeated EquipmentDisplay equipments = 24; uint32 accountID = 25; + uint32 extraFlags = 26; } message EquipmentDisplay { @@ -88,6 +114,7 @@ message CharactersToLoginByGUIDRequest{ uint64 characterGUID = 2; uint32 realmID = 3; + uint32 accountID = 4; } // Response that contains character to login @@ -117,6 +144,20 @@ message AccountDataForAccountResponse{ repeated AccountData accountData = 2; } +message UpdateAccountDataForAccountRequest{ + string api = 1; + + uint32 accountID = 2; + uint32 realmID = 3; + uint32 type = 4; + int64 time = 5; + string data = 6; +} + +message UpdateAccountDataForAccountResponse{ + string api = 1; +} + message WhoQueryRequest{ string api = 1; @@ -208,6 +249,19 @@ message CharacterByNameResponse { Char character = 2; } +message CharacterByGUIDRequest { + string api = 1; + + uint32 realmID = 2; + uint64 characterGUID = 3; +} + +message CharacterByGUIDResponse { + string api = 1; + + CharacterByNameResponse.Char character = 2; +} + message ShortCharactersDataByGUIDsRequest { string api = 1; @@ -237,6 +291,306 @@ message ShortCharactersDataByGUIDsResponse { repeated ShortCharData characters = 2; } +message ArenaTeamQueueDataForRatedArenaRequest { + string api = 1; + + uint32 realmID = 2; + uint64 leaderGUID = 3; + repeated uint64 playerGUIDs = 4; + uint32 arenaType = 5; + uint32 startMatchmakerRating = 6; +} + +message ArenaTeamQueueDataForRatedArenaResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + MemberMismatch = 2; + InvalidPartySize = 3; + Failed = 4; + InvalidType = 5; + } + + Status status = 2; + uint32 arenaTeamID = 3; + uint32 teamRating = 4; + uint32 matchmakerRating = 5; + uint32 previousOpponentsTeamID = 6; +} + +message CreateArenaTeamFromPetitionRequest { + string api = 1; + + uint32 realmID = 2; + uint64 captainGUID = 3; + uint64 petitionGUID = 4; + uint32 arenaType = 5; + uint32 backgroundColor = 6; + uint32 emblemStyle = 7; + uint32 emblemColor = 8; + uint32 borderStyle = 9; + uint32 borderColor = 10; + uint32 startRating = 11; + uint32 startPersonalRating = 12; + uint32 startMatchmakerRating = 13; +} + +message CreateArenaTeamFromPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + NotOwner = 2; + InvalidType = 3; + NameExists = 4; + AlreadyInTeam = 5; + NotEnoughSignatures = 6; + Failed = 7; + InvalidName = 8; + } + + Status status = 2; + uint32 arenaTeamID = 3; +} + +enum ArenaTeamMutationStatus { + ARENA_TEAM_MUTATION_OK = 0; + ARENA_TEAM_MUTATION_NOT_FOUND = 1; + ARENA_TEAM_MUTATION_MEMBER_MISMATCH = 2; + ARENA_TEAM_MUTATION_INVALID_TYPE = 3; + ARENA_TEAM_MUTATION_NAME_EXISTS = 4; + ARENA_TEAM_MUTATION_ALREADY_IN_TEAM = 5; + ARENA_TEAM_MUTATION_ROSTER_FULL = 6; + ARENA_TEAM_MUTATION_FAILED = 7; + ARENA_TEAM_MUTATION_INVALID_NAME = 8; + ARENA_TEAM_MUTATION_PERMISSION_DENIED = 9; + ARENA_TEAM_MUTATION_LEADER_LEAVE = 10; + ARENA_TEAM_MUTATION_ALREADY_INVITED = 11; + ARENA_TEAM_MUTATION_IGNORING_YOU = 12; +} + +message ArenaTeamMemberData { + uint64 playerGUID = 1; + string name = 2; + bool online = 3; + uint32 level = 4; + uint32 class = 5; + uint32 weekGames = 6; + uint32 weekWins = 7; + uint32 seasonGames = 8; + uint32 seasonWins = 9; + uint32 personalRating = 10; + uint32 matchmakerRating = 11; + uint32 maxMMR = 12; +} + +message ArenaTeamData { + uint32 arenaTeamID = 1; + string name = 2; + uint64 captainGUID = 3; + uint32 type = 4; + uint32 rating = 5; + uint32 weekGames = 6; + uint32 weekWins = 7; + uint32 seasonGames = 8; + uint32 seasonWins = 9; + uint32 rank = 10; + uint32 backgroundColor = 11; + uint32 emblemStyle = 12; + uint32 emblemColor = 13; + uint32 borderStyle = 14; + uint32 borderColor = 15; + repeated ArenaTeamMemberData members = 16; +} + +message GetArenaTeamRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; +} + +message GetArenaTeamResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + Failed = 2; + } + + Status status = 2; + ArenaTeamData team = 3; +} + +message ArenaTeamPetitionData { + uint64 petitionGUID = 1; + uint32 petitionID = 2; + uint64 ownerGUID = 3; + string name = 4; + uint32 arenaType = 5; + uint32 signatures = 6; +} + +message GetArenaTeamPetitionRequest { + string api = 1; + + uint32 realmID = 2; + uint64 petitionGUID = 3; +} + +message GetArenaTeamPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + NotArena = 2; + Failed = 3; + } + + Status status = 2; + ArenaTeamPetitionData petition = 3; +} + +message InviteArenaTeamMemberRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 inviterGUID = 4; + string inviterName = 5; + uint64 targetGUID = 6; + string targetName = 7; +} + +message InviteArenaTeamMemberResponse { + string api = 1; + ArenaTeamMutationStatus status = 2; + ArenaTeamData team = 3; +} + +message AcceptArenaTeamInviteRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; + string playerName = 4; + uint32 personalRating = 5; +} + +message AcceptArenaTeamInviteResponse { + string api = 1; + ArenaTeamMutationStatus status = 2; + ArenaTeamData team = 3; +} + +message DeclineArenaTeamInviteRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message AddArenaTeamMemberRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 playerGUID = 4; + uint32 personalRating = 5; +} + +message RemoveArenaTeamMemberRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 playerGUID = 4; + uint64 actorGUID = 5; +} + +message DisbandArenaTeamRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 actorGUID = 4; +} + +message SetArenaTeamCaptainRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint64 captainGUID = 4; + uint64 actorGUID = 5; +} + +message SetArenaTeamNameRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + string name = 4; + uint64 actorGUID = 5; +} + +message ArenaTeamStatsMember { + uint64 playerGUID = 1; + uint32 personalRating = 2; + uint32 weekGames = 3; + uint32 weekWins = 4; + uint32 seasonGames = 5; + uint32 seasonWins = 6; + uint32 matchmakerRating = 7; + uint32 maxMMR = 8; + bool saveArenaStats = 9; +} + +message SaveArenaTeamStatsRequest { + string api = 1; + + uint32 realmID = 2; + uint32 arenaTeamID = 3; + uint32 rating = 4; + uint32 weekGames = 5; + uint32 weekWins = 6; + uint32 seasonGames = 7; + uint32 seasonWins = 8; + uint32 rank = 9; + uint32 slot = 10; + repeated ArenaTeamStatsMember members = 11; +} + +message DeleteAllArenaTeamsRequest { + string api = 1; + + uint32 realmID = 2; +} + +message ValidateArenaTeamCharacterDeleteRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message RemovePlayerFromArenaTeamsRequest { + string api = 1; + + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message ArenaTeamMutationResponse { + string api = 1; + ArenaTeamMutationStatus status = 2; +} + message SavePlayerPositionRequest { string api = 1; @@ -254,6 +608,67 @@ message SavePlayerPositionResponse { string api = 1; } +message LfgDungeonRoute { + uint32 realmID = 1; + uint64 playerGUID = 2; + uint32 dungeonEntry = 3; + uint32 mapID = 4; + uint32 difficulty = 5; + uint32 ownerRealmID = 6; + bool isCrossRealm = 7; + bool requiresBoundInstance = 8; + uint32 instanceID = 9; + uint32 boundInstanceID = 10; +} + +message RecordLfgDungeonRouteRequest { + string api = 1; + LfgDungeonRoute route = 2; +} + +message RecordLfgDungeonRouteResponse { + string api = 1; +} + +message ConfirmLfgDungeonRouteEnteredRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; + uint32 difficulty = 5; + uint32 instanceID = 6; +} + +message ConfirmLfgDungeonRouteEnteredResponse { + string api = 1; + LfgDungeonRoute route = 2; +} + +message ClearUnboundLfgDungeonRouteRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; +} + +message ClearUnboundLfgDungeonRouteResponse { + string api = 1; +} + +message GetLfgDungeonRouteRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; +} + +message GetLfgDungeonRouteResponse { + string api = 1; + bool found = 2; + bool available = 3; + LfgDungeonRoute route = 4; +} + // Friends list requests and responses message GetFriendsListRequest { @@ -272,6 +687,7 @@ message GetFriendsListResponse { uint32 area = 4; // zone ID if online uint32 level = 5; uint32 classID = 6; + uint32 realmID = 7; } message IgnoredPlayer { @@ -298,6 +714,62 @@ message AddFriendResponse { uint32 area = 4; uint32 level = 5; uint32 classID = 6; + uint64 friendGUID = 7; + bool pending = 8; + bool accepted = 9; +} + +message AddRealIDFriendByEmailRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 accountID = 4; + string email = 5; + string note = 6; +} + +message AddRealIDFriendByEmailResponse { + string api = 1; + uint32 result = 2; // FriendsResult enum value + uint32 status = 3; // 0=offline, 1=online + uint32 area = 4; + uint32 level = 5; + uint32 classID = 6; + uint64 friendGUID = 7; + bool pending = 8; + bool accepted = 9; +} + +message AcceptRealIDFriendRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 accountID = 4; + uint32 requesterAccountID = 5; + string note = 6; +} + +message AcceptRealIDFriendResponse { + string api = 1; + uint32 result = 2; // FriendsResult enum value + uint32 status = 3; // 0=offline, 1=online + uint32 area = 4; + uint32 level = 5; + uint32 classID = 6; + uint64 friendGUID = 7; + bool pending = 8; + bool accepted = 9; +} + +message AreRealIDFriendsRequest { + string api = 1; + uint32 accountID = 2; + uint32 friendAccountID = 3; +} + +message AreRealIDFriendsResponse { + string api = 1; + bool accepted = 2; } message RemoveFriendRequest { @@ -369,4 +841,4 @@ message GetOnlineCharactersResponse { string api = 1; repeated uint64 characterGUIDs = 2; uint32 totalCount = 3; -} \ No newline at end of file +} diff --git a/api/proto/v1/chat/chat.proto b/api/proto/v1/chat/chat.proto index 2a4c1c1..c66cb83 100644 --- a/api/proto/v1/chat/chat.proto +++ b/api/proto/v1/chat/chat.proto @@ -45,6 +45,12 @@ message SendWhisperMessageRequest { uint32 language = 6; string receiverName = 7; string msg = 8; + uint32 receiverRealmID = 9; + uint32 senderClass = 10; + uint32 senderGender = 11; + uint32 senderAccountID = 12; + bool gatewayValidatedGameplayCrossrealmWhisper = 13; + uint32 senderChatTag = 14; } message SendWhisperMessageResponse { @@ -53,10 +59,16 @@ message SendWhisperMessageResponse { enum Status { Ok = 0; CharacterNotFound = 2; + CharacterAmbiguous = 3; } Status status = 2; uint64 receiverGUID = 3; + uint32 receiverRealmID = 4; + string receiverName = 5; + uint32 receiverRace = 6; + uint32 receiverClass = 7; + uint32 receiverGender = 8; } // Channel messages @@ -117,6 +129,7 @@ message SendChannelMessageRequest { uint32 language = 6; string message = 7; TeamID teamID = 8; + uint32 senderChatTag = 9; } message SendChannelMessageResponse { diff --git a/api/proto/v1/group/group.proto b/api/proto/v1/group/group.proto index aed41ac..e535b78 100644 --- a/api/proto/v1/group/group.proto +++ b/api/proto/v1/group/group.proto @@ -12,10 +12,12 @@ service GroupService { rpc ChangeLeader(ChangeLeaderParams) returns (ChangeLeaderResponse); rpc AcceptInvite(AcceptInviteParams) returns (AcceptInviteResponse); + rpc DeclineInvite(DeclineInviteParams) returns (DeclineInviteResponse); rpc GetGroup(GetGroupRequest) returns (GetGroupResponse); rpc GetGroupByMember(GetGroupByMemberRequest) returns (GetGroupResponse); rpc GetGroupIDByPlayer(GetGroupIDByPlayerRequest) returns (GetGroupIDByPlayerResponse); + rpc GetMemberPlacements(GetMemberPlacementsRequest) returns (GetMemberPlacementsResponse); rpc SetGroupTargetIcon(SetGroupTargetIconRequest) returns (SetGroupTargetIconResponse); rpc SetLootMethod(SetLootMethodRequest) returns (SetLootMethodResponse); @@ -24,6 +26,18 @@ service GroupService { rpc SetRaidDifficulty(SetRaidDifficultyRequest) returns (SetRaidDifficultyResponse); rpc SendMessage(SendGroupMessageParams) returns (SendGroupMessageResponse); + + rpc StartReadyCheck(StartReadyCheckRequest) returns (StartReadyCheckResponse); + rpc SetReadyCheckMemberState(SetReadyCheckMemberStateRequest) returns (SetReadyCheckMemberStateResponse); + rpc FinishReadyCheck(FinishReadyCheckRequest) returns (FinishReadyCheckResponse); + rpc ChangeMemberSubGroup(ChangeMemberSubGroupRequest) returns (ChangeMemberSubGroupResponse); + rpc SetMemberFlags(SetMemberFlagsRequest) returns (SetMemberFlagsResponse); + rpc RegisterAcceptedLfgGroup(RegisterAcceptedLfgGroupRequest) returns (RegisterAcceptedLfgGroupResponse); + rpc RegisterMaterializedLfgGroup(RegisterMaterializedLfgGroupRequest) returns (RegisterMaterializedLfgGroupResponse); + rpc UpdateMemberState(UpdateMemberStateRequest) returns (UpdateMemberStateResponse); + rpc BulkUpdateMemberStates(BulkUpdateMemberStatesRequest) returns (BulkUpdateMemberStatesResponse); + rpc ResetInstance(ResetInstanceRequest) returns (ResetInstanceResponse); + rpc SetInstanceBindExtension(SetInstanceBindExtensionRequest) returns (SetInstanceBindExtensionResponse); } message InviteParams { @@ -68,6 +82,25 @@ message AcceptInviteResponse { Status status = 2; } +message DeclineInviteParams { + string api = 1; + + uint32 realmID = 2; + uint64 player = 3; +} + +message DeclineInviteResponse { + enum Status { + Ok = 0; + InviteNotFound = 1; + Error = 2; + } + + string api = 1; + + Status status = 2; +} + message GetGroupRequest { string api = 1; @@ -85,6 +118,7 @@ message GetGroupResponse { bool isOnline = 4; uint32 subGroup = 5; uint32 roles = 6; + uint32 realmID = 7; } message Group { @@ -99,6 +133,7 @@ message GetGroupResponse { uint64 masterLooter = 9; repeated uint64 targetIconsList = 10; repeated GroupMember members = 11; + uint32 realmID = 12; } Group group = 2; @@ -122,6 +157,33 @@ message GetGroupIDByPlayerResponse { string api = 1; uint32 groupID = 2; + uint32 groupRealmID = 3; +} + +message GetMemberPlacementsRequest { + string api = 1; + + uint32 realmID = 2; + repeated uint64 memberGUIDs = 3; +} + +message MemberPlacement { + uint64 memberGUID = 1; + bool online = 2; + bool fresh = 3; + string gatewayID = 4; + string worldserverID = 5; + uint32 mapID = 6; + uint32 instanceID = 7; + bool instanceKnown = 8; + uint64 timestampMs = 9; + uint64 updatedAtMs = 10; +} + +message GetMemberPlacementsResponse { + string api = 1; + + repeated MemberPlacement placements = 2; } message UninviteParams { @@ -185,6 +247,7 @@ message SendGroupMessageParams { uint32 messageType = 4; string message = 5; uint32 language = 6; + uint32 senderChatTag = 7; } message SendGroupMessageResponse { @@ -264,4 +327,195 @@ message SetRaidDifficultyResponse { } Status status = 2; -} \ No newline at end of file +} + +message StartReadyCheckRequest { + string api = 1; + uint32 realmID = 2; + uint64 leaderGUID = 3; + uint32 durationMs = 4; +} + +message StartReadyCheckResponse { + string api = 1; +} + +message SetReadyCheckMemberStateRequest { + string api = 1; + uint32 realmID = 2; + uint64 memberGUID = 3; + uint32 state = 4; +} + +message SetReadyCheckMemberStateResponse { + string api = 1; +} + +message FinishReadyCheckRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message FinishReadyCheckResponse { + string api = 1; +} + +message ChangeMemberSubGroupRequest { + string api = 1; + uint32 realmID = 2; + uint64 updaterGUID = 3; + uint64 memberGUID = 4; + uint32 subGroup = 5; +} + +message ChangeMemberSubGroupResponse { + string api = 1; +} + +message SetMemberFlagsRequest { + string api = 1; + uint32 realmID = 2; + uint64 updaterGUID = 3; + uint64 memberGUID = 4; + uint32 flags = 5; + uint32 roles = 6; +} + +message SetMemberFlagsResponse { + string api = 1; +} + +message AcceptedLfgGroupMember { + uint32 realmID = 1; + uint64 playerGUID = 2; + uint32 selectedRoles = 3; + uint32 assignedRole = 4; + uint32 queueLeaderRealmID = 5; + uint64 queueLeaderGUID = 6; +} + +message RegisterAcceptedLfgGroupRequest { + string api = 1; + uint32 realmID = 2; + uint32 proposalID = 3; + uint32 dungeonEntry = 4; + uint32 leaderRealmID = 5; + uint64 leaderGUID = 6; + bool crossRealm = 7; + repeated AcceptedLfgGroupMember members = 8; +} + +message RegisterAcceptedLfgGroupResponse { + string api = 1; + uint32 groupID = 2; +} + +message MaterializedLfgGroupMember { + uint32 realmID = 1; + uint64 playerGUID = 2; + string name = 3; + bool isOnline = 4; + uint32 flags = 5; + uint32 roles = 6; + uint32 subGroup = 7; +} + +message RegisterMaterializedLfgGroupRequest { + string api = 1; + uint32 realmID = 2; + uint32 groupID = 3; + uint64 leaderGUID = 4; + uint32 groupType = 5; + uint32 difficulty = 6; + uint32 raidDifficulty = 7; + repeated MaterializedLfgGroupMember members = 8; +} + +message RegisterMaterializedLfgGroupResponse { + string api = 1; +} + +message UpdateMemberStateRequest { + string api = 1; + uint32 realmID = 2; + uint64 memberGUID = 3; + bool online = 4; + uint32 level = 5; + uint32 classID = 6; + uint32 zoneID = 7; + uint32 mapID = 8; + uint32 health = 9; + uint32 maxHealth = 10; + uint32 powerType = 11; + uint32 power = 12; + uint32 maxPower = 13; + optional uint32 instanceID = 14; +} + +message UpdateMemberStateResponse { + string api = 1; +} + +message PlayerStateSnapshot { + uint64 memberGUID = 1; + bool online = 2; + uint32 level = 3; + uint32 classID = 4; + uint32 zoneID = 5; + uint32 mapID = 6; + uint32 health = 7; + uint32 maxHealth = 8; + uint32 powerType = 9; + uint32 power = 10; + uint32 maxPower = 11; + uint64 timestampMs = 12; + bool aurasKnown = 13; + repeated PlayerAuraSnapshot auras = 14; + optional uint32 instanceID = 15; + optional bool dead = 16; + optional bool ghost = 17; +} + +message PlayerAuraSnapshot { + uint32 slot = 1; + uint32 spellID = 2; + uint32 flags = 3; +} + +message BulkUpdateMemberStatesRequest { + string api = 1; + uint32 realmID = 2; + string sourceGatewayID = 3; + string sourceWorldserverID = 4; + repeated PlayerStateSnapshot snapshots = 5; +} + +message BulkUpdateMemberStatesResponse { + string api = 1; +} + +message ResetInstanceRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; + uint32 difficulty = 5; +} + +message ResetInstanceResponse { + string api = 1; +} + +message SetInstanceBindExtensionRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 mapID = 4; + uint32 difficulty = 5; + bool extended = 6; +} + +message SetInstanceBindExtensionResponse { + string api = 1; +} diff --git a/api/proto/v1/guilds/guilds.proto b/api/proto/v1/guilds/guilds.proto index c4525f0..fe09e55 100644 --- a/api/proto/v1/guilds/guilds.proto +++ b/api/proto/v1/guilds/guilds.proto @@ -28,6 +28,24 @@ service GuildService { rpc DemoteMember(PromoteDemoteParams) returns (PromoteDemoteResponse); rpc SendGuildMessage(SendGuildMessageParams) returns (SendGuildMessageResponse); + + rpc GetGuildPetition(GetGuildPetitionParams) returns (GetGuildPetitionResponse); + rpc OfferGuildPetition(OfferGuildPetitionParams) returns (OfferGuildPetitionResponse); + rpc SignGuildPetition(SignGuildPetitionParams) returns (SignGuildPetitionResponse); + + rpc GetGuildBank(GetGuildBankParams) returns (GetGuildBankResponse); + rpc GetGuildBankLog(GetGuildBankLogParams) returns (GetGuildBankLogResponse); + rpc GetGuildBankTabText(GetGuildBankTabTextParams) returns (GetGuildBankTabTextResponse); + rpc UpdateGuildBankTab(UpdateGuildBankTabParams) returns (GuildBankActionResponse); + rpc SetGuildBankTabText(SetGuildBankTabTextParams) returns (GuildBankActionResponse); + rpc BuyGuildBankTab(BuyGuildBankTabParams) returns (BuyGuildBankTabResponse); + rpc DepositGuildBankMoney(DepositGuildBankMoneyParams) returns (GuildBankActionResponse); + rpc WithdrawGuildBankMoney(WithdrawGuildBankMoneyParams) returns (GuildBankActionResponse); + rpc RollbackGuildBankMoneyWithdraw(RollbackGuildBankMoneyWithdrawParams) returns (GuildBankActionResponse); + rpc DepositGuildBankItem(DepositGuildBankItemParams) returns (GuildBankItemMutationResponse); + rpc WithdrawGuildBankItem(WithdrawGuildBankItemParams) returns (GuildBankItemMutationResponse); + rpc RollbackGuildBankItemWithdraw(RollbackGuildBankItemWithdrawParams) returns (GuildBankItemMutationResponse); + rpc MoveGuildBankItem(MoveGuildBankItemParams) returns (GuildBankItemMutationResponse); } message GetInfoParams { @@ -73,12 +91,21 @@ message GetRosterInfoResponse { int64 logoutTime = 9; string note = 10; string officerNote = 11; + repeated uint32 bankWithdraw = 12; } message Rank { uint32 id = 1; uint32 flags = 2; uint32 goldLimit = 3; + + message BankTabRight { + uint32 tabID = 1; + uint32 flags = 2; + uint32 withdrawItemLimit = 3; + } + + repeated BankTabRight bankTabRights = 4; } message Guild { @@ -88,6 +115,7 @@ message GetRosterInfoResponse { repeated Member members = 4; repeated Rank ranks = 5; + uint32 purchasedBankTabs = 6; }; Guild guild = 2; @@ -100,6 +128,8 @@ message InviteMemberParams { uint64 inviter = 3; uint64 invitee = 4; string inviteeName = 5; + uint32 inviteeRace = 6; + bool allowCrossFaction = 7; } message InviteMemberResponse { @@ -128,6 +158,7 @@ message InviteAcceptedParams { } Character character = 3; + bool allowCrossFaction = 4; } message InviteAcceptedResponse { @@ -198,6 +229,14 @@ message RankUpdateParams { string rankName = 5; uint32 rights = 6; uint32 moneyPerDay = 7; + + message BankTabRight { + uint32 tabID = 1; + uint32 flags = 2; + uint32 withdrawItemLimit = 3; + } + + repeated BankTabRight bankTabRights = 8; } message RankUpdateResponse { @@ -243,8 +282,308 @@ message SendGuildMessageParams { bool isOfficerMessage = 4; string message = 5; uint32 language = 6; + uint32 senderChatTag = 7; } message SendGuildMessageResponse { string api = 1; } + +message GuildPetitionSignature { + uint64 playerGUID = 1; + uint32 playerAccount = 2; +} + +message GuildPetition { + uint64 petitionGUID = 1; + uint32 petitionID = 2; + uint64 ownerGUID = 3; + string name = 4; + uint32 type = 5; + repeated GuildPetitionSignature signatures = 6; +} + +message GetGuildPetitionParams { + string api = 1; + uint32 realmID = 2; + uint64 petitionGUID = 3; +} + +message GetGuildPetitionResponse { + string api = 1; + GuildPetition petition = 2; +} + +message OfferGuildPetitionParams { + string api = 1; + uint32 realmID = 2; + uint64 ownerGUID = 3; + uint64 targetGUID = 4; + string targetName = 5; + uint64 petitionGUID = 6; +} + +message OfferGuildPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + NotFound = 1; + NotOwner = 2; + TargetNotFound = 3; + TargetAlreadyInGuild = 4; + TargetAlreadyInvited = 5; + Failed = 6; + } + + Status status = 2; +} + +message SignGuildPetitionParams { + string api = 1; + uint32 realmID = 2; + uint64 signerGUID = 3; + string signerName = 4; + uint32 signerAccountID = 5; + uint32 signerGuildID = 6; + uint64 petitionGUID = 7; +} + +message SignGuildPetitionResponse { + string api = 1; + + enum Status { + Ok = 0; + AlreadySigned = 1; + AlreadyInGuild = 2; + CantSignOwn = 3; + NotServer = 4; + NotFound = 5; + Full = 6; + Failed = 7; + AlreadyInvited = 8; + } + + Status status = 2; +} + +message GuildBankSocketEnchant { + uint32 socketIndex = 1; + uint32 socketEnchantID = 2; +} + +message GuildBankItem { + uint64 itemGUID = 1; + uint32 entry = 2; + uint32 slot = 3; + uint32 count = 4; + uint32 flags = 5; + int32 randomPropertyID = 6; + int32 randomPropertySeed = 7; + uint32 durability = 8; + uint32 enchantmentID = 9; + repeated GuildBankSocketEnchant socketEnchants = 10; + uint32 charges = 11; + string text = 12; +} + +message GuildBankTab { + uint32 tabID = 1; + string name = 2; + string icon = 3; + string text = 4; + repeated GuildBankItem items = 5; +} + +message GuildBankStatus { + enum Status { + Ok = 0; + Failed = 1; + GuildNotFound = 2; + NotInGuild = 3; + NotEnoughRights = 4; + InvalidTab = 5; + InvalidSlot = 6; + NotEnoughMoney = 7; + BankFull = 8; + WithdrawLimit = 9; + ItemNotFound = 10; + } +} + +message GetGuildBankParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + bool fullUpdate = 6; +} + +message GetGuildBankResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint64 money = 3; + uint32 tabID = 4; + int32 withdrawalsRemaining = 5; + bool fullUpdate = 6; + repeated GuildBankTab tabs = 7; + repeated GuildBankItem items = 8; +} + +message GetGuildBankLogParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; +} + +message GuildBankLogEntry { + uint64 playerGUID = 1; + uint32 timeOffset = 2; + int32 entryType = 3; + uint32 money = 4; + int32 itemID = 5; + int32 count = 6; + int32 otherTab = 7; +} + +message GetGuildBankLogResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 tabID = 3; + repeated GuildBankLogEntry entries = 4; +} + +message GetGuildBankTabTextParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; +} + +message GetGuildBankTabTextResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 tabID = 3; + string text = 4; +} + +message UpdateGuildBankTabParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + string name = 6; + string icon = 7; +} + +message SetGuildBankTabTextParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + string text = 6; +} + +message BuyGuildBankTabParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; +} + +message BuyGuildBankTabResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 tabCost = 3; +} + +message DepositGuildBankMoneyParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 amount = 5; +} + +message WithdrawGuildBankMoneyParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 amount = 5; + bool repair = 6; +} + +message RollbackGuildBankMoneyWithdrawParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 amount = 5; + bool repair = 6; + uint32 logGUID = 7; +} + +message DepositGuildBankItemParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + uint32 slotID = 6; + GuildBankItem item = 7; +} + +message WithdrawGuildBankItemParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + uint32 slotID = 6; + uint32 count = 7; +} + +message RollbackGuildBankItemWithdrawParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 tabID = 5; + uint32 slotID = 6; + GuildBankItem item = 7; + uint32 logGUID = 8; +} + +message MoveGuildBankItemParams { + string api = 1; + uint32 realmID = 2; + uint64 guildID = 3; + uint64 memberGUID = 4; + uint32 sourceTabID = 5; + uint32 sourceSlotID = 6; + uint32 destinationTabID = 7; + uint32 destinationSlotID = 8; + uint32 count = 9; +} + +message GuildBankActionResponse { + string api = 1; + GuildBankStatus.Status status = 2; + uint32 logGUID = 3; +} + +message GuildBankItemMutationResponse { + string api = 1; + GuildBankStatus.Status status = 2; + GuildBankItem item = 3; + repeated uint32 changedSlots = 4; + uint32 logGUID = 5; +} diff --git a/api/proto/v1/matchmaking/matchmaking.proto b/api/proto/v1/matchmaking/matchmaking.proto index a7e8c6f..4cc142e 100644 --- a/api/proto/v1/matchmaking/matchmaking.proto +++ b/api/proto/v1/matchmaking/matchmaking.proto @@ -12,6 +12,14 @@ service MatchmakingService { rpc PlayerLeftBattleground(PlayerLeftBattlegroundRequest) returns (PlayerLeftBattlegroundResponse); rpc PlayerJoinedBattleground(PlayerJoinedBattlegroundRequest) returns (PlayerJoinedBattlegroundResponse); rpc BattlegroundStatusChanged(BattlegroundStatusChangedRequest) returns (BattlegroundStatusChangedResponse); + rpc FinishRatedArenaMatch(FinishRatedArenaMatchRequest) returns (FinishRatedArenaMatchResponse); + + rpc JoinLfg(JoinLfgRequest) returns (JoinLfgResponse); + rpc LeaveLfg(LeaveLfgRequest) returns (LeaveLfgResponse); + rpc SetLfgRoles(SetLfgRolesRequest) returns (SetLfgRolesResponse); + rpc AnswerLfgProposal(AnswerLfgProposalRequest) returns (AnswerLfgProposalResponse); + rpc LfgStatus(LfgStatusRequest) returns (LfgStatusResponse); + rpc CompleteLfgDungeon(CompleteLfgDungeonRequest) returns (CompleteLfgDungeonResponse); } enum PVPTeamID { @@ -38,6 +46,8 @@ message EnqueueToBattlegroundRequest { uint32 bgTypeID = 6; PVPTeamID teamID = 7; + uint32 arenaType = 8; + bool isRated = 9; } message EnqueueToBattlegroundResponse { @@ -72,6 +82,7 @@ message BattlegroundQueueDataForPlayerResponse { uint32 battlegroupID = 3; string gameserverAddress = 4; string gameserverGRPCAddress = 5; + PVPTeamID assignedTeamID = 6; } message QueueSlot { @@ -129,4 +140,212 @@ message BattlegroundStatusChangedRequest { message BattlegroundStatusChangedResponse { string api = 1; -} \ No newline at end of file +} + +enum MatchmakingArenaTeamMutationStatus { + MATCHMAKING_ARENA_TEAM_MUTATION_OK = 0; + MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND = 1; + MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH = 2; + MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE = 3; + MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS = 4; + MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM = 5; + MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL = 6; + MATCHMAKING_ARENA_TEAM_MUTATION_FAILED = 7; + MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME = 8; +} + +message RatedArenaParticipant { + PVPTeamID team = 1; + uint64 playerGUID = 2; +} + +message RatedArenaTeamScore { + uint32 realmID = 1; + uint32 arenaTeamID = 2; + string teamName = 3; + int32 ratingChange = 4; + uint32 matchmakerRating = 5; +} + +message RatedArenaMemberResult { + PVPTeamID team = 1; + uint64 playerGUID = 2; + uint32 personalRating = 3; + uint32 weekGames = 4; + uint32 seasonGames = 5; + uint32 weekWins = 6; + uint32 seasonWins = 7; + uint32 matchmakerRating = 8; +} + +message FinishRatedArenaMatchRequest { + string api = 1; + + uint32 ownerRealmID = 2; + bool isCrossRealm = 3; + uint32 instanceID = 4; + uint32 arenaType = 5; + PVPTeamID winnerTeam = 6; + bool validArena = 7; + + uint32 allianceArenaTeamID = 8; + uint32 hordeArenaTeamID = 9; + uint32 allianceArenaMatchmakerRating = 10; + uint32 hordeArenaMatchmakerRating = 11; + repeated RatedArenaParticipant participants = 12; +} + +message FinishRatedArenaMatchResponse { + string api = 1; + MatchmakingArenaTeamMutationStatus status = 2; + RatedArenaTeamScore allianceScore = 3; + RatedArenaTeamScore hordeScore = 4; + repeated RatedArenaMemberResult memberResults = 5; +} + +enum LfgState { + LFG_STATE_NONE = 0; + LFG_STATE_ROLECHECK = 1; + LFG_STATE_QUEUED = 2; + LFG_STATE_PROPOSAL = 3; + LFG_STATE_BOOT = 4; + LFG_STATE_DUNGEON = 5; + LFG_STATE_FINISHED_DUNGEON = 6; + LFG_STATE_RAIDBROWSER = 7; +} + +enum LfgProposalState { + LFG_PROPOSAL_INITIATING = 0; + LFG_PROPOSAL_FAILED = 1; + LFG_PROPOSAL_SUCCESS = 2; +} + +enum LfgJoinResult { + LFG_JOIN_OK = 0; + LFG_JOIN_FAILED = 1; + LFG_JOIN_GROUP_FULL = 2; + LFG_JOIN_INTERNAL_ERROR = 4; + LFG_JOIN_NOT_MEET_REQS = 5; + LFG_JOIN_PARTY_NOT_MEET_REQS = 6; + LFG_JOIN_MIXED_RAID_DUNGEON = 7; + LFG_JOIN_MULTI_REALM = 8; + LFG_JOIN_DISCONNECTED = 9; + LFG_JOIN_PARTY_INFO_FAILED = 10; + LFG_JOIN_DUNGEON_INVALID = 11; + LFG_JOIN_DESERTER = 12; + LFG_JOIN_PARTY_DESERTER = 13; + LFG_JOIN_RANDOM_COOLDOWN = 14; + LFG_JOIN_PARTY_RANDOM_COOLDOWN = 15; + LFG_JOIN_TOO_MANY_MEMBERS = 16; + LFG_JOIN_USING_BG_SYSTEM = 17; +} + +message LfgMember { + uint64 playerGUID = 1; + uint32 roles = 2; + bool leader = 3; + string worldserverID = 4; + uint32 realmID = 5; + uint32 queueLeaderRealmID = 6; + uint64 queueLeaderGUID = 7; +} + +message LfgProposalMember { + uint64 playerGUID = 1; + uint32 selectedRoles = 2; + uint32 assignedRole = 3; + bool answered = 4; + bool accepted = 5; + uint32 realmID = 6; +} + +message LfgStatusData { + LfgState state = 1; + uint32 proposalID = 2; + LfgProposalState proposalState = 3; + uint32 dungeonEntry = 4; + repeated uint32 selectedDungeons = 5; + repeated LfgMember queuedMembers = 6; + repeated LfgProposalMember proposalMembers = 7; + uint32 queuedTimeMilliseconds = 8; + uint32 tanksNeeded = 9; + uint32 healersNeeded = 10; + uint32 damageNeeded = 11; +} + +message JoinLfgRequest { + string api = 1; + uint32 realmID = 2; + uint64 leaderGUID = 3; + repeated LfgMember members = 4; + repeated uint32 dungeonEntries = 5; + string comment = 6; +} + +message JoinLfgResponse { + string api = 1; + LfgJoinResult result = 2; + LfgStatusData status = 3; +} + +message LeaveLfgRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message LeaveLfgResponse { + string api = 1; +} + +message SetLfgRolesRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 roles = 4; +} + +message SetLfgRolesResponse { + string api = 1; + LfgStatusData status = 2; +} + +message AnswerLfgProposalRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; + uint32 proposalID = 4; + bool accept = 5; +} + +message AnswerLfgProposalResponse { + string api = 1; + LfgStatusData status = 2; +} + +message LfgStatusRequest { + string api = 1; + uint32 realmID = 2; + uint64 playerGUID = 3; +} + +message LfgStatusResponse { + string api = 1; + LfgStatusData status = 2; +} + +message CompleteLfgDungeonPlayer { + uint32 realmID = 1; + uint64 playerGUID = 2; +} + +message CompleteLfgDungeonRequest { + string api = 1; + uint32 completedDungeonEntry = 2; + uint32 selectedDungeonEntry = 3; + repeated CompleteLfgDungeonPlayer players = 4; +} + +message CompleteLfgDungeonResponse { + string api = 1; +} diff --git a/api/proto/v1/servers-registry/registry.proto b/api/proto/v1/servers-registry/registry.proto index 3157821..b8e4ca2 100644 --- a/api/proto/v1/servers-registry/registry.proto +++ b/api/proto/v1/servers-registry/registry.proto @@ -14,6 +14,8 @@ service ServersRegistryService { rpc RegisterGateway(RegisterGatewayRequest) returns (RegisterGatewayResponse); rpc GatewaysForRealms(GatewaysForRealmsRequest) returns (GatewaysForRealmsResponse); rpc ListGatewaysForRealm(ListGatewaysForRealmRequest) returns (ListGatewaysForRealmResponse); + + rpc RegisterMatchmakingServer(RegisterMatchmakingServerRequest) returns (RegisterMatchmakingServerResponse); } // @@ -185,6 +187,24 @@ message ListGatewaysForRealmResponse { repeated GatewayServerDetailed gateways = 2; } +// +// RegisterMatchmakingServer +// +message RegisterMatchmakingServerRequest { + string api = 1; + + uint32 servicePort = 2; + uint32 healthPort = 3; + string preferredHostName = 4; + int64 startedAtUnixMs = 5; +} + +message RegisterMatchmakingServerResponse { + string api = 1; + + string id = 2; +} + // // Shared // @@ -193,5 +213,5 @@ message Server { uint32 realmID = 2; bool isCrossRealm = 3; string grpcAddress = 4; + string id = 5; } - diff --git a/api/proto/v1/worldserver/worldserver.proto b/api/proto/v1/worldserver/worldserver.proto index d58e80d..028fa27 100644 --- a/api/proto/v1/worldserver/worldserver.proto +++ b/api/proto/v1/worldserver/worldserver.proto @@ -8,6 +8,7 @@ option go_package = "gen/worldserver/pb"; service WorldServerService { // Items rpc GetPlayerItemsByGuids(GetPlayerItemsByGuidsRequest) returns (GetPlayerItemsByGuidsResponse); + rpc TakePlayerItemByPos(TakePlayerItemByPosRequest) returns (TakePlayerItemByPosResponse); rpc RemoveItemsWithGuidsFromPlayer(RemoveItemsWithGuidsFromPlayerRequest) returns (RemoveItemsWithGuidsFromPlayerResponse); rpc AddExistingItemToPlayer(AddExistingItemToPlayerRequest) returns (AddExistingItemToPlayerResponse); @@ -24,6 +25,17 @@ service WorldServerService { rpc AddPlayersToBattleground(AddPlayersToBattlegroundRequest) returns (AddPlayersToBattlegroundResponse); rpc CanPlayerJoinBattlegroundQueue(CanPlayerJoinBattlegroundQueueRequest) returns (CanPlayerJoinBattlegroundQueueResponse); rpc CanPlayerTeleportToBattleground(CanPlayerTeleportToBattlegroundRequest) returns (CanPlayerTeleportToBattlegroundResponse); + + // LFG + rpc GetLfgPlayerLockInfo(GetLfgPlayerLockInfoRequest) returns (GetLfgPlayerLockInfoResponse); + rpc GetLfgPlayerInfo(GetLfgPlayerInfoRequest) returns (GetLfgPlayerInfoResponse); + rpc GetLfgDungeonInfo(GetLfgDungeonInfoRequest) returns (GetLfgDungeonInfoResponse); + rpc TeleportLfgPlayer(TeleportLfgPlayerRequest) returns (TeleportLfgPlayerResponse); + rpc SetLfgBootVote(SetLfgBootVoteRequest) returns (SetLfgBootVoteResponse); + rpc MaterializeLfgProposal(MaterializeLfgProposalRequest) returns (MaterializeLfgProposalResponse); + + // Guilds + rpc CreateGuild(CreateGuildRequest) returns (CreateGuildResponse); } // GetPlayerItemsByGuids @@ -47,12 +59,53 @@ message GetPlayerItemsByGuidsResponse { uint32 count = 7; uint32 flags = 8; uint32 durability = 9; - uint32 randomPropertyID = 10; + int32 randomPropertyID = 10; string text = 11; }; repeated Item items = 2; } +// TakePlayerItemByPos +message TakePlayerItemByPosRequest { + string api = 1; + + uint64 playerGuid = 2; + uint32 bagSlot = 3; + uint32 slot = 4; + uint32 count = 5; + + uint64 assignToPlayerGuid = 6; +} + +message TakePlayerItemByPosResponse { + string api = 1; + + enum Status { + Success = 0; + PlayerNotFound = 1; + ItemNotFound = 2; + ItemNotTradable = 3; + Failed = 4; + } + + message Item { + uint64 guid = 1; + uint32 entry = 2; + uint64 owner = 3; + uint32 bagSlot = 4; + uint32 slot = 5; + bool isTradable = 6; + uint32 count = 7; + uint32 flags = 8; + uint32 durability = 9; + int32 randomPropertyID = 10; + string text = 11; + }; + + Status status = 2; + Item item = 3; +} + // RemoveItemsWithGuidsFromPlayer message RemoveItemsWithGuidsFromPlayerRequest { string api = 1; @@ -79,12 +132,15 @@ message AddExistingItemToPlayerRequest { uint32 count = 7; uint32 flags = 8; uint32 durability = 9; - uint32 randomPropertyID = 10; + int32 randomPropertyID = 10; string text = 11; } uint64 playerGuid = 2; Item item = 3; + bool storeAtPos = 4; + uint32 bagSlot = 5; + uint32 slot = 6; } message AddExistingItemToPlayerResponse { @@ -177,13 +233,18 @@ message StartBattlegroundRequest { string api = 1; BattlegroundType battlegroundTypeID = 2; - uint32 arenaType = 3; // Arenas not supported yet. - bool isRated = 4; // Arenas not supported yet. + uint32 arenaType = 3; + bool isRated = 4; uint32 mapID = 5; uint32 bracketLvl = 6; repeated uint64 playersToAddAlliance = 7; repeated uint64 playersToAddHorde = 8; + + uint32 allianceArenaTeamID = 9; + uint32 hordeArenaTeamID = 10; + uint32 allianceArenaMatchmakerRating = 11; + uint32 hordeArenaMatchmakerRating = 12; } message StartBattlegroundResponse { @@ -241,3 +302,184 @@ message CanPlayerTeleportToBattlegroundResponse { Status status = 2; } + +message LfgDungeonLock { + uint32 dungeonEntry = 1; + uint32 lockStatus = 2; +} + +message GetLfgPlayerLockInfoRequest { + string api = 1; + uint64 playerGUID = 2; + repeated uint32 dungeonEntries = 3; +} + +message GetLfgPlayerLockInfoResponse { + string api = 1; + + enum Status { + Success = 0; + PlayerNotFound = 1; + InternalError = 2; + } + + Status status = 2; + repeated LfgDungeonLock locks = 3; + // AzerothCore LfgJoinResult for player-wide join restrictions not represented + // as per-dungeon lock rows, such as deserter or random dungeon cooldown. + uint32 joinResult = 4; + // AzerothCore DBC-filtered and canonicalized dungeon entries accepted from + // the client selection. Gateway must queue these instead of raw client slots. + repeated uint32 validDungeonEntries = 5; +} + +message LfgRewardItem { + uint32 itemID = 1; + uint32 displayID = 2; + uint32 count = 3; +} + +message LfgRandomDungeonInfo { + uint32 dungeonEntry = 1; + bool done = 2; + uint32 rewardMoney = 3; + uint32 rewardXP = 4; + uint32 rewardUnknown1 = 5; + uint32 rewardUnknown2 = 6; + repeated LfgRewardItem rewardItems = 7; +} + +message GetLfgPlayerInfoRequest { + string api = 1; + uint64 playerGUID = 2; +} + +message GetLfgPlayerInfoResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + PlayerNotFound = 2; + InternalError = 3; + } + + Status status = 2; + repeated LfgRandomDungeonInfo randomDungeons = 3; + repeated LfgDungeonLock locks = 4; +} + +message GetLfgDungeonInfoRequest { + string api = 1; + uint32 dungeonEntry = 2; +} + +message GetLfgDungeonInfoResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + DungeonNotFound = 2; + InternalError = 3; + } + + Status status = 2; + uint32 dungeonEntry = 3; + uint32 dungeonID = 4; + uint32 mapID = 5; + uint32 typeID = 6; + uint32 difficulty = 7; +} + +message TeleportLfgPlayerRequest { + string api = 1; + uint64 playerGUID = 2; + bool out = 3; + uint32 dungeonEntry = 4; +} + +message TeleportLfgPlayerResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + PlayerNotFound = 2; + InternalError = 3; + } + + Status status = 2; +} + +message SetLfgBootVoteRequest { + string api = 1; + uint64 playerGUID = 2; + bool agree = 3; +} + +message SetLfgBootVoteResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + PlayerNotFound = 2; + InternalError = 3; + } + + Status status = 2; +} + +// MaterializeLfgProposal +message MaterializeLfgProposalRequest { + string api = 1; + + message Member { + uint64 playerGUID = 1; + uint32 selectedRoles = 2; + uint32 assignedRole = 3; + uint64 queueLeaderGUID = 4; + } + + uint32 realmID = 2; + uint32 proposalID = 3; + uint32 dungeonEntry = 4; + uint64 leaderGUID = 5; + repeated Member members = 6; +} + +message MaterializeLfgProposalResponse { + string api = 1; + + enum Status { + Success = 0; + NoHandler = 1; + DungeonNotFound = 2; + NoLocalPlayer = 3; + InternalError = 4; + } + + Status status = 2; +} + +message CreateGuildRequest { + string api = 1; + uint64 leaderGuid = 2; + string guildName = 3; +} + +message CreateGuildResponse { + string api = 1; + + enum Status { + Success = 0; + NameExists = 1; + InvalidName = 2; + LeaderNotFound = 3; + InternalError = 4; + } + + Status status = 2; + uint64 guildId = 3; +} diff --git a/apps/authserver/crypto/srp6/srp6.go b/apps/authserver/crypto/srp6/srp6.go index 400f37e..4206e24 100644 --- a/apps/authserver/crypto/srp6/srp6.go +++ b/apps/authserver/crypto/srp6/srp6.go @@ -30,7 +30,10 @@ type SRP6 struct { } func (s *SRP6) DataForClient() (B []byte, g []byte, N []byte, _s []byte) { - B, g, N, _s = s._B, bigIntToBytesLittleEndian(_g), bigIntToBytesLittleEndian(_N), s._s + B = fixedLittleEndianBytes(s._B, 32) + g = bigIntToBytesLittleEndian(_g) + N = fixedLittleEndianBytes(bigIntToBytesLittleEndian(_N), 32) + _s = fixedLittleEndianBytes(s._s, 32) return } @@ -41,7 +44,7 @@ func NewSRP(username string, salt []byte, verifier []byte) *SRP6 { b = randBytesProvider(b) _b := bigIntFromLittleEndian(b) - usrHash := sha1.Sum([]byte(username)) + usrHash := sha1.Sum([]byte(normalizeAccountName(username))) return &SRP6{ _I: usrHash[:], @@ -144,10 +147,20 @@ func _B(b, v *big.Int) []byte { } func ReconnectChallengeValid(username string, R1, R2, reconnectProof, K []byte) bool { - hash := sha1.Sum(slices.AppendBytes([]byte(username), R1, reconnectProof, K)) + hash := sha1.Sum(slices.AppendBytes([]byte(normalizeAccountName(username)), R1, reconnectProof, K)) return slices.SameBytes(R2, hash[:]) } +func normalizeAccountName(username string) string { + normalized := []rune(username) + for i, r := range normalized { + if r >= 'a' && r <= 'z' { + normalized[i] = r - ('a' - 'A') + } + } + return string(normalized) +} + func switchEndian(b []byte) []byte { r := make([]byte, len(b)) copy(r, b) @@ -161,6 +174,18 @@ func bigIntToBytesLittleEndian(i *big.Int) []byte { return switchEndian(i.Bytes()) } +func fixedLittleEndianBytes(b []byte, size int) []byte { + if len(b) == size { + out := make([]byte, size) + copy(out, b) + return out + } + + out := make([]byte, size) + copy(out, b) + return out +} + func bigIntFromLittleEndian(b []byte) *big.Int { u := &big.Int{} u.SetBytes(switchEndian(b)) diff --git a/apps/authserver/service/realm.go b/apps/authserver/service/realm.go index bd31f68..7eb53ed 100644 --- a/apps/authserver/service/realm.go +++ b/apps/authserver/service/realm.go @@ -2,6 +2,7 @@ package service import ( "context" + "time" "github.com/walkline/ToCloud9/apps/authserver/repo" "github.com/walkline/ToCloud9/gen/servers-registry/pb" @@ -12,6 +13,10 @@ const ( RealmFlagVersionMismatch = 0x1 RealmFlagOffline = 0x2 RealmFlagRecommended = 0x20 + + offlineRealmAddress = "0.0.0.0:0" + + realmGatewayLookupTimeout = 2 * time.Second ) type RealmListItem struct { @@ -54,17 +59,23 @@ func (r *realmServiceImpl) RealmListForAccount(ctx context.Context, account *rep realmIDs = append(realmIDs, realm.ID) } - gatewaysResp, err := r.servRegistry.GatewaysForRealms(ctx, &pb.GatewaysForRealmsRequest{ + gatewayCtx := ctx + var cancel context.CancelFunc + if deadline, ok := ctx.Deadline(); !ok || time.Until(deadline) > realmGatewayLookupTimeout { + gatewayCtx, cancel = context.WithTimeout(ctx, realmGatewayLookupTimeout) + defer cancel() + } + + gatewaysResp, err := r.servRegistry.GatewaysForRealms(gatewayCtx, &pb.GatewaysForRealmsRequest{ Api: "v1.0", RealmIDs: realmIDs, }) - if err != nil { - return nil, err - } gatewaysAddressesMap := map[uint32]string{} - for _, lb := range gatewaysResp.Gateways { - gatewaysAddressesMap[lb.RealmID] = lb.Address + if err == nil && gatewaysResp != nil { + for _, lb := range gatewaysResp.Gateways { + gatewaysAddressesMap[lb.RealmID] = lb.Address + } } chars, err := r.realmRepo.CountCharsPerRealmByAccountID(ctx, account.ID) @@ -80,8 +91,9 @@ func (r *realmServiceImpl) RealmListForAccount(ctx context.Context, account *rep result := []RealmListItem{} for _, realm := range realms { address, found := gatewaysAddressesMap[realm.ID] - if !found { + if !found || address == "" { realm.Flag |= RealmFlagOffline + address = offlineRealmAddress } else { realm.Flag &^= RealmFlagOffline } diff --git a/apps/authserver/session/authsession.go b/apps/authserver/session/authsession.go index 35b2a79..d7d1774 100644 --- a/apps/authserver/session/authsession.go +++ b/apps/authserver/session/authsession.go @@ -6,6 +6,7 @@ import ( "crypto/rand" "encoding/binary" "errors" + "fmt" "io" "io/ioutil" "net" @@ -56,6 +57,15 @@ type CommandData struct { Size int } +const ( + authChallengeLoginSizeOverhead = 30 + maxAuthChallengeLoginLen = 16 +) + +// Matches AzerothCore authserver's VersionChallenge constant for 3.3.5a auth +// challenge and reconnect challenge responses. +var authVersionChallenge = [16]byte{0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1} + var Commands = map[Command]Status{ CommandLogonChallenge: StatusChallenge, CommandLogonProof: StatusLogonProof, @@ -172,10 +182,13 @@ func (s *AuthSession) HandleReconnectChallenge() error { if err != nil { return err } + if err = validateAuthChallengeLogin(d.Size, d.ILen); err != nil { + return err + } login := make([]byte, d.ILen) - _, err = s.conn.Read(login) + _, err = io.ReadFull(s.conn, login) if err != nil { return err } @@ -189,6 +202,10 @@ func (s *AuthSession) HandleReconnectChallenge() error { if err != nil { return err } + if s.account == nil || len(s.account.SessionKeyAuth) == 0 { + s.logger.Debug().Msg("Reconnect challenge rejected: account not found or missing session key") + return s.Write(CommandReconnectChallenge, AuthResultUnkAccount) + } s.reconnectProof = make([]byte, 16) _, err = rand.Read(s.reconnectProof) @@ -202,7 +219,7 @@ func (s *AuthSession) HandleReconnectChallenge() error { CommandReconnectChallenge, AuthResultSuccess, s.reconnectProof, - []byte{0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1}, + authVersionChallenge[:], ) if err != nil { return err @@ -269,10 +286,13 @@ func (s *AuthSession) HandleLogonChallenge() error { if err != nil { return err } + if err = validateAuthChallengeLogin(d.Size, d.ILen); err != nil { + return err + } login := make([]byte, d.ILen) - _, err = s.conn.Read(login) + _, err = io.ReadFull(s.conn, login) if err != nil { return err } @@ -288,7 +308,7 @@ func (s *AuthSession) HandleLogonChallenge() error { } if s.account == nil { - return s.Write(CommandLogonProof, AuthResultUnkAccount, uint16(0)) + return s.Write([]byte{byte(CommandLogonChallenge), 0}, AuthResultUnkAccount) } s.srp = srp6.NewSRP(string(login), s.account.Salt, s.account.Verifier) @@ -303,7 +323,7 @@ func (s *AuthSession) HandleLogonChallenge() error { byte(32), N, _s, - []byte{0xBA, 0xA3, 0x1E, 0x99, 0xA0, 0x0B, 0x21, 0x57, 0xFC, 0x37, 0x3F, 0xB3, 0x69, 0xCD, 0xD2, 0xF1}, + authVersionChallenge[:], byte(0), ) if err != nil { @@ -441,8 +461,18 @@ func (s *AuthSession) Write(v ...interface{}) error { return s.write(s.conn, v...) } +func validateAuthChallengeLogin(size uint16, loginLen uint8) error { + if loginLen == 0 || loginLen > maxAuthChallengeLoginLen { + return fmt.Errorf("invalid auth challenge login length: %d", loginLen) + } + if int(size) != authChallengeLoginSizeOverhead+int(loginLen) { + return fmt.Errorf("invalid auth challenge size: %d for login length %d", size, loginLen) + } + return nil +} + func (s *AuthSession) write(writer io.Writer, v ...interface{}) error { - var err error + packet := new(bytes.Buffer) for i := range v { d := v[i] switch d.(type) { @@ -450,10 +480,20 @@ func (s *AuthSession) write(writer io.Writer, v ...interface{}) error { d = append([]byte(d.(string)), 0) } - err = binary.Write(writer, binary.LittleEndian, d) + err := binary.Write(packet, binary.LittleEndian, d) if err != nil { return err } } + if packet.Len() == 0 { + return nil + } + n, err := writer.Write(packet.Bytes()) + if err != nil { + return err + } + if n != packet.Len() { + return io.ErrShortWrite + } return nil } diff --git a/apps/guidserver/service/guid.go b/apps/guidserver/service/guid.go index a419710..3ad9a50 100644 --- a/apps/guidserver/service/guid.go +++ b/apps/guidserver/service/guid.go @@ -87,7 +87,7 @@ func NewGuidService(ctx context.Context, mysql repo.MaxGuidProvider, redisStorag return nil, err } - err = redisStorage.SetMaxGuidForItems(ctx, realmID, max) + err = redisStorage.SetMaxGuidForInstances(ctx, realmID, max) if err != nil { return nil, err } diff --git a/apps/servers-registry/cmd/servers-registry/main.go b/apps/servers-registry/cmd/servers-registry/main.go index 62220c9..9a6a3b4 100644 --- a/apps/servers-registry/cmd/servers-registry/main.go +++ b/apps/servers-registry/cmd/servers-registry/main.go @@ -26,6 +26,8 @@ import ( "github.com/walkline/ToCloud9/shared/healthandmetrics" ) +const gameServerMetricsReadTimeout = 6 * time.Second + func main() { mainContext, cancel := context.WithCancel(context.Background()) defer cancel() @@ -69,9 +71,10 @@ func main() { healthChecker := healthandmetrics.NewHealthChecker(time.Second*4, 4, healthandmetrics.NewHttpHealthCheckProcessor(time.Second*15)) go healthChecker.Start() - metricsConsumer := healthandmetrics.NewMetricsConsumer(time.Second*5, 3, healthandmetrics.NewHttpPrometheusMetricsReader(time.Second)) + metricsConsumer := healthandmetrics.NewMetricsConsumer(time.Second*5, 3, healthandmetrics.NewHttpPrometheusMetricsReader(gameServerMetricsReadTimeout)) go metricsConsumer.Start() + serverRegistryProducer := events.NewServerRegistryProducerNatsJSON(nc, "0.0.1") supportedRealms := conf.RealmsID gameServersService, err := service.NewGameServer( mainContext, @@ -79,7 +82,7 @@ func main() { healthChecker, metricsConsumer, binpack.NewBinPackBalancer(binpack.DefaultMapsWeight), // TODO: implement providing custom maps weight list. - events.NewServerRegistryProducerNatsJSON(nc, "0.0.1"), + serverRegistryProducer, supportedRealms, ) if err != nil { @@ -91,14 +94,27 @@ func main() { repo.NewGatewayRedisRepo(rdb), healthChecker, metricsConsumer, - events.NewServerRegistryProducerNatsJSON(nc, "0.0.1"), + serverRegistryProducer, []uint32{1}, ) if err != nil { log.Fatal().Err(err).Msg("can't create gateway service") } - registryService := server.NewServersRegistry(gameServersService, gatewayService) + matchmakingService := service.NewMatchmaking(healthChecker, serverRegistryProducer) + + if conf.MatchmakingServiceHealthCheckAddress != "" { + matchmakingMonitor := service.NewMatchmakingHealthMonitor( + conf.MatchmakingServiceAddress, + conf.MatchmakingServiceHealthCheckAddress, + time.Duration(conf.MatchmakingServiceHealthCheckIntervalMs)*time.Millisecond, + time.Duration(conf.MatchmakingServiceHealthCheckTimeoutMs)*time.Millisecond, + serverRegistryProducer, + ) + go matchmakingMonitor.Start(mainContext) + } + + registryService := server.NewServersRegistry(gameServersService, gatewayService, matchmakingService) if conf.LogLevel == zerolog.DebugLevel { registryService = server.NewServersRegistryDebugLoggerMiddleware(registryService, log.Logger) } diff --git a/apps/servers-registry/config/config.go b/apps/servers-registry/config/config.go index 4d31277..32ec969 100644 --- a/apps/servers-registry/config/config.go +++ b/apps/servers-registry/config/config.go @@ -17,6 +17,18 @@ type Config struct { // NatsURL is nats connection url NatsURL string `yaml:"natsUrl" env:"NATS_URL" env-default:"nats://nats:4222"` + // MatchmakingServiceAddress is address of matchmaking grpc service. It is used only for event context. + MatchmakingServiceAddress string `yaml:"matchmakingServiceAddress" env:"MATCHMAKING_SERVICE_ADDRESS" env-default:"localhost:8994"` + + // MatchmakingServiceHealthCheckAddress is address for matchmaking health checks. Empty disables monitoring. + MatchmakingServiceHealthCheckAddress string `yaml:"matchmakingServiceHealthCheckAddress" env:"MATCHMAKING_SERVICE_HEALTH_CHECK_ADDRESS" env-default:""` + + // MatchmakingServiceHealthCheckIntervalMs is the registry polling cadence for matchmaking health. + MatchmakingServiceHealthCheckIntervalMs uint32 `yaml:"matchmakingServiceHealthCheckIntervalMs" env:"MATCHMAKING_SERVICE_HEALTH_CHECK_INTERVAL_MS" env-default:"4000"` + + // MatchmakingServiceHealthCheckTimeoutMs is the http timeout for matchmaking health probes. + MatchmakingServiceHealthCheckTimeoutMs uint32 `yaml:"matchmakingServiceHealthCheckTimeoutMs" env:"MATCHMAKING_SERVICE_HEALTH_CHECK_TIMEOUT_MS" env-default:"15000"` + // RealmsIDs is id of realms that the system supports. RealmsID []uint32 `yaml:"realmsID" env:"REALMs_ID" env-default:"1"` } diff --git a/apps/servers-registry/mapbalancing/binpack/distributor.go b/apps/servers-registry/mapbalancing/binpack/distributor.go index 7b27bf1..b63580c 100644 --- a/apps/servers-registry/mapbalancing/binpack/distributor.go +++ b/apps/servers-registry/mapbalancing/binpack/distributor.go @@ -94,6 +94,9 @@ func (k *binpackBalancer) greedyBinPackBalancer(weights MapsWeight, servers []re } sort.Slice(mw, func(i, j int) bool { + if mw[i].weight == mw[j].weight { + return mw[i].mapID < mw[j].mapID + } return mw[i].weight > mw[j].weight }) @@ -112,25 +115,14 @@ func (k *binpackBalancer) greedyBinPackBalancer(weights MapsWeight, servers []re } } - if len(packing) > len(servers) { - lenDiff := len(servers) - len(packing) - for i := 0; i < lenDiff; i++ { - - for serversItr, j := 0, 0; j < lenDiff; j++ { - if serversItr >= len(servers) { - serversItr = 0 - } - - servers[serversItr].AssignedMapsToHandle = append(servers[serversItr].AssignedMapsToHandle, packing[i][j].mapID) - serversItr++ - } + for i := range packing { + serverIndex := i + if serverIndex >= len(servers) { + serverIndex = i % len(servers) } - packing = packing[:len(servers)] - } - for i := range packing { for j := range packing[i] { - servers[i].AssignedMapsToHandle = append(servers[i].AssignedMapsToHandle, packing[i][j].mapID) + servers[serverIndex].AssignedMapsToHandle = append(servers[serverIndex].AssignedMapsToHandle, packing[i][j].mapID) } } diff --git a/apps/servers-registry/repo/game-server.go b/apps/servers-registry/repo/game-server.go index 59c10ec..cc61094 100644 --- a/apps/servers-registry/repo/game-server.go +++ b/apps/servers-registry/repo/game-server.go @@ -27,6 +27,7 @@ type GameServer struct { ActiveConnections uint32 Diff DiffData + HealthDegraded bool // AssignedMapsToHandle list of maps that loadbalancer algorithm assigned for this server. AssignedMapsToHandle []uint32 @@ -64,11 +65,15 @@ func (g *GameServer) IsAllMapsAvailable() bool { return len(g.AvailableMaps) == 0 } +func (g *GameServer) AcceptsNewPlayers() bool { + return !g.HealthDegraded +} + func (g *GameServer) Copy() GameServer { cp := *g - copy(cp.AvailableMaps, g.AvailableMaps) - copy(cp.AssignedMapsToHandle, g.AssignedMapsToHandle) - copy(cp.AssignedButPendingMaps, g.AssignedButPendingMaps) + cp.AvailableMaps = append([]uint32(nil), g.AvailableMaps...) + cp.AssignedMapsToHandle = append([]uint32(nil), g.AssignedMapsToHandle...) + cp.AssignedButPendingMaps = append([]uint32(nil), g.AssignedButPendingMaps...) return cp } diff --git a/apps/servers-registry/repo/game-server_inmem.go b/apps/servers-registry/repo/game-server_inmem.go index 743ae09..8ae0657 100644 --- a/apps/servers-registry/repo/game-server_inmem.go +++ b/apps/servers-registry/repo/game-server_inmem.go @@ -22,6 +22,13 @@ func (g *gameServerInMemRepo) Upsert(ctx context.Context, server *GameServer) er server.ID = server.Address } + for i := range g.storage { + if g.storage[i].ID == server.ID { + g.storage[i] = *server + return nil + } + } + g.storage = append(g.storage, *server) return nil diff --git a/apps/servers-registry/repo/game-server_redis.go b/apps/servers-registry/repo/game-server_redis.go index ba9c864..08ad6c5 100644 --- a/apps/servers-registry/repo/game-server_redis.go +++ b/apps/servers-registry/repo/game-server_redis.go @@ -27,28 +27,34 @@ func (g *gameServerRedisRepo) Upsert(ctx context.Context, server *GameServer) er server.ID = g.generateID(server.Address) } - d, err := json.Marshal(server) + key := g.key(server.ID) + previous, err := g.serverByKey(ctx, key) if err != nil { return err } - key := g.key(server.ID) - status := g.rdb.Set(ctx, key, d, 0) - if status.Err() != nil { - return status.Err() + d, err := json.Marshal(server) + if err != nil { + return err } - res := g.rdb.SAdd(ctx, g.realmIndexKey(server.RealmID, server.IsCrossRealm), key) - if res.Err() != nil { - g.rdb.Del(ctx, key) - return res.Err() + newIndexKey := g.realmIndexKey(server.RealmID, server.IsCrossRealm) + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, key, d, 0) + pipe.SAdd(ctx, newIndexKey, key) + if previous != nil { + if oldIndexKey := g.realmIndexKey(previous.RealmID, previous.IsCrossRealm); oldIndexKey != newIndexKey { + pipe.SRem(ctx, oldIndexKey, key) + } } - return nil + _, err = pipe.Exec(ctx) + return err } func (g *gameServerRedisRepo) Update(ctx context.Context, id string, f func(*GameServer) *GameServer) error { - res := g.rdb.Get(ctx, g.key(id)) + oldKey := g.key(id) + res := g.rdb.Get(ctx, oldKey) if res.Err() != nil { return res.Err() } @@ -58,6 +64,8 @@ func (g *gameServerRedisRepo) Update(ctx context.Context, id string, f func(*Gam if err != nil { return err } + oldRealmID := v.RealmID + oldIsCrossRealm := v.IsCrossRealm newV := f(v) d, err := json.Marshal(newV) @@ -65,9 +73,22 @@ func (g *gameServerRedisRepo) Update(ctx context.Context, id string, f func(*Gam return err } - key := g.key(newV.ID) - status := g.rdb.Set(ctx, key, d, 0) - return status.Err() + newKey := g.key(newV.ID) + newIndexKey := g.realmIndexKey(newV.RealmID, newV.IsCrossRealm) + oldIndexKey := g.realmIndexKey(oldRealmID, oldIsCrossRealm) + + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, newKey, d, 0) + pipe.SAdd(ctx, newIndexKey, newKey) + if oldIndexKey != newIndexKey || oldKey != newKey { + pipe.SRem(ctx, oldIndexKey, oldKey) + } + if oldKey != newKey { + pipe.Del(ctx, oldKey) + } + + _, err = pipe.Exec(ctx) + return err } func (g *gameServerRedisRepo) Remove(ctx context.Context, id string) error { @@ -178,7 +199,11 @@ func (g *gameServerRedisRepo) listForRealmOrCrossRealm(ctx context.Context, real } func (g *gameServerRedisRepo) One(ctx context.Context, id string) (*GameServer, error) { - getRes := g.rdb.Get(ctx, g.key(id)) + return g.serverByKey(ctx, g.key(id)) +} + +func (g *gameServerRedisRepo) serverByKey(ctx context.Context, key string) (*GameServer, error) { + getRes := g.rdb.Get(ctx, key) if getRes.Err() != nil { if errors.Is(getRes.Err(), redis.Nil) { return nil, nil diff --git a/apps/servers-registry/repo/gateway-server_redis.go b/apps/servers-registry/repo/gateway-server_redis.go index d3c39c8..1616cae 100644 --- a/apps/servers-registry/repo/gateway-server_redis.go +++ b/apps/servers-registry/repo/gateway-server_redis.go @@ -25,28 +25,34 @@ func (g *gatewayRedisRepo) Add(ctx context.Context, server *GatewayServer) (*Gat server.HealthCheckAddr = strings.ToLower(server.HealthCheckAddr) server.ID = g.generateID(server.HealthCheckAddr) - d, err := json.Marshal(server) + key := g.key(server.ID) + previous, err := g.gatewayByKey(ctx, key) if err != nil { return nil, err } - key := g.key(server.ID) - status := g.rdb.Set(ctx, key, d, 0) - if status.Err() != nil { - return nil, status.Err() + d, err := json.Marshal(server) + if err != nil { + return nil, err } - res := g.rdb.SAdd(ctx, g.realmIndexKey(server.RealmID), key) - if res.Err() != nil { - g.rdb.Del(ctx, key) - return nil, res.Err() + newIndexKey := g.realmIndexKey(server.RealmID) + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, key, d, 0) + pipe.SAdd(ctx, newIndexKey, key) + if previous != nil { + if oldIndexKey := g.realmIndexKey(previous.RealmID); oldIndexKey != newIndexKey { + pipe.SRem(ctx, oldIndexKey, key) + } } - return server, nil + _, err = pipe.Exec(ctx) + return server, err } func (g *gatewayRedisRepo) Update(ctx context.Context, id string, f func(GatewayServer) GatewayServer) error { - res := g.rdb.Get(ctx, g.key(id)) + oldKey := g.key(id) + res := g.rdb.Get(ctx, oldKey) if res.Err() != nil { return res.Err() } @@ -56,6 +62,7 @@ func (g *gatewayRedisRepo) Update(ctx context.Context, id string, f func(Gateway if err != nil { return err } + oldRealmID := v.RealmID newV := f(*v) d, err := json.Marshal(newV) @@ -63,9 +70,22 @@ func (g *gatewayRedisRepo) Update(ctx context.Context, id string, f func(Gateway return err } - key := g.key(newV.ID) - status := g.rdb.Set(ctx, key, d, 0) - return status.Err() + newKey := g.key(newV.ID) + newIndexKey := g.realmIndexKey(newV.RealmID) + oldIndexKey := g.realmIndexKey(oldRealmID) + + pipe := g.rdb.TxPipeline() + pipe.Set(ctx, newKey, d, 0) + pipe.SAdd(ctx, newIndexKey, newKey) + if oldIndexKey != newIndexKey || oldKey != newKey { + pipe.SRem(ctx, oldIndexKey, oldKey) + } + if oldKey != newKey { + pipe.Del(ctx, oldKey) + } + + _, err = pipe.Exec(ctx) + return err } func (g *gatewayRedisRepo) Remove(ctx context.Context, healthCheckAddress string) error { @@ -125,6 +145,28 @@ func (g *gatewayRedisRepo) ListByRealm(ctx context.Context, realmID uint32) ([]G return result, nil } +func (g *gatewayRedisRepo) gatewayByKey(ctx context.Context, key string) (*GatewayServer, error) { + getRes := g.rdb.Get(ctx, key) + if getRes.Err() != nil { + if errors.Is(getRes.Err(), redis.Nil) { + return nil, nil + } + return nil, getRes.Err() + } + + resBytes, err := getRes.Bytes() + if err != nil { + return nil, err + } + + obj := &GatewayServer{} + if err = json.Unmarshal(resBytes, obj); err != nil { + return nil, err + } + + return obj, nil +} + func (g *gatewayRedisRepo) realmIndexKey(realmID uint32) string { return fmt.Sprintf("realm:%d:gws", realmID) } diff --git a/apps/servers-registry/server/registry-server-debug-logger.go b/apps/servers-registry/server/registry-server-debug-logger.go index c8320ed..d37694c 100644 --- a/apps/servers-registry/server/registry-server-debug-logger.go +++ b/apps/servers-registry/server/registry-server-debug-logger.go @@ -118,3 +118,8 @@ func (s *serversRegistryDebugLoggerMiddleware) ListGatewaysForRealm(ctx context. resp, err = s.realService.ListGatewaysForRealm(ctx, request) return } + +func (s *serversRegistryDebugLoggerMiddleware) RegisterMatchmakingServer(ctx context.Context, request *pb.RegisterMatchmakingServerRequest) (*pb.RegisterMatchmakingServerResponse, error) { + // Logs already inside. + return s.realService.RegisterMatchmakingServer(ctx, request) +} diff --git a/apps/servers-registry/server/registry-server.go b/apps/servers-registry/server/registry-server.go index 8b2afde..65ab13b 100644 --- a/apps/servers-registry/server/registry-server.go +++ b/apps/servers-registry/server/registry-server.go @@ -3,6 +3,7 @@ package server import ( "context" "fmt" + "sort" "strconv" "strings" @@ -20,12 +21,14 @@ type serversRegistry struct { pb.UnimplementedServersRegistryServiceServer gService service.GameServer lbService service.Gateway + mmService service.Matchmaking } -func NewServersRegistry(gService service.GameServer, lbService service.Gateway) pb.ServersRegistryServiceServer { +func NewServersRegistry(gService service.GameServer, lbService service.Gateway, mmService service.Matchmaking) pb.ServersRegistryServiceServer { return &serversRegistry{ gService: gService, lbService: lbService, + mmService: mmService, } } @@ -69,6 +72,7 @@ func (s *serversRegistry) AvailableGameServersForMapAndRealm(ctx context.Context resultServers := make([]*pb.Server, 0, len(servers)) for i := range servers { resultServers = append(resultServers, &pb.Server{ + Id: servers[i].ID, Address: servers[i].Address, RealmID: servers[i].RealmID, IsCrossRealm: servers[i].IsCrossRealm, @@ -174,6 +178,7 @@ func (s *serversRegistry) RandomGameServerForRealm(ctx context.Context, request return &pb.RandomGameServerForRealmResponse{ Api: ver, GameServer: &pb.Server{ + Id: server.ID, Address: server.Address, RealmID: server.RealmID, }, @@ -227,6 +232,7 @@ func (s *serversRegistry) GatewaysForRealms(ctx context.Context, request *pb.Gat } servers = append(servers, &pb.Server{ + Id: server.ID, Address: server.Address, RealmID: server.RealmID, }) @@ -261,6 +267,34 @@ func (s *serversRegistry) ListGatewaysForRealm(ctx context.Context, request *pb. }, nil } +func (s *serversRegistry) RegisterMatchmakingServer(ctx context.Context, request *pb.RegisterMatchmakingServerRequest) (*pb.RegisterMatchmakingServerResponse, error) { + log.Info().Interface("request", request).Msg("New request to add matchmaking server") + + host := "localhost" + if p, ok := peer.FromContext(ctx); ok && p.Addr != nil { + host = removePortFromAddress(p.Addr.String()) + } + if request.PreferredHostName != "" { + host = request.PreferredHostName + } + + matchmakingServer := &service.MatchmakingServer{ + Address: fmt.Sprintf("%s:%d", host, request.ServicePort), + HealthCheckAddr: fmt.Sprintf("%s:%d", host, request.HealthPort), + StartedAtUnixMs: request.StartedAtUnixMs, + } + + server, err := s.mmService.Register(ctx, matchmakingServer) + if err != nil { + return nil, err + } + + return &pb.RegisterMatchmakingServerResponse{ + Api: ver, + Id: server.ID, + }, nil +} + func removePortFromAddress(address string) string { for i := len(address) - 1; i >= 0; i-- { if address[i] == ':' { @@ -272,20 +306,32 @@ func removePortFromAddress(address string) string { } func stringToAvailableMaps(s string) []uint32 { - v := strings.Split(s, ",") - if len(v) == 0 { - return []uint32{} - } + parts := strings.Split(s, ",") + seen := map[uint32]struct{}{} + result := make([]uint32, 0, len(parts)) + for _, raw := range parts { + token := strings.TrimSpace(raw) + if token == "" { + continue + } - result := make([]uint32, 0, len(v)) - for i := range v { - r, err := strconv.Atoi(v[i]) + r, err := strconv.ParseUint(token, 10, 32) if err != nil { + log.Warn().Str("availableMap", raw).Msg("ignoring invalid available map id") continue } - result = append(result, uint32(r)) + mapID := uint32(r) + if _, ok := seen[mapID]; ok { + continue + } + seen[mapID] = struct{}{} + result = append(result, mapID) } + sort.Slice(result, func(i, j int) bool { + return result[i] < result[j] + }) + return result } diff --git a/apps/servers-registry/service/game-server.go b/apps/servers-registry/service/game-server.go index b060372..8e64ab1 100644 --- a/apps/servers-registry/service/game-server.go +++ b/apps/servers-registry/service/game-server.go @@ -2,8 +2,11 @@ package service import ( "context" + "errors" "fmt" "math/rand" + "net" + "net/http" "sort" "github.com/rs/zerolog/log" @@ -55,6 +58,12 @@ func NewGameServer( } }) + checker.AddSuccessObserver(func(object healthandmetrics.HealthCheckObject) { + if gs, ok := object.(*repo.GameServer); ok { + service.onServerHealthy(gs) + } + }) + metrics.AddObserver(func(observable healthandmetrics.MetricsObservable, read *healthandmetrics.MetricsRead) { if gs, ok := observable.(*repo.GameServer); ok { service.onMetricsUpdate(gs, read) @@ -100,8 +109,9 @@ func NewGameServer( func (g *gameServerImpl) Register(ctx context.Context, server *repo.GameServer) error { sort.Slice(server.AvailableMaps, func(i, j int) bool { - return server.AvailableMaps[i] <= server.AvailableMaps[j] + return server.AvailableMaps[i] < server.AvailableMaps[j] }) + server.HealthDegraded = false if err := g.checker.AddHealthCheckObject(server); err != nil { return err @@ -173,14 +183,43 @@ func (g *gameServerImpl) AvailableForMapAndRealm(ctx context.Context, mapID uint return nil, err } + admissionServers := gameServersAcceptingNewPlayers(servers) + hasExplicitMapServer := false + for _, server := range admissionServers { + if !server.IsAllMapsAvailable() && containsMapID(server.AvailableMaps, mapID) { + hasExplicitMapServer = true + break + } + } + result := []repo.GameServer{} - for _, server := range servers { + for _, server := range admissionServers { + if hasExplicitMapServer && server.IsAllMapsAvailable() { + continue + } + if server.CanHandleMap(mapID) { result = append(result, server) } } - return append(result), nil + if len(result) == 0 && hasDegradedMapOwner(servers, mapID) { + for _, server := range admissionServers { + if server.IsAllMapsAvailable() { + result = append(result, server) + } + } + if len(result) > 0 { + log.Warn(). + Uint32("mapID", mapID). + Uint32("realmID", realmID). + Bool("isCrossRealm", isCrossRealm). + Int("candidates", len(result)). + Msg("Using healthy all-map game servers while assigned owner is health-degraded") + } + } + + return result, nil } func (g *gameServerImpl) RandomServerForRealm(ctx context.Context, realmID uint32) (*repo.GameServer, error) { @@ -188,6 +227,7 @@ func (g *gameServerImpl) RandomServerForRealm(ctx context.Context, realmID uint3 if err != nil { return nil, err } + servers = gameServersAcceptingNewPlayers(servers) if len(servers) == 0 { return nil, nil @@ -233,6 +273,7 @@ func (g *gameServerImpl) MapsLoadedForServer(ctx context.Context, serverID strin return nil, fmt.Errorf("game server not found") } + pendingBefore := len(server.AssignedButPendingMaps) newPendingMaps := []uint32{} for i := range server.AssignedButPendingMaps { hasMap := false @@ -248,11 +289,79 @@ func (g *gameServerImpl) MapsLoadedForServer(ctx context.Context, serverID strin } server.AssignedButPendingMaps = newPendingMaps + log.Info(). + Str("serverID", serverID). + Str("address", server.Address). + Str("grpcAddress", server.GRPCAddress). + Str("healthCheckAddress", server.HealthCheckAddr). + Uint32("realmID", server.RealmID). + Bool("isCrossRealm", server.IsCrossRealm). + Int("loadedMaps", len(maps)). + Int("pendingBefore", pendingBefore). + Int("pendingAfter", len(newPendingMaps)). + Msg("Game server maps marked ready") return server, g.r.Upsert(ctx, server) } +func (g *gameServerImpl) onServerHealthy(server *repo.GameServer) { + wasDegraded := false + err := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { + wasDegraded = s.HealthDegraded + s.HealthDegraded = false + return s + }) + if err != nil { + log.Error(). + Err(err). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Msg("can't clear degraded game server health state") + return + } + if wasDegraded { + log.Info(). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Uint32("realmID", server.RealmID). + Bool("isCrossRealm", server.IsCrossRealm). + Msg("Game Server health recovered; accepting new player placement") + } +} + func (g *gameServerImpl) onServerUnhealthy(server *repo.GameServer, err error) { + if isDegradedGameServerHealthError(err) { + updateErr := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { + s.HealthDegraded = true + return s + }) + if updateErr != nil { + log.Error(). + Err(updateErr). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Msg("can't mark degraded game server as non-admitting") + } + + log.Warn(). + Err(err). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Str("serverID", server.ID). + Uint32("realmID", server.RealmID). + Bool("isCrossRealm", server.IsCrossRealm). + Msg("Game Server world-loop health degraded; preserving ownership but draining new player placement") + degraded := server.Copy() + degraded.HealthDegraded = true + if addErr := g.checker.AddHealthCheckObject(°raded); addErr != nil { + log.Error().Err(addErr).Str("serverID", server.ID).Msg("can't re-add degraded game server to health checker") + } + return + } + log.Warn(). Err(err). Str("address", server.Address). @@ -304,6 +413,16 @@ func (g *gameServerImpl) onServerUnhealthy(server *repo.GameServer, err error) { } } +func isDegradedGameServerHealthError(err error) bool { + var statusErr *healthandmetrics.HTTPStatusError + if errors.As(err, &statusErr) { + return statusErr.StatusCode == http.StatusServiceUnavailable || statusErr.StatusCode == http.StatusGatewayTimeout + } + + var netErr net.Error + return errors.As(err, &netErr) && netErr.Timeout() +} + func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers []repo.GameServer) ([]repo.GameServer, error) { serversBefore := make([]repo.GameServer, len(servers)) for i, server := range servers { @@ -318,6 +437,7 @@ func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers [] ID: distributed[i].ID, Address: distributed[i].Address, RealmID: distributed[i].RealmID, + IsCrossRealm: distributed[i].IsCrossRealm, AvailableMaps: distributed[i].AvailableMaps, NewAssignedMapsToHandle: distributed[i].AssignedMapsToHandle, } @@ -331,12 +451,13 @@ func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers [] } for i := range distributed { - // Mark new maps as pending. for _, server := range res { if server.ID == distributed[i].ID { - // No need to have confirmation for assignment on startup. - if len(server.OldAssignedMapsToHandle) > 0 { - distributed[i].AssignedButPendingMaps = server.OnlyNewMaps() + for _, previousServer := range serversBefore { + if previousServer.ID == distributed[i].ID { + distributed[i].AssignedButPendingMaps = pendingMapsAfterReassignment(previousServer, server) + break + } } break } @@ -357,6 +478,63 @@ func (g *gameServerImpl) distributeMapsToServers(ctx context.Context, servers [] return distributed, nil } +func pendingMapsAfterReassignment(previous repo.GameServer, reassigned events.GameServer) []uint32 { + pending := make([]uint32, 0, len(previous.AssignedButPendingMaps)+len(reassigned.NewAssignedMapsToHandle)) + seen := map[uint32]struct{}{} + + addPending := func(mapID uint32) { + if _, ok := seen[mapID]; ok { + return + } + seen[mapID] = struct{}{} + pending = append(pending, mapID) + } + + for _, mapID := range previous.AssignedButPendingMaps { + if containsMapID(reassigned.NewAssignedMapsToHandle, mapID) { + addPending(mapID) + } + } + + for _, mapID := range reassigned.OnlyNewMaps() { + addPending(mapID) + } + + sort.Slice(pending, func(i, j int) bool { + return pending[i] < pending[j] + }) + + return pending +} + +func containsMapID(maps []uint32, mapID uint32) bool { + for _, candidate := range maps { + if candidate == mapID { + return true + } + } + return false +} + +func gameServersAcceptingNewPlayers(servers []repo.GameServer) []repo.GameServer { + result := make([]repo.GameServer, 0, len(servers)) + for _, server := range servers { + if server.AcceptsNewPlayers() { + result = append(result, server) + } + } + return result +} + +func hasDegradedMapOwner(servers []repo.GameServer, mapID uint32) bool { + for _, server := range servers { + if server.HealthDegraded && server.CanHandleMap(mapID) { + return true + } + } + return false +} + func (g *gameServerImpl) onMetricsUpdate(server *repo.GameServer, m *healthandmetrics.MetricsRead) { err := g.r.Update(context.Background(), server.ID, func(s *repo.GameServer) *repo.GameServer { s.ActiveConnections = uint32(m.ActiveConnections) diff --git a/apps/servers-registry/service/matchmaking-monitor.go b/apps/servers-registry/service/matchmaking-monitor.go new file mode 100644 index 0000000..a3bef0b --- /dev/null +++ b/apps/servers-registry/service/matchmaking-monitor.go @@ -0,0 +1,165 @@ +package service + +import ( + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "time" + + "github.com/rs/zerolog/log" + + "github.com/walkline/ToCloud9/shared/events" + "github.com/walkline/ToCloud9/shared/healthandmetrics" +) + +const ( + defaultMatchmakingHealthCheckInterval = 4 * time.Second + defaultMatchmakingHealthCheckTimeout = 15 * time.Second +) + +type MatchmakingHealthMonitor struct { + serviceAddress string + healthCheckAddress string + interval time.Duration + client *http.Client + eventsProducer events.ServerRegistryProducer + + lastHealthy *bool + lastStartedAtUnixMs int64 +} + +type matchmakingHealthPayload struct { + StartedAtUnixMs int64 `json:"startedAtUnixMs"` +} + +func NewMatchmakingHealthMonitor( + serviceAddress string, + healthCheckAddress string, + interval time.Duration, + timeout time.Duration, + eventsProducer events.ServerRegistryProducer, +) *MatchmakingHealthMonitor { + if interval <= 0 { + interval = defaultMatchmakingHealthCheckInterval + } + if timeout <= 0 { + timeout = defaultMatchmakingHealthCheckTimeout + } + + return &MatchmakingHealthMonitor{ + serviceAddress: serviceAddress, + healthCheckAddress: healthCheckAddress, + interval: interval, + client: &http.Client{ + Timeout: timeout, + }, + eventsProducer: eventsProducer, + } +} + +func (m *MatchmakingHealthMonitor) Start(ctx context.Context) { + if m.healthCheckAddress == "" { + return + } + + m.checkOnce(ctx) + + ticker := time.NewTicker(m.interval) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + m.checkOnce(ctx) + case <-ctx.Done(): + return + } + } +} + +func (m *MatchmakingHealthMonitor) checkOnce(ctx context.Context) { + status, err := m.check(ctx) + if err != nil { + if m.lastHealthy == nil || *m.lastHealthy { + m.publishUnhealthy(err) + } + healthy := false + m.lastHealthy = &healthy + return + } + + if m.lastHealthy != nil && !*m.lastHealthy { + m.publishRecovered() + } else if m.lastHealthy != nil && + *m.lastHealthy && + status.StartedAtUnixMs != 0 && + m.lastStartedAtUnixMs != 0 && + status.StartedAtUnixMs != m.lastStartedAtUnixMs { + m.publishUnhealthy(fmt.Errorf("matchmaking service restarted")) + } + m.lastStartedAtUnixMs = status.StartedAtUnixMs + healthy := true + m.lastHealthy = &healthy +} + +func (m *MatchmakingHealthMonitor) check(ctx context.Context) (matchmakingHealthPayload, error) { + req, err := http.NewRequestWithContext(ctx, http.MethodGet, "http://"+m.healthCheckAddress+healthandmetrics.HealthCheckURL, nil) + if err != nil { + return matchmakingHealthPayload{}, err + } + + resp, err := m.client.Do(req) + if err != nil { + return matchmakingHealthPayload{}, err + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return matchmakingHealthPayload{}, fmt.Errorf("bad status code %d", resp.StatusCode) + } + + var status matchmakingHealthPayload + if err := json.NewDecoder(io.LimitReader(resp.Body, 4096)).Decode(&status); err != nil { + return matchmakingHealthPayload{}, nil + } + + return status, nil +} + +func (m *MatchmakingHealthMonitor) publishUnhealthy(err error) { + log.Warn(). + Err(err). + Str("address", m.serviceAddress). + Str("healthCheckAddress", m.healthCheckAddress). + Msg("Matchmaking service unhealthy") + + if produceErr := m.eventsProducer.MatchmakingRemovedUnhealthy(&events.ServerRegistryEventMatchmakingRemovedUnhealthyPayload{ + MatchmakingService: m.payload(), + Error: err.Error(), + }); produceErr != nil { + log.Error().Err(produceErr).Msg("can't produce unhealthy matchmaking event") + } +} + +func (m *MatchmakingHealthMonitor) publishRecovered() { + log.Info(). + Str("address", m.serviceAddress). + Str("healthCheckAddress", m.healthCheckAddress). + Msg("Matchmaking service recovered") + + if err := m.eventsProducer.MatchmakingRecovered(&events.ServerRegistryEventMatchmakingRecoveredPayload{ + MatchmakingService: m.payload(), + }); err != nil { + log.Error().Err(err).Msg("can't produce recovered matchmaking event") + } +} + +func (m *MatchmakingHealthMonitor) payload() events.MatchmakingService { + return events.MatchmakingService{ + Address: m.serviceAddress, + HealthCheckAddr: m.healthCheckAddress, + ObservedAtUnixMs: time.Now().UnixMilli(), + } +} diff --git a/apps/servers-registry/service/matchmaking-server.go b/apps/servers-registry/service/matchmaking-server.go new file mode 100644 index 0000000..2365c45 --- /dev/null +++ b/apps/servers-registry/service/matchmaking-server.go @@ -0,0 +1,149 @@ +package service + +import ( + "context" + "fmt" + "sync" + "time" + + "github.com/rs/zerolog/log" + + "github.com/walkline/ToCloud9/shared/events" + "github.com/walkline/ToCloud9/shared/healthandmetrics" +) + +type Matchmaking interface { + Register(ctx context.Context, server *MatchmakingServer) (*MatchmakingServer, error) +} + +type MatchmakingServer struct { + ID string + Address string + HealthCheckAddr string + StartedAtUnixMs int64 +} + +func (s *MatchmakingServer) HealthCheckAddress() string { + return s.HealthCheckAddr +} + +type matchmakingImpl struct { + checker healthandmetrics.HealthChecker + eProducer events.ServerRegistryProducer + + mu sync.Mutex + current *MatchmakingServer +} + +func NewMatchmaking(checker healthandmetrics.HealthChecker, eProducer events.ServerRegistryProducer) Matchmaking { + service := &matchmakingImpl{ + checker: checker, + eProducer: eProducer, + } + + checker.AddFailedObserver(func(object healthandmetrics.HealthCheckObject, err error) { + if server, ok := object.(*MatchmakingServer); ok { + service.onServerUnhealthy(server, err) + } + }) + + return service +} + +func (m *matchmakingImpl) Register(ctx context.Context, server *MatchmakingServer) (*MatchmakingServer, error) { + _ = ctx + + if server == nil { + return nil, fmt.Errorf("matchmaking server is nil") + } + if server.Address == "" { + return nil, fmt.Errorf("matchmaking server address is empty") + } + if server.HealthCheckAddr == "" { + return nil, fmt.Errorf("matchmaking health check address is empty") + } + if server.ID == "" { + server.ID = server.Address + } + + m.mu.Lock() + + if m.current != nil && sameMatchmakingInstance(m.current, server) { + if err := m.checker.AddHealthCheckObject(m.current); err != nil { + m.mu.Unlock() + return nil, err + } + current := m.current + m.mu.Unlock() + return current, nil + } + + restarted := m.current != nil + if m.current != nil { + if err := m.checker.RemoveHealthCheckObject(m.current); err != nil { + m.mu.Unlock() + return nil, err + } + } + + if err := m.checker.AddHealthCheckObject(server); err != nil { + m.mu.Unlock() + return nil, err + } + m.current = server + m.mu.Unlock() + + if restarted { + m.publishUnhealthy(server, fmt.Errorf("matchmaking service restarted")) + } + + log.Info(). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Int64("startedAtUnixMs", server.StartedAtUnixMs). + Msg("Registered matchmaking server") + + return server, nil +} + +func (m *matchmakingImpl) onServerUnhealthy(server *MatchmakingServer, err error) { + m.mu.Lock() + if m.current != server { + m.mu.Unlock() + return + } + m.current = nil + m.mu.Unlock() + + if removeErr := m.checker.RemoveHealthCheckObject(server); removeErr != nil { + log.Error().Err(removeErr).Msg("can't remove matchmaking from health checker") + } + + m.publishUnhealthy(server, err) +} + +func (m *matchmakingImpl) publishUnhealthy(server *MatchmakingServer, err error) { + log.Warn(). + Err(err). + Str("address", server.Address). + Str("healthCheckAddress", server.HealthCheckAddr). + Msg("Matchmaking service unhealthy") + + if produceErr := m.eProducer.MatchmakingRemovedUnhealthy(&events.ServerRegistryEventMatchmakingRemovedUnhealthyPayload{ + MatchmakingService: events.MatchmakingService{ + Address: server.Address, + HealthCheckAddr: server.HealthCheckAddr, + ObservedAtUnixMs: time.Now().UnixMilli(), + }, + Error: err.Error(), + }); produceErr != nil { + log.Error().Err(produceErr).Msg("can't produce unhealthy matchmaking event") + } +} + +func sameMatchmakingInstance(a, b *MatchmakingServer) bool { + return a.Address == b.Address && + a.HealthCheckAddr == b.HealthCheckAddr && + a.StartedAtUnixMs != 0 && + a.StartedAtUnixMs == b.StartedAtUnixMs +} diff --git a/config.yml.example b/config.yml.example index 8d81dc3..ce2ab46 100644 --- a/config.yml.example +++ b/config.yml.example @@ -9,7 +9,8 @@ db: schemaType: &defaultSchemaType "ac" nats: &defaultNatsUrl "nats://localhost:4222" -redis: &defaultRedisUrl "redis://:@localhost:6379/0" +# Redis-compatible store URL. Valkey is the recommended local Debian/Linux backend. +redis: &defaultRedisUrl "redis://:@127.0.0.1:6379/0" logging: &defaultLogging # Available options: @@ -34,8 +35,10 @@ auth: characters: port: 8991 + authDB: *defaultAuthDB charactersDB: *defaultCharactersDB worldDB: *defaultWorldDB + realIDCrossFaction: true natsUrl: *defaultNatsUrl serversRegistryServiceAddress: localhost:8999 logging: *defaultLogging @@ -61,7 +64,20 @@ gateway: groupServiceAddress: "localhost:8998" matchmakingServiceAddress: "localhost:8994" packetProcessTimeoutSecs: 20 + worldAuthAttemptTimeoutMs: 5000 + worldAuthSessionReadyDelayMs: 300 + worldserverConnectRetryWaitMs: 200 + worldserverConnectRetryMaxWaitMs: 2000 showGameserverConnChangeToClient: true + allowTwoSideInteractionGuild: false + allowTwoSideInteractionChannel: false + allowTwoSideInteractionArena: false + maxPlayerLevel: 80 + arenaCurrentSeason: 8 + legacyArenaStartRating: 1500 + arenaStartRating: 0 + arenaStartPersonalRating: 0 + arenaStartMatchmakerRating: 1500 natsUrl: *defaultNatsUrl logging: *defaultLogging @@ -75,6 +91,8 @@ guild: port: 8995 natsUrl: *defaultNatsUrl charactersDB: *defaultCharactersDB + worldDB: *defaultWorldDB + guidProviderServiceAddress: "localhost:8996" logging: *defaultLogging mail: @@ -96,26 +114,42 @@ servers-registry: port: 8999 redisUrl: *defaultRedisUrl natsUrl: *defaultNatsUrl + matchmakingServiceAddress: "localhost:8994" + matchmakingServiceHealthCheckAddress: "localhost:8904" + matchmakingServiceHealthCheckIntervalMs: 4000 + matchmakingServiceHealthCheckTimeoutMs: 15000 logging: *defaultLogging realmsID: - 1 matchmakingserver: port: 8994 + healthCheckPort: 8904 natsUrl: *defaultNatsUrl logging: *defaultLogging worldDB: *defaultWorldDB charactersDB: *defaultCharactersDB + groupServiceAddress: "localhost:8998" + charactersServiceAddress: "localhost:8991" battleGroups: 1: "1" + arenaStartMatchmakerRating: 1500 + arenaWinRatingModifier1: 48 + arenaWinRatingModifier2: 24 + arenaLoseRatingModifier: 24 + arenaMatchmakerRatingModifier: 24 + maxAllowedMMRDrop: 500 gameserver: grpcPort: 9501 healthCheckPort: 8901 preferredHostname: "" + loopbackHostOverride: "auto" serversRegistryServiceAddress: "localhost:8999" guidProviderServiceAddress: "localhost:8996" + groupServiceAddress: "localhost:8998" matchmakingServiceAddress: "localhost:8994" + charactersServiceAddress: "localhost:8991" characterGuidsBufferSize: 50 itemGuidsBufferSize: 200 instanceGuidsBufferSize: 10 @@ -192,4 +226,4 @@ perun: - "glb" - "gamelb" binary: "./gateway" - startupTimeoutSecs: 10 \ No newline at end of file + startupTimeoutSecs: 10 diff --git a/gen/characters/pb/characters.pb.go b/gen/characters/pb/characters.pb.go index b93605b..2a816a0 100644 --- a/gen/characters/pb/characters.pb.go +++ b/gen/characters/pb/characters.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: characters.proto package pb @@ -20,6 +20,311 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type ArenaTeamMutationStatus int32 + +const ( + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK ArenaTeamMutationStatus = 0 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_NOT_FOUND ArenaTeamMutationStatus = 1 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_MEMBER_MISMATCH ArenaTeamMutationStatus = 2 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_INVALID_TYPE ArenaTeamMutationStatus = 3 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_NAME_EXISTS ArenaTeamMutationStatus = 4 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM ArenaTeamMutationStatus = 5 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_ROSTER_FULL ArenaTeamMutationStatus = 6 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_FAILED ArenaTeamMutationStatus = 7 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_INVALID_NAME ArenaTeamMutationStatus = 8 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_PERMISSION_DENIED ArenaTeamMutationStatus = 9 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_LEADER_LEAVE ArenaTeamMutationStatus = 10 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_ALREADY_INVITED ArenaTeamMutationStatus = 11 + ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_IGNORING_YOU ArenaTeamMutationStatus = 12 +) + +// Enum value maps for ArenaTeamMutationStatus. +var ( + ArenaTeamMutationStatus_name = map[int32]string{ + 0: "ARENA_TEAM_MUTATION_OK", + 1: "ARENA_TEAM_MUTATION_NOT_FOUND", + 2: "ARENA_TEAM_MUTATION_MEMBER_MISMATCH", + 3: "ARENA_TEAM_MUTATION_INVALID_TYPE", + 4: "ARENA_TEAM_MUTATION_NAME_EXISTS", + 5: "ARENA_TEAM_MUTATION_ALREADY_IN_TEAM", + 6: "ARENA_TEAM_MUTATION_ROSTER_FULL", + 7: "ARENA_TEAM_MUTATION_FAILED", + 8: "ARENA_TEAM_MUTATION_INVALID_NAME", + 9: "ARENA_TEAM_MUTATION_PERMISSION_DENIED", + 10: "ARENA_TEAM_MUTATION_LEADER_LEAVE", + 11: "ARENA_TEAM_MUTATION_ALREADY_INVITED", + 12: "ARENA_TEAM_MUTATION_IGNORING_YOU", + } + ArenaTeamMutationStatus_value = map[string]int32{ + "ARENA_TEAM_MUTATION_OK": 0, + "ARENA_TEAM_MUTATION_NOT_FOUND": 1, + "ARENA_TEAM_MUTATION_MEMBER_MISMATCH": 2, + "ARENA_TEAM_MUTATION_INVALID_TYPE": 3, + "ARENA_TEAM_MUTATION_NAME_EXISTS": 4, + "ARENA_TEAM_MUTATION_ALREADY_IN_TEAM": 5, + "ARENA_TEAM_MUTATION_ROSTER_FULL": 6, + "ARENA_TEAM_MUTATION_FAILED": 7, + "ARENA_TEAM_MUTATION_INVALID_NAME": 8, + "ARENA_TEAM_MUTATION_PERMISSION_DENIED": 9, + "ARENA_TEAM_MUTATION_LEADER_LEAVE": 10, + "ARENA_TEAM_MUTATION_ALREADY_INVITED": 11, + "ARENA_TEAM_MUTATION_IGNORING_YOU": 12, + } +) + +func (x ArenaTeamMutationStatus) Enum() *ArenaTeamMutationStatus { + p := new(ArenaTeamMutationStatus) + *p = x + return p +} + +func (x ArenaTeamMutationStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ArenaTeamMutationStatus) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[0].Descriptor() +} + +func (ArenaTeamMutationStatus) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[0] +} + +func (x ArenaTeamMutationStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ArenaTeamMutationStatus.Descriptor instead. +func (ArenaTeamMutationStatus) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{0} +} + +type ArenaTeamQueueDataForRatedArenaResponse_Status int32 + +const ( + ArenaTeamQueueDataForRatedArenaResponse_Ok ArenaTeamQueueDataForRatedArenaResponse_Status = 0 + ArenaTeamQueueDataForRatedArenaResponse_NotFound ArenaTeamQueueDataForRatedArenaResponse_Status = 1 + ArenaTeamQueueDataForRatedArenaResponse_MemberMismatch ArenaTeamQueueDataForRatedArenaResponse_Status = 2 + ArenaTeamQueueDataForRatedArenaResponse_InvalidPartySize ArenaTeamQueueDataForRatedArenaResponse_Status = 3 + ArenaTeamQueueDataForRatedArenaResponse_Failed ArenaTeamQueueDataForRatedArenaResponse_Status = 4 + ArenaTeamQueueDataForRatedArenaResponse_InvalidType ArenaTeamQueueDataForRatedArenaResponse_Status = 5 +) + +// Enum value maps for ArenaTeamQueueDataForRatedArenaResponse_Status. +var ( + ArenaTeamQueueDataForRatedArenaResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "MemberMismatch", + 3: "InvalidPartySize", + 4: "Failed", + 5: "InvalidType", + } + ArenaTeamQueueDataForRatedArenaResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "MemberMismatch": 2, + "InvalidPartySize": 3, + "Failed": 4, + "InvalidType": 5, + } +) + +func (x ArenaTeamQueueDataForRatedArenaResponse_Status) Enum() *ArenaTeamQueueDataForRatedArenaResponse_Status { + p := new(ArenaTeamQueueDataForRatedArenaResponse_Status) + *p = x + return p +} + +func (x ArenaTeamQueueDataForRatedArenaResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ArenaTeamQueueDataForRatedArenaResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[1].Descriptor() +} + +func (ArenaTeamQueueDataForRatedArenaResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[1] +} + +func (x ArenaTeamQueueDataForRatedArenaResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ArenaTeamQueueDataForRatedArenaResponse_Status.Descriptor instead. +func (ArenaTeamQueueDataForRatedArenaResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{22, 0} +} + +type CreateArenaTeamFromPetitionResponse_Status int32 + +const ( + CreateArenaTeamFromPetitionResponse_Ok CreateArenaTeamFromPetitionResponse_Status = 0 + CreateArenaTeamFromPetitionResponse_NotFound CreateArenaTeamFromPetitionResponse_Status = 1 + CreateArenaTeamFromPetitionResponse_NotOwner CreateArenaTeamFromPetitionResponse_Status = 2 + CreateArenaTeamFromPetitionResponse_InvalidType CreateArenaTeamFromPetitionResponse_Status = 3 + CreateArenaTeamFromPetitionResponse_NameExists CreateArenaTeamFromPetitionResponse_Status = 4 + CreateArenaTeamFromPetitionResponse_AlreadyInTeam CreateArenaTeamFromPetitionResponse_Status = 5 + CreateArenaTeamFromPetitionResponse_NotEnoughSignatures CreateArenaTeamFromPetitionResponse_Status = 6 + CreateArenaTeamFromPetitionResponse_Failed CreateArenaTeamFromPetitionResponse_Status = 7 + CreateArenaTeamFromPetitionResponse_InvalidName CreateArenaTeamFromPetitionResponse_Status = 8 +) + +// Enum value maps for CreateArenaTeamFromPetitionResponse_Status. +var ( + CreateArenaTeamFromPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "NotOwner", + 3: "InvalidType", + 4: "NameExists", + 5: "AlreadyInTeam", + 6: "NotEnoughSignatures", + 7: "Failed", + 8: "InvalidName", + } + CreateArenaTeamFromPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "NotOwner": 2, + "InvalidType": 3, + "NameExists": 4, + "AlreadyInTeam": 5, + "NotEnoughSignatures": 6, + "Failed": 7, + "InvalidName": 8, + } +) + +func (x CreateArenaTeamFromPetitionResponse_Status) Enum() *CreateArenaTeamFromPetitionResponse_Status { + p := new(CreateArenaTeamFromPetitionResponse_Status) + *p = x + return p +} + +func (x CreateArenaTeamFromPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CreateArenaTeamFromPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[2].Descriptor() +} + +func (CreateArenaTeamFromPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[2] +} + +func (x CreateArenaTeamFromPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CreateArenaTeamFromPetitionResponse_Status.Descriptor instead. +func (CreateArenaTeamFromPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{24, 0} +} + +type GetArenaTeamResponse_Status int32 + +const ( + GetArenaTeamResponse_Ok GetArenaTeamResponse_Status = 0 + GetArenaTeamResponse_NotFound GetArenaTeamResponse_Status = 1 + GetArenaTeamResponse_Failed GetArenaTeamResponse_Status = 2 +) + +// Enum value maps for GetArenaTeamResponse_Status. +var ( + GetArenaTeamResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "Failed", + } + GetArenaTeamResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "Failed": 2, + } +) + +func (x GetArenaTeamResponse_Status) Enum() *GetArenaTeamResponse_Status { + p := new(GetArenaTeamResponse_Status) + *p = x + return p +} + +func (x GetArenaTeamResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetArenaTeamResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[3].Descriptor() +} + +func (GetArenaTeamResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[3] +} + +func (x GetArenaTeamResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetArenaTeamResponse_Status.Descriptor instead. +func (GetArenaTeamResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{28, 0} +} + +type GetArenaTeamPetitionResponse_Status int32 + +const ( + GetArenaTeamPetitionResponse_Ok GetArenaTeamPetitionResponse_Status = 0 + GetArenaTeamPetitionResponse_NotFound GetArenaTeamPetitionResponse_Status = 1 + GetArenaTeamPetitionResponse_NotArena GetArenaTeamPetitionResponse_Status = 2 + GetArenaTeamPetitionResponse_Failed GetArenaTeamPetitionResponse_Status = 3 +) + +// Enum value maps for GetArenaTeamPetitionResponse_Status. +var ( + GetArenaTeamPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "NotArena", + 3: "Failed", + } + GetArenaTeamPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "NotArena": 2, + "Failed": 3, + } +) + +func (x GetArenaTeamPetitionResponse_Status) Enum() *GetArenaTeamPetitionResponse_Status { + p := new(GetArenaTeamPetitionResponse_Status) + *p = x + return p +} + +func (x GetArenaTeamPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetArenaTeamPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_characters_proto_enumTypes[4].Descriptor() +} + +func (GetArenaTeamPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_characters_proto_enumTypes[4] +} + +func (x GetArenaTeamPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetArenaTeamPetitionResponse_Status.Descriptor instead. +func (GetArenaTeamPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{31, 0} +} + // LogInCharacter is character that should be displayed on log in screen type LogInCharacter struct { state protoimpl.MessageState @@ -51,6 +356,7 @@ type LogInCharacter struct { Banned bool `protobuf:"varint,23,opt,name=banned,proto3" json:"banned,omitempty"` Equipments []*EquipmentDisplay `protobuf:"bytes,24,rep,name=equipments,proto3" json:"equipments,omitempty"` AccountID uint32 `protobuf:"varint,25,opt,name=accountID,proto3" json:"accountID,omitempty"` + ExtraFlags uint32 `protobuf:"varint,26,opt,name=extraFlags,proto3" json:"extraFlags,omitempty"` } func (x *LogInCharacter) Reset() { @@ -260,6 +566,13 @@ func (x *LogInCharacter) GetAccountID() uint32 { return 0 } +func (x *LogInCharacter) GetExtraFlags() uint32 { + if x != nil { + return x.ExtraFlags + } + return 0 +} + type EquipmentDisplay struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -450,6 +763,7 @@ type CharactersToLoginByGUIDRequest struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` CharacterGUID uint64 `protobuf:"varint,2,opt,name=characterGUID,proto3" json:"characterGUID,omitempty"` RealmID uint32 `protobuf:"varint,3,opt,name=realmID,proto3" json:"realmID,omitempty"` + AccountID uint32 `protobuf:"varint,4,opt,name=accountID,proto3" json:"accountID,omitempty"` } func (x *CharactersToLoginByGUIDRequest) Reset() { @@ -505,6 +819,13 @@ func (x *CharactersToLoginByGUIDRequest) GetRealmID() uint32 { return 0 } +func (x *CharactersToLoginByGUIDRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + // Response that contains character to login type CharactersToLoginByGUIDResponse struct { state protoimpl.MessageState @@ -742,6 +1063,140 @@ func (x *AccountDataForAccountResponse) GetAccountData() []*AccountData { return nil } +type UpdateAccountDataForAccountRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + AccountID uint32 `protobuf:"varint,2,opt,name=accountID,proto3" json:"accountID,omitempty"` + RealmID uint32 `protobuf:"varint,3,opt,name=realmID,proto3" json:"realmID,omitempty"` + Type uint32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` + Time int64 `protobuf:"varint,5,opt,name=time,proto3" json:"time,omitempty"` + Data string `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *UpdateAccountDataForAccountRequest) Reset() { + *x = UpdateAccountDataForAccountRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAccountDataForAccountRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAccountDataForAccountRequest) ProtoMessage() {} + +func (x *UpdateAccountDataForAccountRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[9] + 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 UpdateAccountDataForAccountRequest.ProtoReflect.Descriptor instead. +func (*UpdateAccountDataForAccountRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateAccountDataForAccountRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *UpdateAccountDataForAccountRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetType() uint32 { + if x != nil { + return x.Type + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetTime() int64 { + if x != nil { + return x.Time + } + return 0 +} + +func (x *UpdateAccountDataForAccountRequest) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +type UpdateAccountDataForAccountResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *UpdateAccountDataForAccountResponse) Reset() { + *x = UpdateAccountDataForAccountResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAccountDataForAccountResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAccountDataForAccountResponse) ProtoMessage() {} + +func (x *UpdateAccountDataForAccountResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[10] + 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 UpdateAccountDataForAccountResponse.ProtoReflect.Descriptor instead. +func (*UpdateAccountDataForAccountResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateAccountDataForAccountResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + type WhoQueryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -763,7 +1218,7 @@ type WhoQueryRequest struct { func (x *WhoQueryRequest) Reset() { *x = WhoQueryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[9] + mi := &file_characters_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -776,7 +1231,7 @@ func (x *WhoQueryRequest) String() string { func (*WhoQueryRequest) ProtoMessage() {} func (x *WhoQueryRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[9] + mi := &file_characters_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -789,7 +1244,7 @@ func (x *WhoQueryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WhoQueryRequest.ProtoReflect.Descriptor instead. func (*WhoQueryRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{9} + return file_characters_proto_rawDescGZIP(), []int{11} } func (x *WhoQueryRequest) GetApi() string { @@ -882,7 +1337,7 @@ type WhoQueryResponse struct { func (x *WhoQueryResponse) Reset() { *x = WhoQueryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[10] + mi := &file_characters_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -895,7 +1350,7 @@ func (x *WhoQueryResponse) String() string { func (*WhoQueryResponse) ProtoMessage() {} func (x *WhoQueryResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[10] + mi := &file_characters_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -908,7 +1363,7 @@ func (x *WhoQueryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use WhoQueryResponse.ProtoReflect.Descriptor instead. func (*WhoQueryResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{10} + return file_characters_proto_rawDescGZIP(), []int{12} } func (x *WhoQueryResponse) GetApi() string { @@ -945,7 +1400,7 @@ type CharacterOnlineByNameRequest struct { func (x *CharacterOnlineByNameRequest) Reset() { *x = CharacterOnlineByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[11] + mi := &file_characters_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -958,7 +1413,7 @@ func (x *CharacterOnlineByNameRequest) String() string { func (*CharacterOnlineByNameRequest) ProtoMessage() {} func (x *CharacterOnlineByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[11] + mi := &file_characters_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -971,7 +1426,7 @@ func (x *CharacterOnlineByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterOnlineByNameRequest.ProtoReflect.Descriptor instead. func (*CharacterOnlineByNameRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{11} + return file_characters_proto_rawDescGZIP(), []int{13} } func (x *CharacterOnlineByNameRequest) GetApi() string { @@ -1007,7 +1462,7 @@ type CharacterOnlineByNameResponse struct { func (x *CharacterOnlineByNameResponse) Reset() { *x = CharacterOnlineByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[12] + mi := &file_characters_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1020,7 +1475,7 @@ func (x *CharacterOnlineByNameResponse) String() string { func (*CharacterOnlineByNameResponse) ProtoMessage() {} func (x *CharacterOnlineByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[12] + mi := &file_characters_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1033,7 +1488,7 @@ func (x *CharacterOnlineByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterOnlineByNameResponse.ProtoReflect.Descriptor instead. func (*CharacterOnlineByNameResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{12} + return file_characters_proto_rawDescGZIP(), []int{14} } func (x *CharacterOnlineByNameResponse) GetApi() string { @@ -1063,7 +1518,7 @@ type CharacterByNameRequest struct { func (x *CharacterByNameRequest) Reset() { *x = CharacterByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[13] + mi := &file_characters_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1076,7 +1531,7 @@ func (x *CharacterByNameRequest) String() string { func (*CharacterByNameRequest) ProtoMessage() {} func (x *CharacterByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[13] + mi := &file_characters_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1089,7 +1544,7 @@ func (x *CharacterByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterByNameRequest.ProtoReflect.Descriptor instead. func (*CharacterByNameRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{13} + return file_characters_proto_rawDescGZIP(), []int{15} } func (x *CharacterByNameRequest) GetApi() string { @@ -1125,7 +1580,7 @@ type CharacterByNameResponse struct { func (x *CharacterByNameResponse) Reset() { *x = CharacterByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[14] + mi := &file_characters_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1138,7 +1593,7 @@ func (x *CharacterByNameResponse) String() string { func (*CharacterByNameResponse) ProtoMessage() {} func (x *CharacterByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[14] + mi := &file_characters_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1151,7 +1606,7 @@ func (x *CharacterByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CharacterByNameResponse.ProtoReflect.Descriptor instead. func (*CharacterByNameResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{14} + return file_characters_proto_rawDescGZIP(), []int{16} } func (x *CharacterByNameResponse) GetApi() string { @@ -1168,33 +1623,33 @@ func (x *CharacterByNameResponse) GetCharacter() *CharacterByNameResponse_Char { return nil } -type ShortCharactersDataByGUIDsRequest struct { +type CharacterByGUIDRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - GUIDs []uint64 `protobuf:"varint,3,rep,packed,name=GUIDs,proto3" json:"GUIDs,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + CharacterGUID uint64 `protobuf:"varint,3,opt,name=characterGUID,proto3" json:"characterGUID,omitempty"` } -func (x *ShortCharactersDataByGUIDsRequest) Reset() { - *x = ShortCharactersDataByGUIDsRequest{} +func (x *CharacterByGUIDRequest) Reset() { + *x = CharacterByGUIDRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[15] + mi := &file_characters_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShortCharactersDataByGUIDsRequest) String() string { +func (x *CharacterByGUIDRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShortCharactersDataByGUIDsRequest) ProtoMessage() {} +func (*CharacterByGUIDRequest) ProtoMessage() {} -func (x *ShortCharactersDataByGUIDsRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[15] +func (x *CharacterByGUIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1205,58 +1660,58 @@ func (x *ShortCharactersDataByGUIDsRequest) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ShortCharactersDataByGUIDsRequest.ProtoReflect.Descriptor instead. -func (*ShortCharactersDataByGUIDsRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{15} +// Deprecated: Use CharacterByGUIDRequest.ProtoReflect.Descriptor instead. +func (*CharacterByGUIDRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{17} } -func (x *ShortCharactersDataByGUIDsRequest) GetApi() string { +func (x *CharacterByGUIDRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ShortCharactersDataByGUIDsRequest) GetRealmID() uint32 { +func (x *CharacterByGUIDRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *ShortCharactersDataByGUIDsRequest) GetGUIDs() []uint64 { +func (x *CharacterByGUIDRequest) GetCharacterGUID() uint64 { if x != nil { - return x.GUIDs + return x.CharacterGUID } - return nil + return 0 } -type ShortCharactersDataByGUIDsResponse struct { +type CharacterByGUIDResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Characters []*ShortCharactersDataByGUIDsResponse_ShortCharData `protobuf:"bytes,2,rep,name=characters,proto3" json:"characters,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Character *CharacterByNameResponse_Char `protobuf:"bytes,2,opt,name=character,proto3" json:"character,omitempty"` } -func (x *ShortCharactersDataByGUIDsResponse) Reset() { - *x = ShortCharactersDataByGUIDsResponse{} +func (x *CharacterByGUIDResponse) Reset() { + *x = CharacterByGUIDResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[16] + mi := &file_characters_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShortCharactersDataByGUIDsResponse) String() string { +func (x *CharacterByGUIDResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShortCharactersDataByGUIDsResponse) ProtoMessage() {} +func (*CharacterByGUIDResponse) ProtoMessage() {} -func (x *ShortCharactersDataByGUIDsResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[16] +func (x *CharacterByGUIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1267,57 +1722,52 @@ func (x *ShortCharactersDataByGUIDsResponse) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use ShortCharactersDataByGUIDsResponse.ProtoReflect.Descriptor instead. -func (*ShortCharactersDataByGUIDsResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{16} +// Deprecated: Use CharacterByGUIDResponse.ProtoReflect.Descriptor instead. +func (*CharacterByGUIDResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{18} } -func (x *ShortCharactersDataByGUIDsResponse) GetApi() string { +func (x *CharacterByGUIDResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ShortCharactersDataByGUIDsResponse) GetCharacters() []*ShortCharactersDataByGUIDsResponse_ShortCharData { +func (x *CharacterByGUIDResponse) GetCharacter() *CharacterByNameResponse_Char { if x != nil { - return x.Characters + return x.Character } return nil } -type SavePlayerPositionRequest struct { +type ShortCharactersDataByGUIDsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` - X float32 `protobuf:"fixed32,5,opt,name=x,proto3" json:"x,omitempty"` - Y float32 `protobuf:"fixed32,6,opt,name=y,proto3" json:"y,omitempty"` - Z float32 `protobuf:"fixed32,7,opt,name=z,proto3" json:"z,omitempty"` - O float32 `protobuf:"fixed32,8,opt,name=o,proto3" json:"o,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GUIDs []uint64 `protobuf:"varint,3,rep,packed,name=GUIDs,proto3" json:"GUIDs,omitempty"` } -func (x *SavePlayerPositionRequest) Reset() { - *x = SavePlayerPositionRequest{} +func (x *ShortCharactersDataByGUIDsRequest) Reset() { + *x = ShortCharactersDataByGUIDsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[17] + mi := &file_characters_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SavePlayerPositionRequest) String() string { +func (x *ShortCharactersDataByGUIDsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SavePlayerPositionRequest) ProtoMessage() {} +func (*ShortCharactersDataByGUIDsRequest) ProtoMessage() {} -func (x *SavePlayerPositionRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[17] +func (x *ShortCharactersDataByGUIDsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1328,92 +1778,58 @@ func (x *SavePlayerPositionRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SavePlayerPositionRequest.ProtoReflect.Descriptor instead. -func (*SavePlayerPositionRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{17} +// Deprecated: Use ShortCharactersDataByGUIDsRequest.ProtoReflect.Descriptor instead. +func (*ShortCharactersDataByGUIDsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{19} } -func (x *SavePlayerPositionRequest) GetApi() string { +func (x *ShortCharactersDataByGUIDsRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SavePlayerPositionRequest) GetRealmID() uint32 { +func (x *ShortCharactersDataByGUIDsRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SavePlayerPositionRequest) GetCharGUID() uint64 { - if x != nil { - return x.CharGUID - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetMapID() uint32 { - if x != nil { - return x.MapID - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetX() float32 { - if x != nil { - return x.X - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetY() float32 { - if x != nil { - return x.Y - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetZ() float32 { - if x != nil { - return x.Z - } - return 0 -} - -func (x *SavePlayerPositionRequest) GetO() float32 { +func (x *ShortCharactersDataByGUIDsRequest) GetGUIDs() []uint64 { if x != nil { - return x.O + return x.GUIDs } - return 0 + return nil } -type SavePlayerPositionResponse struct { +type ShortCharactersDataByGUIDsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Characters []*ShortCharactersDataByGUIDsResponse_ShortCharData `protobuf:"bytes,2,rep,name=characters,proto3" json:"characters,omitempty"` } -func (x *SavePlayerPositionResponse) Reset() { - *x = SavePlayerPositionResponse{} +func (x *ShortCharactersDataByGUIDsResponse) Reset() { + *x = ShortCharactersDataByGUIDsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[18] + mi := &file_characters_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SavePlayerPositionResponse) String() string { +func (x *ShortCharactersDataByGUIDsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SavePlayerPositionResponse) ProtoMessage() {} +func (*ShortCharactersDataByGUIDsResponse) ProtoMessage() {} -func (x *SavePlayerPositionResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[18] +func (x *ShortCharactersDataByGUIDsResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1424,45 +1840,55 @@ func (x *SavePlayerPositionResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SavePlayerPositionResponse.ProtoReflect.Descriptor instead. -func (*SavePlayerPositionResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{18} +// Deprecated: Use ShortCharactersDataByGUIDsResponse.ProtoReflect.Descriptor instead. +func (*ShortCharactersDataByGUIDsResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{20} } -func (x *SavePlayerPositionResponse) GetApi() string { +func (x *ShortCharactersDataByGUIDsResponse) GetApi() string { if x != nil { return x.Api } return "" } -type GetFriendsListRequest struct { +func (x *ShortCharactersDataByGUIDsResponse) GetCharacters() []*ShortCharactersDataByGUIDsResponse_ShortCharData { + if x != nil { + return x.Characters + } + return nil +} + +type ArenaTeamQueueDataForRatedArenaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,3,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + PlayerGUIDs []uint64 `protobuf:"varint,4,rep,packed,name=playerGUIDs,proto3" json:"playerGUIDs,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + StartMatchmakerRating uint32 `protobuf:"varint,6,opt,name=startMatchmakerRating,proto3" json:"startMatchmakerRating,omitempty"` } -func (x *GetFriendsListRequest) Reset() { - *x = GetFriendsListRequest{} +func (x *ArenaTeamQueueDataForRatedArenaRequest) Reset() { + *x = ArenaTeamQueueDataForRatedArenaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[19] + mi := &file_characters_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListRequest) String() string { +func (x *ArenaTeamQueueDataForRatedArenaRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListRequest) ProtoMessage() {} +func (*ArenaTeamQueueDataForRatedArenaRequest) ProtoMessage() {} -func (x *GetFriendsListRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[19] +func (x *ArenaTeamQueueDataForRatedArenaRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1473,59 +1899,83 @@ func (x *GetFriendsListRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListRequest.ProtoReflect.Descriptor instead. -func (*GetFriendsListRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{19} +// Deprecated: Use ArenaTeamQueueDataForRatedArenaRequest.ProtoReflect.Descriptor instead. +func (*ArenaTeamQueueDataForRatedArenaRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{21} } -func (x *GetFriendsListRequest) GetApi() string { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetFriendsListRequest) GetRealmID() uint32 { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *GetFriendsListRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetLeaderGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.LeaderGUID } return 0 } -type GetFriendsListResponse struct { +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetPlayerGUIDs() []uint64 { + if x != nil { + return x.PlayerGUIDs + } + return nil +} + +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetArenaType() uint32 { + if x != nil { + return x.ArenaType + } + return 0 +} + +func (x *ArenaTeamQueueDataForRatedArenaRequest) GetStartMatchmakerRating() uint32 { + if x != nil { + return x.StartMatchmakerRating + } + return 0 +} + +type ArenaTeamQueueDataForRatedArenaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Friends []*GetFriendsListResponse_Friend `protobuf:"bytes,2,rep,name=friends,proto3" json:"friends,omitempty"` - Ignored []*GetFriendsListResponse_IgnoredPlayer `protobuf:"bytes,3,rep,name=ignored,proto3" json:"ignored,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamQueueDataForRatedArenaResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamQueueDataForRatedArenaResponse_Status" json:"status,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + TeamRating uint32 `protobuf:"varint,4,opt,name=teamRating,proto3" json:"teamRating,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,5,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` + PreviousOpponentsTeamID uint32 `protobuf:"varint,6,opt,name=previousOpponentsTeamID,proto3" json:"previousOpponentsTeamID,omitempty"` } -func (x *GetFriendsListResponse) Reset() { - *x = GetFriendsListResponse{} +func (x *ArenaTeamQueueDataForRatedArenaResponse) Reset() { + *x = ArenaTeamQueueDataForRatedArenaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[20] + mi := &file_characters_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListResponse) String() string { +func (x *ArenaTeamQueueDataForRatedArenaResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListResponse) ProtoMessage() {} +func (*ArenaTeamQueueDataForRatedArenaResponse) ProtoMessage() {} -func (x *GetFriendsListResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[20] +func (x *ArenaTeamQueueDataForRatedArenaResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1536,62 +1986,90 @@ func (x *GetFriendsListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListResponse.ProtoReflect.Descriptor instead. -func (*GetFriendsListResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{20} +// Deprecated: Use ArenaTeamQueueDataForRatedArenaResponse.ProtoReflect.Descriptor instead. +func (*ArenaTeamQueueDataForRatedArenaResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{22} } -func (x *GetFriendsListResponse) GetApi() string { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetFriendsListResponse) GetFriends() []*GetFriendsListResponse_Friend { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetStatus() ArenaTeamQueueDataForRatedArenaResponse_Status { if x != nil { - return x.Friends + return x.Status } - return nil + return ArenaTeamQueueDataForRatedArenaResponse_Ok } -func (x *GetFriendsListResponse) GetIgnored() []*GetFriendsListResponse_IgnoredPlayer { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetArenaTeamID() uint32 { if x != nil { - return x.Ignored + return x.ArenaTeamID } - return nil + return 0 } -type AddFriendRequest struct { +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetTeamRating() uint32 { + if x != nil { + return x.TeamRating + } + return 0 +} + +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +func (x *ArenaTeamQueueDataForRatedArenaResponse) GetPreviousOpponentsTeamID() uint32 { + if x != nil { + return x.PreviousOpponentsTeamID + } + return 0 +} + +type CreateArenaTeamFromPetitionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` - FriendName string `protobuf:"bytes,5,opt,name=friendName,proto3" json:"friendName,omitempty"` - Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` -} - -func (x *AddFriendRequest) Reset() { - *x = AddFriendRequest{} + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + CaptainGUID uint64 `protobuf:"varint,3,opt,name=captainGUID,proto3" json:"captainGUID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,4,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + BackgroundColor uint32 `protobuf:"varint,6,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"` + EmblemStyle uint32 `protobuf:"varint,7,opt,name=emblemStyle,proto3" json:"emblemStyle,omitempty"` + EmblemColor uint32 `protobuf:"varint,8,opt,name=emblemColor,proto3" json:"emblemColor,omitempty"` + BorderStyle uint32 `protobuf:"varint,9,opt,name=borderStyle,proto3" json:"borderStyle,omitempty"` + BorderColor uint32 `protobuf:"varint,10,opt,name=borderColor,proto3" json:"borderColor,omitempty"` + StartRating uint32 `protobuf:"varint,11,opt,name=startRating,proto3" json:"startRating,omitempty"` + StartPersonalRating uint32 `protobuf:"varint,12,opt,name=startPersonalRating,proto3" json:"startPersonalRating,omitempty"` + StartMatchmakerRating uint32 `protobuf:"varint,13,opt,name=startMatchmakerRating,proto3" json:"startMatchmakerRating,omitempty"` +} + +func (x *CreateArenaTeamFromPetitionRequest) Reset() { + *x = CreateArenaTeamFromPetitionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[21] + mi := &file_characters_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddFriendRequest) String() string { +func (x *CreateArenaTeamFromPetitionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddFriendRequest) ProtoMessage() {} +func (*CreateArenaTeamFromPetitionRequest) ProtoMessage() {} -func (x *AddFriendRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[21] +func (x *CreateArenaTeamFromPetitionRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1602,168 +2080,129 @@ func (x *AddFriendRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use AddFriendRequest.ProtoReflect.Descriptor instead. -func (*AddFriendRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{21} +// Deprecated: Use CreateArenaTeamFromPetitionRequest.ProtoReflect.Descriptor instead. +func (*CreateArenaTeamFromPetitionRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{23} } -func (x *AddFriendRequest) GetApi() string { +func (x *CreateArenaTeamFromPetitionRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *AddFriendRequest) GetRealmID() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *AddFriendRequest) GetPlayerGUID() uint64 { +func (x *CreateArenaTeamFromPetitionRequest) GetCaptainGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.CaptainGUID } return 0 } -func (x *AddFriendRequest) GetFriendGUID() uint64 { +func (x *CreateArenaTeamFromPetitionRequest) GetPetitionGUID() uint64 { if x != nil { - return x.FriendGUID + return x.PetitionGUID } return 0 } -func (x *AddFriendRequest) GetFriendName() string { +func (x *CreateArenaTeamFromPetitionRequest) GetArenaType() uint32 { if x != nil { - return x.FriendName + return x.ArenaType } - return "" + return 0 } -func (x *AddFriendRequest) GetNote() string { +func (x *CreateArenaTeamFromPetitionRequest) GetBackgroundColor() uint32 { if x != nil { - return x.Note - } - return "" -} - -type AddFriendResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online - Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` - Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` - ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` -} - -func (x *AddFriendResponse) Reset() { - *x = AddFriendResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) + return x.BackgroundColor } + return 0 } -func (x *AddFriendResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddFriendResponse) ProtoMessage() {} - -func (x *AddFriendResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *CreateArenaTeamFromPetitionRequest) GetEmblemStyle() uint32 { + if x != nil { + return x.EmblemStyle } - return mi.MessageOf(x) -} - -// Deprecated: Use AddFriendResponse.ProtoReflect.Descriptor instead. -func (*AddFriendResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{22} + return 0 } -func (x *AddFriendResponse) GetApi() string { +func (x *CreateArenaTeamFromPetitionRequest) GetEmblemColor() uint32 { if x != nil { - return x.Api + return x.EmblemColor } - return "" + return 0 } -func (x *AddFriendResponse) GetResult() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetBorderStyle() uint32 { if x != nil { - return x.Result + return x.BorderStyle } return 0 } -func (x *AddFriendResponse) GetStatus() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetBorderColor() uint32 { if x != nil { - return x.Status + return x.BorderColor } return 0 } -func (x *AddFriendResponse) GetArea() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetStartRating() uint32 { if x != nil { - return x.Area + return x.StartRating } return 0 } -func (x *AddFriendResponse) GetLevel() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetStartPersonalRating() uint32 { if x != nil { - return x.Level + return x.StartPersonalRating } return 0 } -func (x *AddFriendResponse) GetClassID() uint32 { +func (x *CreateArenaTeamFromPetitionRequest) GetStartMatchmakerRating() uint32 { if x != nil { - return x.ClassID + return x.StartMatchmakerRating } return 0 } -type RemoveFriendRequest struct { +type CreateArenaTeamFromPetitionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status CreateArenaTeamFromPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.CreateArenaTeamFromPetitionResponse_Status" json:"status,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` } -func (x *RemoveFriendRequest) Reset() { - *x = RemoveFriendRequest{} +func (x *CreateArenaTeamFromPetitionResponse) Reset() { + *x = CreateArenaTeamFromPetitionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[23] + mi := &file_characters_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveFriendRequest) String() string { +func (x *CreateArenaTeamFromPetitionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveFriendRequest) ProtoMessage() {} +func (*CreateArenaTeamFromPetitionResponse) ProtoMessage() {} -func (x *RemoveFriendRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[23] +func (x *CreateArenaTeamFromPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1774,64 +2213,68 @@ func (x *RemoveFriendRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveFriendRequest.ProtoReflect.Descriptor instead. -func (*RemoveFriendRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{23} +// Deprecated: Use CreateArenaTeamFromPetitionResponse.ProtoReflect.Descriptor instead. +func (*CreateArenaTeamFromPetitionResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{24} } -func (x *RemoveFriendRequest) GetApi() string { +func (x *CreateArenaTeamFromPetitionResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *RemoveFriendRequest) GetRealmID() uint32 { - if x != nil { - return x.RealmID - } - return 0 -} - -func (x *RemoveFriendRequest) GetPlayerGUID() uint64 { +func (x *CreateArenaTeamFromPetitionResponse) GetStatus() CreateArenaTeamFromPetitionResponse_Status { if x != nil { - return x.PlayerGUID + return x.Status } - return 0 + return CreateArenaTeamFromPetitionResponse_Ok } -func (x *RemoveFriendRequest) GetFriendGUID() uint64 { +func (x *CreateArenaTeamFromPetitionResponse) GetArenaTeamID() uint32 { if x != nil { - return x.FriendGUID + return x.ArenaTeamID } return 0 } -type RemoveFriendResponse struct { +type ArenaTeamMemberData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` -} - -func (x *RemoveFriendResponse) Reset() { - *x = RemoveFriendResponse{} + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Online bool `protobuf:"varint,3,opt,name=online,proto3" json:"online,omitempty"` + Level uint32 `protobuf:"varint,4,opt,name=level,proto3" json:"level,omitempty"` + Class uint32 `protobuf:"varint,5,opt,name=class,proto3" json:"class,omitempty"` + WeekGames uint32 `protobuf:"varint,6,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,7,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,8,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,9,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + PersonalRating uint32 `protobuf:"varint,10,opt,name=personalRating,proto3" json:"personalRating,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,11,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` + MaxMMR uint32 `protobuf:"varint,12,opt,name=maxMMR,proto3" json:"maxMMR,omitempty"` +} + +func (x *ArenaTeamMemberData) Reset() { + *x = ArenaTeamMemberData{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[24] + mi := &file_characters_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveFriendResponse) String() string { +func (x *ArenaTeamMemberData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveFriendResponse) ProtoMessage() {} +func (*ArenaTeamMemberData) ProtoMessage() {} -func (x *RemoveFriendResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[24] +func (x *ArenaTeamMemberData) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1842,107 +2285,120 @@ func (x *RemoveFriendResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveFriendResponse.ProtoReflect.Descriptor instead. -func (*RemoveFriendResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{24} +// Deprecated: Use ArenaTeamMemberData.ProtoReflect.Descriptor instead. +func (*ArenaTeamMemberData) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{25} } -func (x *RemoveFriendResponse) GetApi() string { +func (x *ArenaTeamMemberData) GetPlayerGUID() uint64 { if x != nil { - return x.Api + return x.PlayerGUID } - return "" + return 0 } -type SetFriendNoteRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` - Note string `protobuf:"bytes,5,opt,name=note,proto3" json:"note,omitempty"` +func (x *ArenaTeamMemberData) GetName() string { + if x != nil { + return x.Name + } + return "" } -func (x *SetFriendNoteRequest) Reset() { - *x = SetFriendNoteRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ArenaTeamMemberData) GetOnline() bool { + if x != nil { + return x.Online } + return false } -func (x *SetFriendNoteRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ArenaTeamMemberData) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 } -func (*SetFriendNoteRequest) ProtoMessage() {} +func (x *ArenaTeamMemberData) GetClass() uint32 { + if x != nil { + return x.Class + } + return 0 +} -func (x *SetFriendNoteRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ArenaTeamMemberData) GetWeekGames() uint32 { + if x != nil { + return x.WeekGames } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use SetFriendNoteRequest.ProtoReflect.Descriptor instead. -func (*SetFriendNoteRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{25} +func (x *ArenaTeamMemberData) GetWeekWins() uint32 { + if x != nil { + return x.WeekWins + } + return 0 } -func (x *SetFriendNoteRequest) GetApi() string { +func (x *ArenaTeamMemberData) GetSeasonGames() uint32 { if x != nil { - return x.Api + return x.SeasonGames } - return "" + return 0 } -func (x *SetFriendNoteRequest) GetRealmID() uint32 { +func (x *ArenaTeamMemberData) GetSeasonWins() uint32 { if x != nil { - return x.RealmID + return x.SeasonWins } return 0 } -func (x *SetFriendNoteRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamMemberData) GetPersonalRating() uint32 { if x != nil { - return x.PlayerGUID + return x.PersonalRating } return 0 } -func (x *SetFriendNoteRequest) GetFriendGUID() uint64 { +func (x *ArenaTeamMemberData) GetMatchmakerRating() uint32 { if x != nil { - return x.FriendGUID + return x.MatchmakerRating } return 0 } -func (x *SetFriendNoteRequest) GetNote() string { +func (x *ArenaTeamMemberData) GetMaxMMR() uint32 { if x != nil { - return x.Note + return x.MaxMMR } - return "" + return 0 } -type SetFriendNoteResponse struct { +type ArenaTeamData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` -} - -func (x *SetFriendNoteResponse) Reset() { - *x = SetFriendNoteResponse{} + ArenaTeamID uint32 `protobuf:"varint,1,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + CaptainGUID uint64 `protobuf:"varint,3,opt,name=captainGUID,proto3" json:"captainGUID,omitempty"` + Type uint32 `protobuf:"varint,4,opt,name=type,proto3" json:"type,omitempty"` + Rating uint32 `protobuf:"varint,5,opt,name=rating,proto3" json:"rating,omitempty"` + WeekGames uint32 `protobuf:"varint,6,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,7,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,8,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,9,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + Rank uint32 `protobuf:"varint,10,opt,name=rank,proto3" json:"rank,omitempty"` + BackgroundColor uint32 `protobuf:"varint,11,opt,name=backgroundColor,proto3" json:"backgroundColor,omitempty"` + EmblemStyle uint32 `protobuf:"varint,12,opt,name=emblemStyle,proto3" json:"emblemStyle,omitempty"` + EmblemColor uint32 `protobuf:"varint,13,opt,name=emblemColor,proto3" json:"emblemColor,omitempty"` + BorderStyle uint32 `protobuf:"varint,14,opt,name=borderStyle,proto3" json:"borderStyle,omitempty"` + BorderColor uint32 `protobuf:"varint,15,opt,name=borderColor,proto3" json:"borderColor,omitempty"` + Members []*ArenaTeamMemberData `protobuf:"bytes,16,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *ArenaTeamData) Reset() { + *x = ArenaTeamData{} if protoimpl.UnsafeEnabled { mi := &file_characters_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1950,13 +2406,13 @@ func (x *SetFriendNoteResponse) Reset() { } } -func (x *SetFriendNoteResponse) String() string { +func (x *ArenaTeamData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetFriendNoteResponse) ProtoMessage() {} +func (*ArenaTeamData) ProtoMessage() {} -func (x *SetFriendNoteResponse) ProtoReflect() protoreflect.Message { +func (x *ArenaTeamData) ProtoReflect() protoreflect.Message { mi := &file_characters_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1968,172 +2424,150 @@ func (x *SetFriendNoteResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetFriendNoteResponse.ProtoReflect.Descriptor instead. -func (*SetFriendNoteResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ArenaTeamData.ProtoReflect.Descriptor instead. +func (*ArenaTeamData) Descriptor() ([]byte, []int) { return file_characters_proto_rawDescGZIP(), []int{26} } -func (x *SetFriendNoteResponse) GetApi() string { +func (x *ArenaTeamData) GetArenaTeamID() uint32 { if x != nil { - return x.Api + return x.ArenaTeamID } - return "" -} - -type AddIgnoreRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` + return 0 } -func (x *AddIgnoreRequest) Reset() { - *x = AddIgnoreRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ArenaTeamData) GetName() string { + if x != nil { + return x.Name } + return "" } -func (x *AddIgnoreRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*AddIgnoreRequest) ProtoMessage() {} - -func (x *AddIgnoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ArenaTeamData) GetCaptainGUID() uint64 { + if x != nil { + return x.CaptainGUID } - return mi.MessageOf(x) -} - -// Deprecated: Use AddIgnoreRequest.ProtoReflect.Descriptor instead. -func (*AddIgnoreRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{27} + return 0 } -func (x *AddIgnoreRequest) GetApi() string { +func (x *ArenaTeamData) GetType() uint32 { if x != nil { - return x.Api + return x.Type } - return "" + return 0 } -func (x *AddIgnoreRequest) GetRealmID() uint32 { +func (x *ArenaTeamData) GetRating() uint32 { if x != nil { - return x.RealmID + return x.Rating } return 0 } -func (x *AddIgnoreRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamData) GetWeekGames() uint32 { if x != nil { - return x.PlayerGUID + return x.WeekGames } return 0 } -func (x *AddIgnoreRequest) GetIgnoredGUID() uint64 { +func (x *ArenaTeamData) GetWeekWins() uint32 { if x != nil { - return x.IgnoredGUID + return x.WeekWins } return 0 } -type AddIgnoreResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value +func (x *ArenaTeamData) GetSeasonGames() uint32 { + if x != nil { + return x.SeasonGames + } + return 0 } -func (x *AddIgnoreResponse) Reset() { - *x = AddIgnoreResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *ArenaTeamData) GetSeasonWins() uint32 { + if x != nil { + return x.SeasonWins } + return 0 } -func (x *AddIgnoreResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ArenaTeamData) GetRank() uint32 { + if x != nil { + return x.Rank + } + return 0 } -func (*AddIgnoreResponse) ProtoMessage() {} +func (x *ArenaTeamData) GetBackgroundColor() uint32 { + if x != nil { + return x.BackgroundColor + } + return 0 +} -func (x *AddIgnoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *ArenaTeamData) GetEmblemStyle() uint32 { + if x != nil { + return x.EmblemStyle } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use AddIgnoreResponse.ProtoReflect.Descriptor instead. -func (*AddIgnoreResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{28} +func (x *ArenaTeamData) GetEmblemColor() uint32 { + if x != nil { + return x.EmblemColor + } + return 0 } -func (x *AddIgnoreResponse) GetApi() string { +func (x *ArenaTeamData) GetBorderStyle() uint32 { if x != nil { - return x.Api + return x.BorderStyle } - return "" + return 0 } -func (x *AddIgnoreResponse) GetResult() uint32 { +func (x *ArenaTeamData) GetBorderColor() uint32 { if x != nil { - return x.Result + return x.BorderColor } return 0 } -type RemoveIgnoreRequest struct { +func (x *ArenaTeamData) GetMembers() []*ArenaTeamMemberData { + if x != nil { + return x.Members + } + return nil +} + +type GetArenaTeamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` } -func (x *RemoveIgnoreRequest) Reset() { - *x = RemoveIgnoreRequest{} +func (x *GetArenaTeamRequest) Reset() { + *x = GetArenaTeamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[29] + mi := &file_characters_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveIgnoreRequest) String() string { +func (x *GetArenaTeamRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveIgnoreRequest) ProtoMessage() {} +func (*GetArenaTeamRequest) ProtoMessage() {} -func (x *RemoveIgnoreRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[29] +func (x *GetArenaTeamRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2144,64 +2578,59 @@ func (x *RemoveIgnoreRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveIgnoreRequest.ProtoReflect.Descriptor instead. -func (*RemoveIgnoreRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{29} +// Deprecated: Use GetArenaTeamRequest.ProtoReflect.Descriptor instead. +func (*GetArenaTeamRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{27} } -func (x *RemoveIgnoreRequest) GetApi() string { +func (x *GetArenaTeamRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *RemoveIgnoreRequest) GetRealmID() uint32 { +func (x *GetArenaTeamRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *RemoveIgnoreRequest) GetPlayerGUID() uint64 { - if x != nil { - return x.PlayerGUID - } - return 0 -} - -func (x *RemoveIgnoreRequest) GetIgnoredGUID() uint64 { +func (x *GetArenaTeamRequest) GetArenaTeamID() uint32 { if x != nil { - return x.IgnoredGUID + return x.ArenaTeamID } return 0 } -type RemoveIgnoreResponse struct { +type GetArenaTeamResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetArenaTeamResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetArenaTeamResponse_Status" json:"status,omitempty"` + Team *ArenaTeamData `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` } -func (x *RemoveIgnoreResponse) Reset() { - *x = RemoveIgnoreResponse{} +func (x *GetArenaTeamResponse) Reset() { + *x = GetArenaTeamResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[30] + mi := &file_characters_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *RemoveIgnoreResponse) String() string { +func (x *GetArenaTeamResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveIgnoreResponse) ProtoMessage() {} +func (*GetArenaTeamResponse) ProtoMessage() {} -func (x *RemoveIgnoreResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[30] +func (x *GetArenaTeamResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2212,49 +2641,62 @@ func (x *RemoveIgnoreResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use RemoveIgnoreResponse.ProtoReflect.Descriptor instead. -func (*RemoveIgnoreResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{30} +// Deprecated: Use GetArenaTeamResponse.ProtoReflect.Descriptor instead. +func (*GetArenaTeamResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{28} } -func (x *RemoveIgnoreResponse) GetApi() string { +func (x *GetArenaTeamResponse) GetApi() string { if x != nil { return x.Api } return "" } -type NotifyStatusChangeRequest struct { +func (x *GetArenaTeamResponse) GetStatus() GetArenaTeamResponse_Status { + if x != nil { + return x.Status + } + return GetArenaTeamResponse_Ok +} + +func (x *GetArenaTeamResponse) GetTeam() *ArenaTeamData { + if x != nil { + return x.Team + } + return nil +} + +type ArenaTeamPetitionData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online - Area uint32 `protobuf:"varint,5,opt,name=area,proto3" json:"area,omitempty"` - Level uint32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` - ClassID uint32 `protobuf:"varint,7,opt,name=classID,proto3" json:"classID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,1,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` + PetitionID uint32 `protobuf:"varint,2,opt,name=petitionID,proto3" json:"petitionID,omitempty"` + OwnerGUID uint64 `protobuf:"varint,3,opt,name=ownerGUID,proto3" json:"ownerGUID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + Signatures uint32 `protobuf:"varint,6,opt,name=signatures,proto3" json:"signatures,omitempty"` } -func (x *NotifyStatusChangeRequest) Reset() { - *x = NotifyStatusChangeRequest{} +func (x *ArenaTeamPetitionData) Reset() { + *x = ArenaTeamPetitionData{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[31] + mi := &file_characters_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NotifyStatusChangeRequest) String() string { +func (x *ArenaTeamPetitionData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NotifyStatusChangeRequest) ProtoMessage() {} +func (*ArenaTeamPetitionData) ProtoMessage() {} -func (x *NotifyStatusChangeRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[31] +func (x *ArenaTeamPetitionData) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2265,85 +2707,80 @@ func (x *NotifyStatusChangeRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NotifyStatusChangeRequest.ProtoReflect.Descriptor instead. -func (*NotifyStatusChangeRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{31} -} - -func (x *NotifyStatusChangeRequest) GetApi() string { - if x != nil { - return x.Api - } - return "" +// Deprecated: Use ArenaTeamPetitionData.ProtoReflect.Descriptor instead. +func (*ArenaTeamPetitionData) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{29} } -func (x *NotifyStatusChangeRequest) GetRealmID() uint32 { +func (x *ArenaTeamPetitionData) GetPetitionGUID() uint64 { if x != nil { - return x.RealmID + return x.PetitionGUID } return 0 } -func (x *NotifyStatusChangeRequest) GetPlayerGUID() uint64 { +func (x *ArenaTeamPetitionData) GetPetitionID() uint32 { if x != nil { - return x.PlayerGUID + return x.PetitionID } return 0 } -func (x *NotifyStatusChangeRequest) GetStatus() uint32 { +func (x *ArenaTeamPetitionData) GetOwnerGUID() uint64 { if x != nil { - return x.Status + return x.OwnerGUID } return 0 } -func (x *NotifyStatusChangeRequest) GetArea() uint32 { +func (x *ArenaTeamPetitionData) GetName() string { if x != nil { - return x.Area + return x.Name } - return 0 + return "" } -func (x *NotifyStatusChangeRequest) GetLevel() uint32 { +func (x *ArenaTeamPetitionData) GetArenaType() uint32 { if x != nil { - return x.Level + return x.ArenaType } return 0 } -func (x *NotifyStatusChangeRequest) GetClassID() uint32 { +func (x *ArenaTeamPetitionData) GetSignatures() uint32 { if x != nil { - return x.ClassID + return x.Signatures } return 0 } -type NotifyStatusChangeResponse struct { +type GetArenaTeamPetitionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,3,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` } -func (x *NotifyStatusChangeResponse) Reset() { - *x = NotifyStatusChangeResponse{} +func (x *GetArenaTeamPetitionRequest) Reset() { + *x = GetArenaTeamPetitionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[32] + mi := &file_characters_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NotifyStatusChangeResponse) String() string { +func (x *GetArenaTeamPetitionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NotifyStatusChangeResponse) ProtoMessage() {} +func (*GetArenaTeamPetitionRequest) ProtoMessage() {} -func (x *NotifyStatusChangeResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[32] +func (x *GetArenaTeamPetitionRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2354,44 +2791,59 @@ func (x *NotifyStatusChangeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NotifyStatusChangeResponse.ProtoReflect.Descriptor instead. -func (*NotifyStatusChangeResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{32} +// Deprecated: Use GetArenaTeamPetitionRequest.ProtoReflect.Descriptor instead. +func (*GetArenaTeamPetitionRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{30} } -func (x *NotifyStatusChangeResponse) GetApi() string { +func (x *GetArenaTeamPetitionRequest) GetApi() string { if x != nil { return x.Api } return "" } -type GetOnlineCharactersRequest struct { +func (x *GetArenaTeamPetitionRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetArenaTeamPetitionRequest) GetPetitionGUID() uint64 { + if x != nil { + return x.PetitionGUID + } + return 0 +} + +type GetArenaTeamPetitionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetArenaTeamPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetArenaTeamPetitionResponse_Status" json:"status,omitempty"` + Petition *ArenaTeamPetitionData `protobuf:"bytes,3,opt,name=petition,proto3" json:"petition,omitempty"` } -func (x *GetOnlineCharactersRequest) Reset() { - *x = GetOnlineCharactersRequest{} +func (x *GetArenaTeamPetitionResponse) Reset() { + *x = GetArenaTeamPetitionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[33] + mi := &file_characters_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetOnlineCharactersRequest) String() string { +func (x *GetArenaTeamPetitionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOnlineCharactersRequest) ProtoMessage() {} +func (*GetArenaTeamPetitionResponse) ProtoMessage() {} -func (x *GetOnlineCharactersRequest) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[33] +func (x *GetArenaTeamPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2402,52 +2854,63 @@ func (x *GetOnlineCharactersRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOnlineCharactersRequest.ProtoReflect.Descriptor instead. -func (*GetOnlineCharactersRequest) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{33} +// Deprecated: Use GetArenaTeamPetitionResponse.ProtoReflect.Descriptor instead. +func (*GetArenaTeamPetitionResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{31} } -func (x *GetOnlineCharactersRequest) GetApi() string { +func (x *GetArenaTeamPetitionResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetOnlineCharactersRequest) GetRealmID() uint32 { +func (x *GetArenaTeamPetitionResponse) GetStatus() GetArenaTeamPetitionResponse_Status { if x != nil { - return x.RealmID + return x.Status } - return 0 + return GetArenaTeamPetitionResponse_Ok } -type GetOnlineCharactersResponse struct { +func (x *GetArenaTeamPetitionResponse) GetPetition() *ArenaTeamPetitionData { + if x != nil { + return x.Petition + } + return nil +} + +type InviteArenaTeamMemberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - CharacterGUIDs []uint64 `protobuf:"varint,2,rep,packed,name=characterGUIDs,proto3" json:"characterGUIDs,omitempty"` - TotalCount uint32 `protobuf:"varint,3,opt,name=totalCount,proto3" json:"totalCount,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + InviterGUID uint64 `protobuf:"varint,4,opt,name=inviterGUID,proto3" json:"inviterGUID,omitempty"` + InviterName string `protobuf:"bytes,5,opt,name=inviterName,proto3" json:"inviterName,omitempty"` + TargetGUID uint64 `protobuf:"varint,6,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` + TargetName string `protobuf:"bytes,7,opt,name=targetName,proto3" json:"targetName,omitempty"` } -func (x *GetOnlineCharactersResponse) Reset() { - *x = GetOnlineCharactersResponse{} +func (x *InviteArenaTeamMemberRequest) Reset() { + *x = InviteArenaTeamMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[34] + mi := &file_characters_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetOnlineCharactersResponse) String() string { +func (x *InviteArenaTeamMemberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetOnlineCharactersResponse) ProtoMessage() {} +func (*InviteArenaTeamMemberRequest) ProtoMessage() {} -func (x *GetOnlineCharactersResponse) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[34] +func (x *InviteArenaTeamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2458,64 +2921,87 @@ func (x *GetOnlineCharactersResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetOnlineCharactersResponse.ProtoReflect.Descriptor instead. -func (*GetOnlineCharactersResponse) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{34} +// Deprecated: Use InviteArenaTeamMemberRequest.ProtoReflect.Descriptor instead. +func (*InviteArenaTeamMemberRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{32} } -func (x *GetOnlineCharactersResponse) GetApi() string { +func (x *InviteArenaTeamMemberRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetOnlineCharactersResponse) GetCharacterGUIDs() []uint64 { +func (x *InviteArenaTeamMemberRequest) GetRealmID() uint32 { if x != nil { - return x.CharacterGUIDs + return x.RealmID } - return nil + return 0 } -func (x *GetOnlineCharactersResponse) GetTotalCount() uint32 { +func (x *InviteArenaTeamMemberRequest) GetArenaTeamID() uint32 { if x != nil { - return x.TotalCount + return x.ArenaTeamID } return 0 } -type WhoQueryResponse_WhoItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +func (x *InviteArenaTeamMemberRequest) GetInviterGUID() uint64 { + if x != nil { + return x.InviterGUID + } + return 0 +} - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Guild string `protobuf:"bytes,3,opt,name=guild,proto3" json:"guild,omitempty"` - Lvl uint32 `protobuf:"varint,4,opt,name=lvl,proto3" json:"lvl,omitempty"` - Class uint32 `protobuf:"varint,5,opt,name=class,proto3" json:"class,omitempty"` - Race uint32 `protobuf:"varint,6,opt,name=race,proto3" json:"race,omitempty"` - Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` - ZoneID uint32 `protobuf:"varint,8,opt,name=zoneID,proto3" json:"zoneID,omitempty"` +func (x *InviteArenaTeamMemberRequest) GetInviterName() string { + if x != nil { + return x.InviterName + } + return "" } -func (x *WhoQueryResponse_WhoItem) Reset() { - *x = WhoQueryResponse_WhoItem{} +func (x *InviteArenaTeamMemberRequest) GetTargetGUID() uint64 { + if x != nil { + return x.TargetGUID + } + return 0 +} + +func (x *InviteArenaTeamMemberRequest) GetTargetName() string { + if x != nil { + return x.TargetName + } + return "" +} + +type InviteArenaTeamMemberResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamMutationStatus" json:"status,omitempty"` + Team *ArenaTeamData `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` +} + +func (x *InviteArenaTeamMemberResponse) Reset() { + *x = InviteArenaTeamMemberResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[35] + mi := &file_characters_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WhoQueryResponse_WhoItem) String() string { +func (x *InviteArenaTeamMemberResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WhoQueryResponse_WhoItem) ProtoMessage() {} +func (*InviteArenaTeamMemberResponse) ProtoMessage() {} -func (x *WhoQueryResponse_WhoItem) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[35] +func (x *InviteArenaTeamMemberResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2526,103 +3012,138 @@ func (x *WhoQueryResponse_WhoItem) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WhoQueryResponse_WhoItem.ProtoReflect.Descriptor instead. -func (*WhoQueryResponse_WhoItem) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{10, 0} +// Deprecated: Use InviteArenaTeamMemberResponse.ProtoReflect.Descriptor instead. +func (*InviteArenaTeamMemberResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{33} } -func (x *WhoQueryResponse_WhoItem) GetGuid() uint64 { +func (x *InviteArenaTeamMemberResponse) GetApi() string { if x != nil { - return x.Guid + return x.Api } - return 0 + return "" } -func (x *WhoQueryResponse_WhoItem) GetName() string { +func (x *InviteArenaTeamMemberResponse) GetStatus() ArenaTeamMutationStatus { if x != nil { - return x.Name + return x.Status } - return "" + return ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK } -func (x *WhoQueryResponse_WhoItem) GetGuild() string { +func (x *InviteArenaTeamMemberResponse) GetTeam() *ArenaTeamData { if x != nil { - return x.Guild + return x.Team } - return "" + return nil } -func (x *WhoQueryResponse_WhoItem) GetLvl() uint32 { +type AcceptArenaTeamInviteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PlayerName string `protobuf:"bytes,4,opt,name=playerName,proto3" json:"playerName,omitempty"` + PersonalRating uint32 `protobuf:"varint,5,opt,name=personalRating,proto3" json:"personalRating,omitempty"` +} + +func (x *AcceptArenaTeamInviteRequest) Reset() { + *x = AcceptArenaTeamInviteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptArenaTeamInviteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptArenaTeamInviteRequest) ProtoMessage() {} + +func (x *AcceptArenaTeamInviteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[34] + 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 AcceptArenaTeamInviteRequest.ProtoReflect.Descriptor instead. +func (*AcceptArenaTeamInviteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{34} +} + +func (x *AcceptArenaTeamInviteRequest) GetApi() string { if x != nil { - return x.Lvl + return x.Api } - return 0 + return "" } -func (x *WhoQueryResponse_WhoItem) GetClass() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetRealmID() uint32 { if x != nil { - return x.Class + return x.RealmID } return 0 } -func (x *WhoQueryResponse_WhoItem) GetRace() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetPlayerGUID() uint64 { if x != nil { - return x.Race + return x.PlayerGUID } return 0 } -func (x *WhoQueryResponse_WhoItem) GetGender() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetPlayerName() string { if x != nil { - return x.Gender + return x.PlayerName } - return 0 + return "" } -func (x *WhoQueryResponse_WhoItem) GetZoneID() uint32 { +func (x *AcceptArenaTeamInviteRequest) GetPersonalRating() uint32 { if x != nil { - return x.ZoneID + return x.PersonalRating } return 0 } -type CharacterOnlineByNameResponse_Char struct { +type AcceptArenaTeamInviteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` - GatewayID string `protobuf:"bytes,2,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` - CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - CharName string `protobuf:"bytes,4,opt,name=charName,proto3" json:"charName,omitempty"` - CharRace uint32 `protobuf:"varint,5,opt,name=charRace,proto3" json:"charRace,omitempty"` - CharClass uint32 `protobuf:"varint,6,opt,name=charClass,proto3" json:"charClass,omitempty"` - CharGender uint32 `protobuf:"varint,7,opt,name=charGender,proto3" json:"charGender,omitempty"` - CharLvl uint32 `protobuf:"varint,8,opt,name=charLvl,proto3" json:"charLvl,omitempty"` - CharZone uint32 `protobuf:"varint,9,opt,name=charZone,proto3" json:"charZone,omitempty"` - CharMap uint32 `protobuf:"varint,10,opt,name=charMap,proto3" json:"charMap,omitempty"` - CharGuildID uint64 `protobuf:"varint,11,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` - AccountID uint32 `protobuf:"varint,12,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamMutationStatus" json:"status,omitempty"` + Team *ArenaTeamData `protobuf:"bytes,3,opt,name=team,proto3" json:"team,omitempty"` } -func (x *CharacterOnlineByNameResponse_Char) Reset() { - *x = CharacterOnlineByNameResponse_Char{} +func (x *AcceptArenaTeamInviteResponse) Reset() { + *x = AcceptArenaTeamInviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[36] + mi := &file_characters_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *CharacterOnlineByNameResponse_Char) String() string { +func (x *AcceptArenaTeamInviteResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CharacterOnlineByNameResponse_Char) ProtoMessage() {} +func (*AcceptArenaTeamInviteResponse) ProtoMessage() {} -func (x *CharacterOnlineByNameResponse_Char) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[36] +func (x *AcceptArenaTeamInviteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2633,117 +3154,109 @@ func (x *CharacterOnlineByNameResponse_Char) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use CharacterOnlineByNameResponse_Char.ProtoReflect.Descriptor instead. -func (*CharacterOnlineByNameResponse_Char) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{12, 0} -} - -func (x *CharacterOnlineByNameResponse_Char) GetRealmID() uint32 { - if x != nil { - return x.RealmID - } - return 0 +// Deprecated: Use AcceptArenaTeamInviteResponse.ProtoReflect.Descriptor instead. +func (*AcceptArenaTeamInviteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{35} } -func (x *CharacterOnlineByNameResponse_Char) GetGatewayID() string { +func (x *AcceptArenaTeamInviteResponse) GetApi() string { if x != nil { - return x.GatewayID + return x.Api } return "" } -func (x *CharacterOnlineByNameResponse_Char) GetCharGUID() uint64 { +func (x *AcceptArenaTeamInviteResponse) GetStatus() ArenaTeamMutationStatus { if x != nil { - return x.CharGUID + return x.Status } - return 0 + return ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK } -func (x *CharacterOnlineByNameResponse_Char) GetCharName() string { +func (x *AcceptArenaTeamInviteResponse) GetTeam() *ArenaTeamData { if x != nil { - return x.CharName + return x.Team } - return "" + return nil } -func (x *CharacterOnlineByNameResponse_Char) GetCharRace() uint32 { - if x != nil { - return x.CharRace - } - return 0 +type DeclineArenaTeamInviteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` } -func (x *CharacterOnlineByNameResponse_Char) GetCharClass() uint32 { - if x != nil { - return x.CharClass +func (x *DeclineArenaTeamInviteRequest) Reset() { + *x = DeclineArenaTeamInviteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *CharacterOnlineByNameResponse_Char) GetCharGender() uint32 { - if x != nil { - return x.CharGender - } - return 0 +func (x *DeclineArenaTeamInviteRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CharacterOnlineByNameResponse_Char) GetCharLvl() uint32 { - if x != nil { - return x.CharLvl +func (*DeclineArenaTeamInviteRequest) ProtoMessage() {} + +func (x *DeclineArenaTeamInviteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *CharacterOnlineByNameResponse_Char) GetCharZone() uint32 { - if x != nil { - return x.CharZone - } - return 0 +// Deprecated: Use DeclineArenaTeamInviteRequest.ProtoReflect.Descriptor instead. +func (*DeclineArenaTeamInviteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{36} } -func (x *CharacterOnlineByNameResponse_Char) GetCharMap() uint32 { +func (x *DeclineArenaTeamInviteRequest) GetApi() string { if x != nil { - return x.CharMap + return x.Api } - return 0 + return "" } -func (x *CharacterOnlineByNameResponse_Char) GetCharGuildID() uint64 { +func (x *DeclineArenaTeamInviteRequest) GetRealmID() uint32 { if x != nil { - return x.CharGuildID + return x.RealmID } return 0 } -func (x *CharacterOnlineByNameResponse_Char) GetAccountID() uint32 { +func (x *DeclineArenaTeamInviteRequest) GetPlayerGUID() uint64 { if x != nil { - return x.AccountID + return x.PlayerGUID } return 0 } -type CharacterByNameResponse_Char struct { +type AddArenaTeamMemberRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` - GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` - CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` - CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` - CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` - CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` - CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` - CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` - CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` - CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` - AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,4,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PersonalRating uint32 `protobuf:"varint,5,opt,name=personalRating,proto3" json:"personalRating,omitempty"` } -func (x *CharacterByNameResponse_Char) Reset() { - *x = CharacterByNameResponse_Char{} +func (x *AddArenaTeamMemberRequest) Reset() { + *x = AddArenaTeamMemberRequest{} if protoimpl.UnsafeEnabled { mi := &file_characters_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2751,13 +3264,13 @@ func (x *CharacterByNameResponse_Char) Reset() { } } -func (x *CharacterByNameResponse_Char) String() string { +func (x *AddArenaTeamMemberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*CharacterByNameResponse_Char) ProtoMessage() {} +func (*AddArenaTeamMemberRequest) ProtoMessage() {} -func (x *CharacterByNameResponse_Char) ProtoReflect() protoreflect.Message { +func (x *AddArenaTeamMemberRequest) ProtoReflect() protoreflect.Message { mi := &file_characters_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2769,139 +3282,153 @@ func (x *CharacterByNameResponse_Char) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use CharacterByNameResponse_Char.ProtoReflect.Descriptor instead. -func (*CharacterByNameResponse_Char) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{14, 0} +// Deprecated: Use AddArenaTeamMemberRequest.ProtoReflect.Descriptor instead. +func (*AddArenaTeamMemberRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{37} } -func (x *CharacterByNameResponse_Char) GetRealmID() uint32 { +func (x *AddArenaTeamMemberRequest) GetApi() string { if x != nil { - return x.RealmID + return x.Api } - return 0 + return "" } -func (x *CharacterByNameResponse_Char) GetIsOnline() bool { +func (x *AddArenaTeamMemberRequest) GetRealmID() uint32 { if x != nil { - return x.IsOnline + return x.RealmID } - return false + return 0 } -func (x *CharacterByNameResponse_Char) GetGatewayID() string { +func (x *AddArenaTeamMemberRequest) GetArenaTeamID() uint32 { if x != nil { - return x.GatewayID + return x.ArenaTeamID } - return "" + return 0 } -func (x *CharacterByNameResponse_Char) GetCharGUID() uint64 { +func (x *AddArenaTeamMemberRequest) GetPlayerGUID() uint64 { if x != nil { - return x.CharGUID + return x.PlayerGUID } return 0 } -func (x *CharacterByNameResponse_Char) GetCharName() string { +func (x *AddArenaTeamMemberRequest) GetPersonalRating() uint32 { if x != nil { - return x.CharName + return x.PersonalRating } - return "" + return 0 } -func (x *CharacterByNameResponse_Char) GetCharRace() uint32 { - if x != nil { - return x.CharRace - } - return 0 +type RemoveArenaTeamMemberRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,4,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + ActorGUID uint64 `protobuf:"varint,5,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` } -func (x *CharacterByNameResponse_Char) GetCharClass() uint32 { - if x != nil { - return x.CharClass +func (x *RemoveArenaTeamMemberRequest) Reset() { + *x = RemoveArenaTeamMemberRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *CharacterByNameResponse_Char) GetCharGender() uint32 { - if x != nil { - return x.CharGender - } - return 0 +func (x *RemoveArenaTeamMemberRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *CharacterByNameResponse_Char) GetCharLvl() uint32 { +func (*RemoveArenaTeamMemberRequest) ProtoMessage() {} + +func (x *RemoveArenaTeamMemberRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[38] + 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 RemoveArenaTeamMemberRequest.ProtoReflect.Descriptor instead. +func (*RemoveArenaTeamMemberRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{38} +} + +func (x *RemoveArenaTeamMemberRequest) GetApi() string { if x != nil { - return x.CharLvl + return x.Api } - return 0 + return "" } -func (x *CharacterByNameResponse_Char) GetCharZone() uint32 { +func (x *RemoveArenaTeamMemberRequest) GetRealmID() uint32 { if x != nil { - return x.CharZone + return x.RealmID } return 0 } -func (x *CharacterByNameResponse_Char) GetCharMap() uint32 { +func (x *RemoveArenaTeamMemberRequest) GetArenaTeamID() uint32 { if x != nil { - return x.CharMap + return x.ArenaTeamID } return 0 } -func (x *CharacterByNameResponse_Char) GetCharGuildID() uint64 { +func (x *RemoveArenaTeamMemberRequest) GetPlayerGUID() uint64 { if x != nil { - return x.CharGuildID + return x.PlayerGUID } return 0 } -func (x *CharacterByNameResponse_Char) GetAccountID() uint32 { +func (x *RemoveArenaTeamMemberRequest) GetActorGUID() uint64 { if x != nil { - return x.AccountID + return x.ActorGUID } return 0 } -type ShortCharactersDataByGUIDsResponse_ShortCharData struct { +type DisbandArenaTeamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` - GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` - CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` - CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` - CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` - CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` - CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` - CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` - CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` - CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` - CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` - AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + ActorGUID uint64 `protobuf:"varint,4,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) Reset() { - *x = ShortCharactersDataByGUIDsResponse_ShortCharData{} +func (x *DisbandArenaTeamRequest) Reset() { + *x = DisbandArenaTeamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[38] + mi := &file_characters_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) String() string { +func (x *DisbandArenaTeamRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoMessage() {} +func (*DisbandArenaTeamRequest) ProtoMessage() {} -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[38] +func (x *DisbandArenaTeamRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2912,132 +3439,230 @@ func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use ShortCharactersDataByGUIDsResponse_ShortCharData.ProtoReflect.Descriptor instead. -func (*ShortCharactersDataByGUIDsResponse_ShortCharData) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{16, 0} +// Deprecated: Use DisbandArenaTeamRequest.ProtoReflect.Descriptor instead. +func (*DisbandArenaTeamRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{39} } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetRealmID() uint32 { +func (x *DisbandArenaTeamRequest) GetApi() string { if x != nil { - return x.RealmID + return x.Api } - return 0 + return "" } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetIsOnline() bool { +func (x *DisbandArenaTeamRequest) GetRealmID() uint32 { if x != nil { - return x.IsOnline + return x.RealmID } - return false + return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetGatewayID() string { +func (x *DisbandArenaTeamRequest) GetArenaTeamID() uint32 { if x != nil { - return x.GatewayID + return x.ArenaTeamID } - return "" + return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGUID() uint64 { +func (x *DisbandArenaTeamRequest) GetActorGUID() uint64 { if x != nil { - return x.CharGUID + return x.ActorGUID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharName() string { +type SetArenaTeamCaptainRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + CaptainGUID uint64 `protobuf:"varint,4,opt,name=captainGUID,proto3" json:"captainGUID,omitempty"` + ActorGUID uint64 `protobuf:"varint,5,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` +} + +func (x *SetArenaTeamCaptainRequest) Reset() { + *x = SetArenaTeamCaptainRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetArenaTeamCaptainRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetArenaTeamCaptainRequest) ProtoMessage() {} + +func (x *SetArenaTeamCaptainRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[40] + 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 SetArenaTeamCaptainRequest.ProtoReflect.Descriptor instead. +func (*SetArenaTeamCaptainRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{40} +} + +func (x *SetArenaTeamCaptainRequest) GetApi() string { if x != nil { - return x.CharName + return x.Api } return "" } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharRace() uint32 { +func (x *SetArenaTeamCaptainRequest) GetRealmID() uint32 { if x != nil { - return x.CharRace + return x.RealmID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharClass() uint32 { +func (x *SetArenaTeamCaptainRequest) GetArenaTeamID() uint32 { if x != nil { - return x.CharClass + return x.ArenaTeamID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGender() uint32 { +func (x *SetArenaTeamCaptainRequest) GetCaptainGUID() uint64 { if x != nil { - return x.CharGender + return x.CaptainGUID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharLvl() uint32 { +func (x *SetArenaTeamCaptainRequest) GetActorGUID() uint64 { if x != nil { - return x.CharLvl + return x.ActorGUID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharZone() uint32 { +type SetArenaTeamNameRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + ActorGUID uint64 `protobuf:"varint,5,opt,name=actorGUID,proto3" json:"actorGUID,omitempty"` +} + +func (x *SetArenaTeamNameRequest) Reset() { + *x = SetArenaTeamNameRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetArenaTeamNameRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetArenaTeamNameRequest) ProtoMessage() {} + +func (x *SetArenaTeamNameRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[41] + 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 SetArenaTeamNameRequest.ProtoReflect.Descriptor instead. +func (*SetArenaTeamNameRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{41} +} + +func (x *SetArenaTeamNameRequest) GetApi() string { if x != nil { - return x.CharZone + return x.Api } - return 0 + return "" } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharMap() uint32 { +func (x *SetArenaTeamNameRequest) GetRealmID() uint32 { if x != nil { - return x.CharMap + return x.RealmID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGuildID() uint64 { +func (x *SetArenaTeamNameRequest) GetArenaTeamID() uint32 { if x != nil { - return x.CharGuildID + return x.ArenaTeamID } return 0 } -func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetAccountID() uint32 { +func (x *SetArenaTeamNameRequest) GetName() string { if x != nil { - return x.AccountID + return x.Name + } + return "" +} + +func (x *SetArenaTeamNameRequest) GetActorGUID() uint64 { + if x != nil { + return x.ActorGUID } return 0 } -type GetFriendsListResponse_Friend struct { +type ArenaTeamStatsMember struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Note string `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0 = offline, 1 = online - Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` // zone ID if online - Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` - ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PersonalRating uint32 `protobuf:"varint,2,opt,name=personalRating,proto3" json:"personalRating,omitempty"` + WeekGames uint32 `protobuf:"varint,3,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,4,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,5,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,6,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,7,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` + MaxMMR uint32 `protobuf:"varint,8,opt,name=maxMMR,proto3" json:"maxMMR,omitempty"` + SaveArenaStats bool `protobuf:"varint,9,opt,name=saveArenaStats,proto3" json:"saveArenaStats,omitempty"` } -func (x *GetFriendsListResponse_Friend) Reset() { - *x = GetFriendsListResponse_Friend{} +func (x *ArenaTeamStatsMember) Reset() { + *x = ArenaTeamStatsMember{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[39] + mi := &file_characters_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListResponse_Friend) String() string { +func (x *ArenaTeamStatsMember) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListResponse_Friend) ProtoMessage() {} +func (*ArenaTeamStatsMember) ProtoMessage() {} -func (x *GetFriendsListResponse_Friend) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[39] +func (x *ArenaTeamStatsMember) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3048,78 +3673,109 @@ func (x *GetFriendsListResponse_Friend) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListResponse_Friend.ProtoReflect.Descriptor instead. -func (*GetFriendsListResponse_Friend) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{20, 0} +// Deprecated: Use ArenaTeamStatsMember.ProtoReflect.Descriptor instead. +func (*ArenaTeamStatsMember) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{42} } -func (x *GetFriendsListResponse_Friend) GetGuid() uint64 { +func (x *ArenaTeamStatsMember) GetPlayerGUID() uint64 { if x != nil { - return x.Guid + return x.PlayerGUID } return 0 } -func (x *GetFriendsListResponse_Friend) GetNote() string { +func (x *ArenaTeamStatsMember) GetPersonalRating() uint32 { if x != nil { - return x.Note + return x.PersonalRating } - return "" + return 0 } -func (x *GetFriendsListResponse_Friend) GetStatus() uint32 { +func (x *ArenaTeamStatsMember) GetWeekGames() uint32 { if x != nil { - return x.Status + return x.WeekGames } return 0 } -func (x *GetFriendsListResponse_Friend) GetArea() uint32 { +func (x *ArenaTeamStatsMember) GetWeekWins() uint32 { if x != nil { - return x.Area + return x.WeekWins } return 0 } -func (x *GetFriendsListResponse_Friend) GetLevel() uint32 { +func (x *ArenaTeamStatsMember) GetSeasonGames() uint32 { if x != nil { - return x.Level + return x.SeasonGames } return 0 } -func (x *GetFriendsListResponse_Friend) GetClassID() uint32 { +func (x *ArenaTeamStatsMember) GetSeasonWins() uint32 { if x != nil { - return x.ClassID + return x.SeasonWins } return 0 } -type GetFriendsListResponse_IgnoredPlayer struct { +func (x *ArenaTeamStatsMember) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +func (x *ArenaTeamStatsMember) GetMaxMMR() uint32 { + if x != nil { + return x.MaxMMR + } + return 0 +} + +func (x *ArenaTeamStatsMember) GetSaveArenaStats() bool { + if x != nil { + return x.SaveArenaStats + } + return false +} + +type SaveArenaTeamStatsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` -} - -func (x *GetFriendsListResponse_IgnoredPlayer) Reset() { - *x = GetFriendsListResponse_IgnoredPlayer{} + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,3,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + Rating uint32 `protobuf:"varint,4,opt,name=rating,proto3" json:"rating,omitempty"` + WeekGames uint32 `protobuf:"varint,5,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + WeekWins uint32 `protobuf:"varint,6,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonGames uint32 `protobuf:"varint,7,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + SeasonWins uint32 `protobuf:"varint,8,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + Rank uint32 `protobuf:"varint,9,opt,name=rank,proto3" json:"rank,omitempty"` + Slot uint32 `protobuf:"varint,10,opt,name=slot,proto3" json:"slot,omitempty"` + Members []*ArenaTeamStatsMember `protobuf:"bytes,11,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *SaveArenaTeamStatsRequest) Reset() { + *x = SaveArenaTeamStatsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_characters_proto_msgTypes[40] + mi := &file_characters_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFriendsListResponse_IgnoredPlayer) String() string { +func (x *SaveArenaTeamStatsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFriendsListResponse_IgnoredPlayer) ProtoMessage() {} +func (*SaveArenaTeamStatsRequest) ProtoMessage() {} -func (x *GetFriendsListResponse_IgnoredPlayer) ProtoReflect() protoreflect.Message { - mi := &file_characters_proto_msgTypes[40] +func (x *SaveArenaTeamStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3130,612 +3786,5132 @@ func (x *GetFriendsListResponse_IgnoredPlayer) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use GetFriendsListResponse_IgnoredPlayer.ProtoReflect.Descriptor instead. -func (*GetFriendsListResponse_IgnoredPlayer) Descriptor() ([]byte, []int) { - return file_characters_proto_rawDescGZIP(), []int{20, 1} +// Deprecated: Use SaveArenaTeamStatsRequest.ProtoReflect.Descriptor instead. +func (*SaveArenaTeamStatsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{43} } -func (x *GetFriendsListResponse_IgnoredPlayer) GetGuid() uint64 { +func (x *SaveArenaTeamStatsRequest) GetApi() string { if x != nil { - return x.Guid + return x.Api + } + return "" +} + +func (x *SaveArenaTeamStatsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID } return 0 } -var File_characters_proto protoreflect.FileDescriptor +func (x *SaveArenaTeamStatsRequest) GetArenaTeamID() uint32 { + if x != nil { + return x.ArenaTeamID + } + return 0 +} -var file_characters_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xb0, 0x05, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, - 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, - 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x68, 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x69, - 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x61, - 0x69, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x69, 0x61, - 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x61, - 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x7a, - 0x6f, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x12, - 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x74, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x44, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, - 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x52, - 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x45, 0x71, - 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, - 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x49, 0x6e, 0x76, - 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x6e, - 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0d, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, - 0x22, 0x6e, 0x0a, 0x22, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x22, 0x6b, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 0x72, 0x0a, - 0x1e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x22, 0x65, 0x0a, 0x1f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, - 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x6f, 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, 0x09, 0x63, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x22, 0x49, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, - 0x1d, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x31, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x22, 0xbb, 0x02, 0x0a, 0x0f, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x76, 0x6c, - 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x69, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x63, 0x65, 0x4d, - 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, 0x63, 0x65, 0x4d, - 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, - 0x52, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x69, 0x74, 0x65, 0x6d, - 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x68, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x1a, 0xb3, - 0x01, 0x0a, 0x07, 0x57, 0x68, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x76, 0x6c, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x76, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x72, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, - 0x6e, 0x65, 0x49, 0x44, 0x22, 0x70, 0x0a, 0x1c, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x03, 0x0a, 0x1d, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x09, 0x63, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, - 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x1a, 0xe0, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, - 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, - 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, - 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, - 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, - 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x49, 0x44, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0xea, 0x03, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, - 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, - 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x1a, 0xfc, 0x02, - 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, - 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, - 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, - 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x21, - 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x47, 0x55, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x47, 0x55, - 0x49, 0x44, 0x73, 0x22, 0x94, 0x04, 0x0a, 0x22, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, - 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x54, 0x0a, 0x0a, - 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, - 0x61, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x1a, 0x85, 0x03, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, - 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, - 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x53, - 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, - 0x12, 0x0c, 0x0a, 0x01, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x6f, 0x22, 0x2e, - 0x0a, 0x1a, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x63, - 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x22, 0xdf, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x3b, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, - 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x67, 0x6e, 0x6f, 0x72, - 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x64, 0x1a, 0x8c, 0x01, 0x0a, 0x06, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x1a, 0x23, 0x0a, 0x0d, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x04, 0x67, 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x99, 0x01, 0x0a, 0x11, 0x41, - 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0x29, 0x0a, - 0x15, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x80, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, - 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, - 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, 0x3d, 0x0a, 0x11, 0x41, - 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x13, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc3, 0x01, 0x0a, 0x19, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, - 0x61, 0x72, 0x65, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x22, 0x2e, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x22, 0x48, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x77, 0x0a, 0x1b, 0x47, 0x65, - 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x26, 0x0a, 0x0e, 0x63, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x32, 0xa4, 0x0a, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, - 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, - 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, - 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x43, 0x68, 0x61, - 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, - 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, - 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, - 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x57, - 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, - 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, - 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4a, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x20, - 0x53, 0x68, 0x6f, 0x72, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, - 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, - 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x53, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, - 0x09, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x53, 0x65, - 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x38, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x14, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, - 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, - 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x13, 0x5a, 0x11, 0x67, 0x65, - 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +func (x *SaveArenaTeamStatsRequest) GetRating() uint32 { + if x != nil { + return x.Rating + } + return 0 } -var ( - file_characters_proto_rawDescOnce sync.Once - file_characters_proto_rawDescData = file_characters_proto_rawDesc -) +func (x *SaveArenaTeamStatsRequest) GetWeekGames() uint32 { + if x != nil { + return x.WeekGames + } + return 0 +} -func file_characters_proto_rawDescGZIP() []byte { - file_characters_proto_rawDescOnce.Do(func() { - file_characters_proto_rawDescData = protoimpl.X.CompressGZIP(file_characters_proto_rawDescData) - }) - return file_characters_proto_rawDescData +func (x *SaveArenaTeamStatsRequest) GetWeekWins() uint32 { + if x != nil { + return x.WeekWins + } + return 0 } -var file_characters_proto_msgTypes = make([]protoimpl.MessageInfo, 41) -var file_characters_proto_goTypes = []interface{}{ - (*LogInCharacter)(nil), // 0: v1.LogInCharacter - (*EquipmentDisplay)(nil), // 1: v1.EquipmentDisplay - (*CharactersToLoginForAccountRequest)(nil), // 2: v1.CharactersToLoginForAccountRequest - (*CharactersToLoginForAccountResponse)(nil), // 3: v1.CharactersToLoginForAccountResponse - (*CharactersToLoginByGUIDRequest)(nil), // 4: v1.CharactersToLoginByGUIDRequest - (*CharactersToLoginByGUIDResponse)(nil), // 5: v1.CharactersToLoginByGUIDResponse - (*AccountDataForAccountRequest)(nil), // 6: v1.AccountDataForAccountRequest - (*AccountData)(nil), // 7: v1.AccountData - (*AccountDataForAccountResponse)(nil), // 8: v1.AccountDataForAccountResponse - (*WhoQueryRequest)(nil), // 9: v1.WhoQueryRequest - (*WhoQueryResponse)(nil), // 10: v1.WhoQueryResponse - (*CharacterOnlineByNameRequest)(nil), // 11: v1.CharacterOnlineByNameRequest - (*CharacterOnlineByNameResponse)(nil), // 12: v1.CharacterOnlineByNameResponse - (*CharacterByNameRequest)(nil), // 13: v1.CharacterByNameRequest - (*CharacterByNameResponse)(nil), // 14: v1.CharacterByNameResponse - (*ShortCharactersDataByGUIDsRequest)(nil), // 15: v1.ShortCharactersDataByGUIDsRequest - (*ShortCharactersDataByGUIDsResponse)(nil), // 16: v1.ShortCharactersDataByGUIDsResponse - (*SavePlayerPositionRequest)(nil), // 17: v1.SavePlayerPositionRequest - (*SavePlayerPositionResponse)(nil), // 18: v1.SavePlayerPositionResponse - (*GetFriendsListRequest)(nil), // 19: v1.GetFriendsListRequest - (*GetFriendsListResponse)(nil), // 20: v1.GetFriendsListResponse - (*AddFriendRequest)(nil), // 21: v1.AddFriendRequest - (*AddFriendResponse)(nil), // 22: v1.AddFriendResponse - (*RemoveFriendRequest)(nil), // 23: v1.RemoveFriendRequest - (*RemoveFriendResponse)(nil), // 24: v1.RemoveFriendResponse - (*SetFriendNoteRequest)(nil), // 25: v1.SetFriendNoteRequest - (*SetFriendNoteResponse)(nil), // 26: v1.SetFriendNoteResponse - (*AddIgnoreRequest)(nil), // 27: v1.AddIgnoreRequest - (*AddIgnoreResponse)(nil), // 28: v1.AddIgnoreResponse - (*RemoveIgnoreRequest)(nil), // 29: v1.RemoveIgnoreRequest - (*RemoveIgnoreResponse)(nil), // 30: v1.RemoveIgnoreResponse - (*NotifyStatusChangeRequest)(nil), // 31: v1.NotifyStatusChangeRequest - (*NotifyStatusChangeResponse)(nil), // 32: v1.NotifyStatusChangeResponse - (*GetOnlineCharactersRequest)(nil), // 33: v1.GetOnlineCharactersRequest - (*GetOnlineCharactersResponse)(nil), // 34: v1.GetOnlineCharactersResponse - (*WhoQueryResponse_WhoItem)(nil), // 35: v1.WhoQueryResponse.WhoItem - (*CharacterOnlineByNameResponse_Char)(nil), // 36: v1.CharacterOnlineByNameResponse.Char - (*CharacterByNameResponse_Char)(nil), // 37: v1.CharacterByNameResponse.Char - (*ShortCharactersDataByGUIDsResponse_ShortCharData)(nil), // 38: v1.ShortCharactersDataByGUIDsResponse.ShortCharData - (*GetFriendsListResponse_Friend)(nil), // 39: v1.GetFriendsListResponse.Friend - (*GetFriendsListResponse_IgnoredPlayer)(nil), // 40: v1.GetFriendsListResponse.IgnoredPlayer +func (x *SaveArenaTeamStatsRequest) GetSeasonGames() uint32 { + if x != nil { + return x.SeasonGames + } + return 0 } -var file_characters_proto_depIdxs = []int32{ - 1, // 0: v1.LogInCharacter.equipments:type_name -> v1.EquipmentDisplay - 0, // 1: v1.CharactersToLoginForAccountResponse.characters:type_name -> v1.LogInCharacter - 0, // 2: v1.CharactersToLoginByGUIDResponse.character:type_name -> v1.LogInCharacter - 7, // 3: v1.AccountDataForAccountResponse.accountData:type_name -> v1.AccountData - 35, // 4: v1.WhoQueryResponse.itemsToDisplay:type_name -> v1.WhoQueryResponse.WhoItem - 36, // 5: v1.CharacterOnlineByNameResponse.character:type_name -> v1.CharacterOnlineByNameResponse.Char - 37, // 6: v1.CharacterByNameResponse.character:type_name -> v1.CharacterByNameResponse.Char - 38, // 7: v1.ShortCharactersDataByGUIDsResponse.characters:type_name -> v1.ShortCharactersDataByGUIDsResponse.ShortCharData - 39, // 8: v1.GetFriendsListResponse.friends:type_name -> v1.GetFriendsListResponse.Friend - 40, // 9: v1.GetFriendsListResponse.ignored:type_name -> v1.GetFriendsListResponse.IgnoredPlayer - 2, // 10: v1.CharactersService.CharactersToLoginForAccount:input_type -> v1.CharactersToLoginForAccountRequest - 4, // 11: v1.CharactersService.CharactersToLoginByGUID:input_type -> v1.CharactersToLoginByGUIDRequest - 6, // 12: v1.CharactersService.AccountDataForAccount:input_type -> v1.AccountDataForAccountRequest - 9, // 13: v1.CharactersService.WhoQuery:input_type -> v1.WhoQueryRequest - 11, // 14: v1.CharactersService.CharacterOnlineByName:input_type -> v1.CharacterOnlineByNameRequest - 13, // 15: v1.CharactersService.CharacterByName:input_type -> v1.CharacterByNameRequest - 15, // 16: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:input_type -> v1.ShortCharactersDataByGUIDsRequest - 17, // 17: v1.CharactersService.SavePlayerPosition:input_type -> v1.SavePlayerPositionRequest - 19, // 18: v1.CharactersService.GetFriendsList:input_type -> v1.GetFriendsListRequest - 21, // 19: v1.CharactersService.AddFriend:input_type -> v1.AddFriendRequest - 23, // 20: v1.CharactersService.RemoveFriend:input_type -> v1.RemoveFriendRequest - 25, // 21: v1.CharactersService.SetFriendNote:input_type -> v1.SetFriendNoteRequest - 27, // 22: v1.CharactersService.AddIgnore:input_type -> v1.AddIgnoreRequest - 29, // 23: v1.CharactersService.RemoveIgnore:input_type -> v1.RemoveIgnoreRequest - 31, // 24: v1.CharactersService.NotifyStatusChange:input_type -> v1.NotifyStatusChangeRequest - 33, // 25: v1.CharactersService.GetOnlineCharacters:input_type -> v1.GetOnlineCharactersRequest - 3, // 26: v1.CharactersService.CharactersToLoginForAccount:output_type -> v1.CharactersToLoginForAccountResponse - 5, // 27: v1.CharactersService.CharactersToLoginByGUID:output_type -> v1.CharactersToLoginByGUIDResponse - 8, // 28: v1.CharactersService.AccountDataForAccount:output_type -> v1.AccountDataForAccountResponse - 10, // 29: v1.CharactersService.WhoQuery:output_type -> v1.WhoQueryResponse - 12, // 30: v1.CharactersService.CharacterOnlineByName:output_type -> v1.CharacterOnlineByNameResponse - 14, // 31: v1.CharactersService.CharacterByName:output_type -> v1.CharacterByNameResponse - 16, // 32: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:output_type -> v1.ShortCharactersDataByGUIDsResponse - 18, // 33: v1.CharactersService.SavePlayerPosition:output_type -> v1.SavePlayerPositionResponse - 20, // 34: v1.CharactersService.GetFriendsList:output_type -> v1.GetFriendsListResponse - 22, // 35: v1.CharactersService.AddFriend:output_type -> v1.AddFriendResponse - 24, // 36: v1.CharactersService.RemoveFriend:output_type -> v1.RemoveFriendResponse - 26, // 37: v1.CharactersService.SetFriendNote:output_type -> v1.SetFriendNoteResponse - 28, // 38: v1.CharactersService.AddIgnore:output_type -> v1.AddIgnoreResponse - 30, // 39: v1.CharactersService.RemoveIgnore:output_type -> v1.RemoveIgnoreResponse - 32, // 40: v1.CharactersService.NotifyStatusChange:output_type -> v1.NotifyStatusChangeResponse - 34, // 41: v1.CharactersService.GetOnlineCharacters:output_type -> v1.GetOnlineCharactersResponse - 26, // [26:42] is the sub-list for method output_type - 10, // [10:26] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + +func (x *SaveArenaTeamStatsRequest) GetSeasonWins() uint32 { + if x != nil { + return x.SeasonWins + } + return 0 } -func init() { file_characters_proto_init() } -func file_characters_proto_init() { - if File_characters_proto != nil { - return +func (x *SaveArenaTeamStatsRequest) GetRank() uint32 { + if x != nil { + return x.Rank } - if !protoimpl.UnsafeEnabled { - file_characters_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogInCharacter); i { + return 0 +} + +func (x *SaveArenaTeamStatsRequest) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *SaveArenaTeamStatsRequest) GetMembers() []*ArenaTeamStatsMember { + if x != nil { + return x.Members + } + return nil +} + +type DeleteAllArenaTeamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *DeleteAllArenaTeamsRequest) Reset() { + *x = DeleteAllArenaTeamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAllArenaTeamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAllArenaTeamsRequest) ProtoMessage() {} + +func (x *DeleteAllArenaTeamsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[44] + 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 DeleteAllArenaTeamsRequest.ProtoReflect.Descriptor instead. +func (*DeleteAllArenaTeamsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{44} +} + +func (x *DeleteAllArenaTeamsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DeleteAllArenaTeamsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type ValidateArenaTeamCharacterDeleteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) Reset() { + *x = ValidateArenaTeamCharacterDeleteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateArenaTeamCharacterDeleteRequest) ProtoMessage() {} + +func (x *ValidateArenaTeamCharacterDeleteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[45] + 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 ValidateArenaTeamCharacterDeleteRequest.ProtoReflect.Descriptor instead. +func (*ValidateArenaTeamCharacterDeleteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{45} +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ValidateArenaTeamCharacterDeleteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type RemovePlayerFromArenaTeamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *RemovePlayerFromArenaTeamsRequest) Reset() { + *x = RemovePlayerFromArenaTeamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemovePlayerFromArenaTeamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemovePlayerFromArenaTeamsRequest) ProtoMessage() {} + +func (x *RemovePlayerFromArenaTeamsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[46] + 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 RemovePlayerFromArenaTeamsRequest.ProtoReflect.Descriptor instead. +func (*RemovePlayerFromArenaTeamsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{46} +} + +func (x *RemovePlayerFromArenaTeamsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemovePlayerFromArenaTeamsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RemovePlayerFromArenaTeamsRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type ArenaTeamMutationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status ArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.ArenaTeamMutationStatus" json:"status,omitempty"` +} + +func (x *ArenaTeamMutationResponse) Reset() { + *x = ArenaTeamMutationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ArenaTeamMutationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ArenaTeamMutationResponse) ProtoMessage() {} + +func (x *ArenaTeamMutationResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[47] + 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 ArenaTeamMutationResponse.ProtoReflect.Descriptor instead. +func (*ArenaTeamMutationResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{47} +} + +func (x *ArenaTeamMutationResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ArenaTeamMutationResponse) GetStatus() ArenaTeamMutationStatus { + if x != nil { + return x.Status + } + return ArenaTeamMutationStatus_ARENA_TEAM_MUTATION_OK +} + +type SavePlayerPositionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + X float32 `protobuf:"fixed32,5,opt,name=x,proto3" json:"x,omitempty"` + Y float32 `protobuf:"fixed32,6,opt,name=y,proto3" json:"y,omitempty"` + Z float32 `protobuf:"fixed32,7,opt,name=z,proto3" json:"z,omitempty"` + O float32 `protobuf:"fixed32,8,opt,name=o,proto3" json:"o,omitempty"` +} + +func (x *SavePlayerPositionRequest) Reset() { + *x = SavePlayerPositionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavePlayerPositionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavePlayerPositionRequest) ProtoMessage() {} + +func (x *SavePlayerPositionRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[48] + 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 SavePlayerPositionRequest.ProtoReflect.Descriptor instead. +func (*SavePlayerPositionRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{48} +} + +func (x *SavePlayerPositionRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SavePlayerPositionRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetX() float32 { + if x != nil { + return x.X + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetY() float32 { + if x != nil { + return x.Y + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetZ() float32 { + if x != nil { + return x.Z + } + return 0 +} + +func (x *SavePlayerPositionRequest) GetO() float32 { + if x != nil { + return x.O + } + return 0 +} + +type SavePlayerPositionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SavePlayerPositionResponse) Reset() { + *x = SavePlayerPositionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SavePlayerPositionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SavePlayerPositionResponse) ProtoMessage() {} + +func (x *SavePlayerPositionResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[49] + 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 SavePlayerPositionResponse.ProtoReflect.Descriptor instead. +func (*SavePlayerPositionResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{49} +} + +func (x *SavePlayerPositionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type LfgDungeonRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + DungeonEntry uint32 `protobuf:"varint,3,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + OwnerRealmID uint32 `protobuf:"varint,6,opt,name=ownerRealmID,proto3" json:"ownerRealmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,7,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` + RequiresBoundInstance bool `protobuf:"varint,8,opt,name=requiresBoundInstance,proto3" json:"requiresBoundInstance,omitempty"` + InstanceID uint32 `protobuf:"varint,9,opt,name=instanceID,proto3" json:"instanceID,omitempty"` + BoundInstanceID uint32 `protobuf:"varint,10,opt,name=boundInstanceID,proto3" json:"boundInstanceID,omitempty"` +} + +func (x *LfgDungeonRoute) Reset() { + *x = LfgDungeonRoute{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgDungeonRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgDungeonRoute) ProtoMessage() {} + +func (x *LfgDungeonRoute) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[50] + 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 LfgDungeonRoute.ProtoReflect.Descriptor instead. +func (*LfgDungeonRoute) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{50} +} + +func (x *LfgDungeonRoute) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LfgDungeonRoute) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *LfgDungeonRoute) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *LfgDungeonRoute) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *LfgDungeonRoute) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *LfgDungeonRoute) GetOwnerRealmID() uint32 { + if x != nil { + return x.OwnerRealmID + } + return 0 +} + +func (x *LfgDungeonRoute) GetIsCrossRealm() bool { + if x != nil { + return x.IsCrossRealm + } + return false +} + +func (x *LfgDungeonRoute) GetRequiresBoundInstance() bool { + if x != nil { + return x.RequiresBoundInstance + } + return false +} + +func (x *LfgDungeonRoute) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 +} + +func (x *LfgDungeonRoute) GetBoundInstanceID() uint32 { + if x != nil { + return x.BoundInstanceID + } + return 0 +} + +type RecordLfgDungeonRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Route *LfgDungeonRoute `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` +} + +func (x *RecordLfgDungeonRouteRequest) Reset() { + *x = RecordLfgDungeonRouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordLfgDungeonRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordLfgDungeonRouteRequest) ProtoMessage() {} + +func (x *RecordLfgDungeonRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[51] + 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 RecordLfgDungeonRouteRequest.ProtoReflect.Descriptor instead. +func (*RecordLfgDungeonRouteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{51} +} + +func (x *RecordLfgDungeonRouteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RecordLfgDungeonRouteRequest) GetRoute() *LfgDungeonRoute { + if x != nil { + return x.Route + } + return nil +} + +type RecordLfgDungeonRouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RecordLfgDungeonRouteResponse) Reset() { + *x = RecordLfgDungeonRouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RecordLfgDungeonRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RecordLfgDungeonRouteResponse) ProtoMessage() {} + +func (x *RecordLfgDungeonRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[52] + 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 RecordLfgDungeonRouteResponse.ProtoReflect.Descriptor instead. +func (*RecordLfgDungeonRouteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{52} +} + +func (x *RecordLfgDungeonRouteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type ConfirmLfgDungeonRouteEnteredRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + InstanceID uint32 `protobuf:"varint,6,opt,name=instanceID,proto3" json:"instanceID,omitempty"` +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) Reset() { + *x = ConfirmLfgDungeonRouteEnteredRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfirmLfgDungeonRouteEnteredRequest) ProtoMessage() {} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[53] + 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 ConfirmLfgDungeonRouteEnteredRequest.ProtoReflect.Descriptor instead. +func (*ConfirmLfgDungeonRouteEnteredRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{53} +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *ConfirmLfgDungeonRouteEnteredRequest) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 +} + +type ConfirmLfgDungeonRouteEnteredResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Route *LfgDungeonRoute `protobuf:"bytes,2,opt,name=route,proto3" json:"route,omitempty"` +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) Reset() { + *x = ConfirmLfgDungeonRouteEnteredResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConfirmLfgDungeonRouteEnteredResponse) ProtoMessage() {} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[54] + 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 ConfirmLfgDungeonRouteEnteredResponse.ProtoReflect.Descriptor instead. +func (*ConfirmLfgDungeonRouteEnteredResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{54} +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ConfirmLfgDungeonRouteEnteredResponse) GetRoute() *LfgDungeonRoute { + if x != nil { + return x.Route + } + return nil +} + +type ClearUnboundLfgDungeonRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` +} + +func (x *ClearUnboundLfgDungeonRouteRequest) Reset() { + *x = ClearUnboundLfgDungeonRouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearUnboundLfgDungeonRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearUnboundLfgDungeonRouteRequest) ProtoMessage() {} + +func (x *ClearUnboundLfgDungeonRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[55] + 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 ClearUnboundLfgDungeonRouteRequest.ProtoReflect.Descriptor instead. +func (*ClearUnboundLfgDungeonRouteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{55} +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *ClearUnboundLfgDungeonRouteRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +type ClearUnboundLfgDungeonRouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *ClearUnboundLfgDungeonRouteResponse) Reset() { + *x = ClearUnboundLfgDungeonRouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClearUnboundLfgDungeonRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClearUnboundLfgDungeonRouteResponse) ProtoMessage() {} + +func (x *ClearUnboundLfgDungeonRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[56] + 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 ClearUnboundLfgDungeonRouteResponse.ProtoReflect.Descriptor instead. +func (*ClearUnboundLfgDungeonRouteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{56} +} + +func (x *ClearUnboundLfgDungeonRouteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type GetLfgDungeonRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` +} + +func (x *GetLfgDungeonRouteRequest) Reset() { + *x = GetLfgDungeonRouteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonRouteRequest) ProtoMessage() {} + +func (x *GetLfgDungeonRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[57] + 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 GetLfgDungeonRouteRequest.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonRouteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{57} +} + +func (x *GetLfgDungeonRouteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonRouteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetLfgDungeonRouteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *GetLfgDungeonRouteRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +type GetLfgDungeonRouteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Found bool `protobuf:"varint,2,opt,name=found,proto3" json:"found,omitempty"` + Available bool `protobuf:"varint,3,opt,name=available,proto3" json:"available,omitempty"` + Route *LfgDungeonRoute `protobuf:"bytes,4,opt,name=route,proto3" json:"route,omitempty"` +} + +func (x *GetLfgDungeonRouteResponse) Reset() { + *x = GetLfgDungeonRouteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonRouteResponse) ProtoMessage() {} + +func (x *GetLfgDungeonRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[58] + 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 GetLfgDungeonRouteResponse.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonRouteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{58} +} + +func (x *GetLfgDungeonRouteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonRouteResponse) GetFound() bool { + if x != nil { + return x.Found + } + return false +} + +func (x *GetLfgDungeonRouteResponse) GetAvailable() bool { + if x != nil { + return x.Available + } + return false +} + +func (x *GetLfgDungeonRouteResponse) GetRoute() *LfgDungeonRoute { + if x != nil { + return x.Route + } + return nil +} + +type GetFriendsListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *GetFriendsListRequest) Reset() { + *x = GetFriendsListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListRequest) ProtoMessage() {} + +func (x *GetFriendsListRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[59] + 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 GetFriendsListRequest.ProtoReflect.Descriptor instead. +func (*GetFriendsListRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{59} +} + +func (x *GetFriendsListRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetFriendsListRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetFriendsListRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type GetFriendsListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Friends []*GetFriendsListResponse_Friend `protobuf:"bytes,2,rep,name=friends,proto3" json:"friends,omitempty"` + Ignored []*GetFriendsListResponse_IgnoredPlayer `protobuf:"bytes,3,rep,name=ignored,proto3" json:"ignored,omitempty"` +} + +func (x *GetFriendsListResponse) Reset() { + *x = GetFriendsListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListResponse) ProtoMessage() {} + +func (x *GetFriendsListResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[60] + 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 GetFriendsListResponse.ProtoReflect.Descriptor instead. +func (*GetFriendsListResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{60} +} + +func (x *GetFriendsListResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetFriendsListResponse) GetFriends() []*GetFriendsListResponse_Friend { + if x != nil { + return x.Friends + } + return nil +} + +func (x *GetFriendsListResponse) GetIgnored() []*GetFriendsListResponse_IgnoredPlayer { + if x != nil { + return x.Ignored + } + return nil +} + +type AddFriendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + FriendName string `protobuf:"bytes,5,opt,name=friendName,proto3" json:"friendName,omitempty"` + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *AddFriendRequest) Reset() { + *x = AddFriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddFriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddFriendRequest) ProtoMessage() {} + +func (x *AddFriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[61] + 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 AddFriendRequest.ProtoReflect.Descriptor instead. +func (*AddFriendRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{61} +} + +func (x *AddFriendRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddFriendRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AddFriendRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AddFriendRequest) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AddFriendRequest) GetFriendName() string { + if x != nil { + return x.FriendName + } + return "" +} + +func (x *AddFriendRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type AddFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + FriendGUID uint64 `protobuf:"varint,7,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Pending bool `protobuf:"varint,8,opt,name=pending,proto3" json:"pending,omitempty"` + Accepted bool `protobuf:"varint,9,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AddFriendResponse) Reset() { + *x = AddFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddFriendResponse) ProtoMessage() {} + +func (x *AddFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[62] + 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 AddFriendResponse.ProtoReflect.Descriptor instead. +func (*AddFriendResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{62} +} + +func (x *AddFriendResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddFriendResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +func (x *AddFriendResponse) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AddFriendResponse) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *AddFriendResponse) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *AddFriendResponse) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *AddFriendResponse) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AddFriendResponse) GetPending() bool { + if x != nil { + return x.Pending + } + return false +} + +func (x *AddFriendResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AddRealIDFriendByEmailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + AccountID uint32 `protobuf:"varint,4,opt,name=accountID,proto3" json:"accountID,omitempty"` + Email string `protobuf:"bytes,5,opt,name=email,proto3" json:"email,omitempty"` + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *AddRealIDFriendByEmailRequest) Reset() { + *x = AddRealIDFriendByEmailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddRealIDFriendByEmailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddRealIDFriendByEmailRequest) ProtoMessage() {} + +func (x *AddRealIDFriendByEmailRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[63] + 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 AddRealIDFriendByEmailRequest.ProtoReflect.Descriptor instead. +func (*AddRealIDFriendByEmailRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{63} +} + +func (x *AddRealIDFriendByEmailRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddRealIDFriendByEmailRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AddRealIDFriendByEmailRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AddRealIDFriendByEmailRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *AddRealIDFriendByEmailRequest) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + +func (x *AddRealIDFriendByEmailRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type AddRealIDFriendByEmailResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + FriendGUID uint64 `protobuf:"varint,7,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Pending bool `protobuf:"varint,8,opt,name=pending,proto3" json:"pending,omitempty"` + Accepted bool `protobuf:"varint,9,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AddRealIDFriendByEmailResponse) Reset() { + *x = AddRealIDFriendByEmailResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddRealIDFriendByEmailResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddRealIDFriendByEmailResponse) ProtoMessage() {} + +func (x *AddRealIDFriendByEmailResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[64] + 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 AddRealIDFriendByEmailResponse.ProtoReflect.Descriptor instead. +func (*AddRealIDFriendByEmailResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{64} +} + +func (x *AddRealIDFriendByEmailResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddRealIDFriendByEmailResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AddRealIDFriendByEmailResponse) GetPending() bool { + if x != nil { + return x.Pending + } + return false +} + +func (x *AddRealIDFriendByEmailResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AcceptRealIDFriendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + AccountID uint32 `protobuf:"varint,4,opt,name=accountID,proto3" json:"accountID,omitempty"` + RequesterAccountID uint32 `protobuf:"varint,5,opt,name=requesterAccountID,proto3" json:"requesterAccountID,omitempty"` + Note string `protobuf:"bytes,6,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *AcceptRealIDFriendRequest) Reset() { + *x = AcceptRealIDFriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptRealIDFriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptRealIDFriendRequest) ProtoMessage() {} + +func (x *AcceptRealIDFriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[65] + 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 AcceptRealIDFriendRequest.ProtoReflect.Descriptor instead. +func (*AcceptRealIDFriendRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{65} +} + +func (x *AcceptRealIDFriendRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AcceptRealIDFriendRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetRequesterAccountID() uint32 { + if x != nil { + return x.RequesterAccountID + } + return 0 +} + +func (x *AcceptRealIDFriendRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type AcceptRealIDFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + FriendGUID uint64 `protobuf:"varint,7,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Pending bool `protobuf:"varint,8,opt,name=pending,proto3" json:"pending,omitempty"` + Accepted bool `protobuf:"varint,9,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AcceptRealIDFriendResponse) Reset() { + *x = AcceptRealIDFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptRealIDFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptRealIDFriendResponse) ProtoMessage() {} + +func (x *AcceptRealIDFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[66] + 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 AcceptRealIDFriendResponse.ProtoReflect.Descriptor instead. +func (*AcceptRealIDFriendResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{66} +} + +func (x *AcceptRealIDFriendResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AcceptRealIDFriendResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *AcceptRealIDFriendResponse) GetPending() bool { + if x != nil { + return x.Pending + } + return false +} + +func (x *AcceptRealIDFriendResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type AreRealIDFriendsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + AccountID uint32 `protobuf:"varint,2,opt,name=accountID,proto3" json:"accountID,omitempty"` + FriendAccountID uint32 `protobuf:"varint,3,opt,name=friendAccountID,proto3" json:"friendAccountID,omitempty"` +} + +func (x *AreRealIDFriendsRequest) Reset() { + *x = AreRealIDFriendsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AreRealIDFriendsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreRealIDFriendsRequest) ProtoMessage() {} + +func (x *AreRealIDFriendsRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[67] + 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 AreRealIDFriendsRequest.ProtoReflect.Descriptor instead. +func (*AreRealIDFriendsRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{67} +} + +func (x *AreRealIDFriendsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AreRealIDFriendsRequest) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +func (x *AreRealIDFriendsRequest) GetFriendAccountID() uint32 { + if x != nil { + return x.FriendAccountID + } + return 0 +} + +type AreRealIDFriendsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Accepted bool `protobuf:"varint,2,opt,name=accepted,proto3" json:"accepted,omitempty"` +} + +func (x *AreRealIDFriendsResponse) Reset() { + *x = AreRealIDFriendsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AreRealIDFriendsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AreRealIDFriendsResponse) ProtoMessage() {} + +func (x *AreRealIDFriendsResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[68] + 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 AreRealIDFriendsResponse.ProtoReflect.Descriptor instead. +func (*AreRealIDFriendsResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{68} +} + +func (x *AreRealIDFriendsResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AreRealIDFriendsResponse) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +type RemoveFriendRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` +} + +func (x *RemoveFriendRequest) Reset() { + *x = RemoveFriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveFriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveFriendRequest) ProtoMessage() {} + +func (x *RemoveFriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[69] + 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 RemoveFriendRequest.ProtoReflect.Descriptor instead. +func (*RemoveFriendRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{69} +} + +func (x *RemoveFriendRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemoveFriendRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RemoveFriendRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *RemoveFriendRequest) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +type RemoveFriendResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RemoveFriendResponse) Reset() { + *x = RemoveFriendResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveFriendResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveFriendResponse) ProtoMessage() {} + +func (x *RemoveFriendResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[70] + 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 RemoveFriendResponse.ProtoReflect.Descriptor instead. +func (*RemoveFriendResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{70} +} + +func (x *RemoveFriendResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetFriendNoteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + FriendGUID uint64 `protobuf:"varint,4,opt,name=friendGUID,proto3" json:"friendGUID,omitempty"` + Note string `protobuf:"bytes,5,opt,name=note,proto3" json:"note,omitempty"` +} + +func (x *SetFriendNoteRequest) Reset() { + *x = SetFriendNoteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetFriendNoteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetFriendNoteRequest) ProtoMessage() {} + +func (x *SetFriendNoteRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[71] + 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 SetFriendNoteRequest.ProtoReflect.Descriptor instead. +func (*SetFriendNoteRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{71} +} + +func (x *SetFriendNoteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetFriendNoteRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetFriendNoteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetFriendNoteRequest) GetFriendGUID() uint64 { + if x != nil { + return x.FriendGUID + } + return 0 +} + +func (x *SetFriendNoteRequest) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +type SetFriendNoteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetFriendNoteResponse) Reset() { + *x = SetFriendNoteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetFriendNoteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetFriendNoteResponse) ProtoMessage() {} + +func (x *SetFriendNoteResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[72] + 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 SetFriendNoteResponse.ProtoReflect.Descriptor instead. +func (*SetFriendNoteResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{72} +} + +func (x *SetFriendNoteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type AddIgnoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` +} + +func (x *AddIgnoreRequest) Reset() { + *x = AddIgnoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddIgnoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddIgnoreRequest) ProtoMessage() {} + +func (x *AddIgnoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[73] + 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 AddIgnoreRequest.ProtoReflect.Descriptor instead. +func (*AddIgnoreRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{73} +} + +func (x *AddIgnoreRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddIgnoreRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AddIgnoreRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AddIgnoreRequest) GetIgnoredGUID() uint64 { + if x != nil { + return x.IgnoredGUID + } + return 0 +} + +type AddIgnoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result uint32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` // FriendsResult enum value +} + +func (x *AddIgnoreResponse) Reset() { + *x = AddIgnoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddIgnoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddIgnoreResponse) ProtoMessage() {} + +func (x *AddIgnoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[74] + 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 AddIgnoreResponse.ProtoReflect.Descriptor instead. +func (*AddIgnoreResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{74} +} + +func (x *AddIgnoreResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AddIgnoreResponse) GetResult() uint32 { + if x != nil { + return x.Result + } + return 0 +} + +type RemoveIgnoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + IgnoredGUID uint64 `protobuf:"varint,4,opt,name=ignoredGUID,proto3" json:"ignoredGUID,omitempty"` +} + +func (x *RemoveIgnoreRequest) Reset() { + *x = RemoveIgnoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIgnoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIgnoreRequest) ProtoMessage() {} + +func (x *RemoveIgnoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[75] + 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 RemoveIgnoreRequest.ProtoReflect.Descriptor instead. +func (*RemoveIgnoreRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{75} +} + +func (x *RemoveIgnoreRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemoveIgnoreRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RemoveIgnoreRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *RemoveIgnoreRequest) GetIgnoredGUID() uint64 { + if x != nil { + return x.IgnoredGUID + } + return 0 +} + +type RemoveIgnoreResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RemoveIgnoreResponse) Reset() { + *x = RemoveIgnoreResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIgnoreResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIgnoreResponse) ProtoMessage() {} + +func (x *RemoveIgnoreResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[76] + 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 RemoveIgnoreResponse.ProtoReflect.Descriptor instead. +func (*RemoveIgnoreResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{76} +} + +func (x *RemoveIgnoreResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type NotifyStatusChangeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Status uint32 `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` // 0=offline, 1=online + Area uint32 `protobuf:"varint,5,opt,name=area,proto3" json:"area,omitempty"` + Level uint32 `protobuf:"varint,6,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,7,opt,name=classID,proto3" json:"classID,omitempty"` +} + +func (x *NotifyStatusChangeRequest) Reset() { + *x = NotifyStatusChangeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyStatusChangeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyStatusChangeRequest) ProtoMessage() {} + +func (x *NotifyStatusChangeRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[77] + 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 NotifyStatusChangeRequest.ProtoReflect.Descriptor instead. +func (*NotifyStatusChangeRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{77} +} + +func (x *NotifyStatusChangeRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *NotifyStatusChangeRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *NotifyStatusChangeRequest) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +type NotifyStatusChangeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *NotifyStatusChangeResponse) Reset() { + *x = NotifyStatusChangeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NotifyStatusChangeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NotifyStatusChangeResponse) ProtoMessage() {} + +func (x *NotifyStatusChangeResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[78] + 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 NotifyStatusChangeResponse.ProtoReflect.Descriptor instead. +func (*NotifyStatusChangeResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{78} +} + +func (x *NotifyStatusChangeResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type GetOnlineCharactersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetOnlineCharactersRequest) Reset() { + *x = GetOnlineCharactersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOnlineCharactersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOnlineCharactersRequest) ProtoMessage() {} + +func (x *GetOnlineCharactersRequest) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[79] + 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 GetOnlineCharactersRequest.ProtoReflect.Descriptor instead. +func (*GetOnlineCharactersRequest) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{79} +} + +func (x *GetOnlineCharactersRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetOnlineCharactersRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type GetOnlineCharactersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + CharacterGUIDs []uint64 `protobuf:"varint,2,rep,packed,name=characterGUIDs,proto3" json:"characterGUIDs,omitempty"` + TotalCount uint32 `protobuf:"varint,3,opt,name=totalCount,proto3" json:"totalCount,omitempty"` +} + +func (x *GetOnlineCharactersResponse) Reset() { + *x = GetOnlineCharactersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOnlineCharactersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOnlineCharactersResponse) ProtoMessage() {} + +func (x *GetOnlineCharactersResponse) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[80] + 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 GetOnlineCharactersResponse.ProtoReflect.Descriptor instead. +func (*GetOnlineCharactersResponse) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{80} +} + +func (x *GetOnlineCharactersResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetOnlineCharactersResponse) GetCharacterGUIDs() []uint64 { + if x != nil { + return x.CharacterGUIDs + } + return nil +} + +func (x *GetOnlineCharactersResponse) GetTotalCount() uint32 { + if x != nil { + return x.TotalCount + } + return 0 +} + +type WhoQueryResponse_WhoItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Guild string `protobuf:"bytes,3,opt,name=guild,proto3" json:"guild,omitempty"` + Lvl uint32 `protobuf:"varint,4,opt,name=lvl,proto3" json:"lvl,omitempty"` + Class uint32 `protobuf:"varint,5,opt,name=class,proto3" json:"class,omitempty"` + Race uint32 `protobuf:"varint,6,opt,name=race,proto3" json:"race,omitempty"` + Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` + ZoneID uint32 `protobuf:"varint,8,opt,name=zoneID,proto3" json:"zoneID,omitempty"` +} + +func (x *WhoQueryResponse_WhoItem) Reset() { + *x = WhoQueryResponse_WhoItem{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WhoQueryResponse_WhoItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WhoQueryResponse_WhoItem) ProtoMessage() {} + +func (x *WhoQueryResponse_WhoItem) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[81] + 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 WhoQueryResponse_WhoItem.ProtoReflect.Descriptor instead. +func (*WhoQueryResponse_WhoItem) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *WhoQueryResponse_WhoItem) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *WhoQueryResponse_WhoItem) GetGuild() string { + if x != nil { + return x.Guild + } + return "" +} + +func (x *WhoQueryResponse_WhoItem) GetLvl() uint32 { + if x != nil { + return x.Lvl + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetClass() uint32 { + if x != nil { + return x.Class + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetRace() uint32 { + if x != nil { + return x.Race + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetGender() uint32 { + if x != nil { + return x.Gender + } + return 0 +} + +func (x *WhoQueryResponse_WhoItem) GetZoneID() uint32 { + if x != nil { + return x.ZoneID + } + return 0 +} + +type CharacterOnlineByNameResponse_Char struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + GatewayID string `protobuf:"bytes,2,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + CharGUID uint64 `protobuf:"varint,3,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + CharName string `protobuf:"bytes,4,opt,name=charName,proto3" json:"charName,omitempty"` + CharRace uint32 `protobuf:"varint,5,opt,name=charRace,proto3" json:"charRace,omitempty"` + CharClass uint32 `protobuf:"varint,6,opt,name=charClass,proto3" json:"charClass,omitempty"` + CharGender uint32 `protobuf:"varint,7,opt,name=charGender,proto3" json:"charGender,omitempty"` + CharLvl uint32 `protobuf:"varint,8,opt,name=charLvl,proto3" json:"charLvl,omitempty"` + CharZone uint32 `protobuf:"varint,9,opt,name=charZone,proto3" json:"charZone,omitempty"` + CharMap uint32 `protobuf:"varint,10,opt,name=charMap,proto3" json:"charMap,omitempty"` + CharGuildID uint64 `protobuf:"varint,11,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` + AccountID uint32 `protobuf:"varint,12,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *CharacterOnlineByNameResponse_Char) Reset() { + *x = CharacterOnlineByNameResponse_Char{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CharacterOnlineByNameResponse_Char) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CharacterOnlineByNameResponse_Char) ProtoMessage() {} + +func (x *CharacterOnlineByNameResponse_Char) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[82] + 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 CharacterOnlineByNameResponse_Char.ProtoReflect.Descriptor instead. +func (*CharacterOnlineByNameResponse_Char) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{14, 0} +} + +func (x *CharacterOnlineByNameResponse_Char) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharName() string { + if x != nil { + return x.CharName + } + return "" +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharRace() uint32 { + if x != nil { + return x.CharRace + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharClass() uint32 { + if x != nil { + return x.CharClass + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharGender() uint32 { + if x != nil { + return x.CharGender + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharLvl() uint32 { + if x != nil { + return x.CharLvl + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharZone() uint32 { + if x != nil { + return x.CharZone + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharMap() uint32 { + if x != nil { + return x.CharMap + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetCharGuildID() uint64 { + if x != nil { + return x.CharGuildID + } + return 0 +} + +func (x *CharacterOnlineByNameResponse_Char) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +type CharacterByNameResponse_Char struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` + CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` + CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` + CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` + CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` + CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` + CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` + CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` + AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *CharacterByNameResponse_Char) Reset() { + *x = CharacterByNameResponse_Char{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CharacterByNameResponse_Char) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CharacterByNameResponse_Char) ProtoMessage() {} + +func (x *CharacterByNameResponse_Char) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[83] + 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 CharacterByNameResponse_Char.ProtoReflect.Descriptor instead. +func (*CharacterByNameResponse_Char) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{16, 0} +} + +func (x *CharacterByNameResponse_Char) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *CharacterByNameResponse_Char) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" +} + +func (x *CharacterByNameResponse_Char) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharName() string { + if x != nil { + return x.CharName + } + return "" +} + +func (x *CharacterByNameResponse_Char) GetCharRace() uint32 { + if x != nil { + return x.CharRace + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharClass() uint32 { + if x != nil { + return x.CharClass + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharGender() uint32 { + if x != nil { + return x.CharGender + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharLvl() uint32 { + if x != nil { + return x.CharLvl + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharZone() uint32 { + if x != nil { + return x.CharZone + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharMap() uint32 { + if x != nil { + return x.CharMap + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetCharGuildID() uint64 { + if x != nil { + return x.CharGuildID + } + return 0 +} + +func (x *CharacterByNameResponse_Char) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +type ShortCharactersDataByGUIDsResponse_ShortCharData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsOnline bool `protobuf:"varint,2,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + GatewayID string `protobuf:"bytes,3,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + CharGUID uint64 `protobuf:"varint,4,opt,name=charGUID,proto3" json:"charGUID,omitempty"` + CharName string `protobuf:"bytes,5,opt,name=charName,proto3" json:"charName,omitempty"` + CharRace uint32 `protobuf:"varint,6,opt,name=charRace,proto3" json:"charRace,omitempty"` + CharClass uint32 `protobuf:"varint,7,opt,name=charClass,proto3" json:"charClass,omitempty"` + CharGender uint32 `protobuf:"varint,8,opt,name=charGender,proto3" json:"charGender,omitempty"` + CharLvl uint32 `protobuf:"varint,9,opt,name=charLvl,proto3" json:"charLvl,omitempty"` + CharZone uint32 `protobuf:"varint,10,opt,name=charZone,proto3" json:"charZone,omitempty"` + CharMap uint32 `protobuf:"varint,11,opt,name=charMap,proto3" json:"charMap,omitempty"` + CharGuildID uint64 `protobuf:"varint,12,opt,name=charGuildID,proto3" json:"charGuildID,omitempty"` + AccountID uint32 `protobuf:"varint,13,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) Reset() { + *x = ShortCharactersDataByGUIDsResponse_ShortCharData{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoMessage() {} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[84] + 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 ShortCharactersDataByGUIDsResponse_ShortCharData.ProtoReflect.Descriptor instead. +func (*ShortCharactersDataByGUIDsResponse_ShortCharData) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{20, 0} +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGUID() uint64 { + if x != nil { + return x.CharGUID + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharName() string { + if x != nil { + return x.CharName + } + return "" +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharRace() uint32 { + if x != nil { + return x.CharRace + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharClass() uint32 { + if x != nil { + return x.CharClass + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGender() uint32 { + if x != nil { + return x.CharGender + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharLvl() uint32 { + if x != nil { + return x.CharLvl + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharZone() uint32 { + if x != nil { + return x.CharZone + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharMap() uint32 { + if x != nil { + return x.CharMap + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetCharGuildID() uint64 { + if x != nil { + return x.CharGuildID + } + return 0 +} + +func (x *ShortCharactersDataByGUIDsResponse_ShortCharData) GetAccountID() uint32 { + if x != nil { + return x.AccountID + } + return 0 +} + +type GetFriendsListResponse_Friend struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Note string `protobuf:"bytes,2,opt,name=note,proto3" json:"note,omitempty"` + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` // 0 = offline, 1 = online + Area uint32 `protobuf:"varint,4,opt,name=area,proto3" json:"area,omitempty"` // zone ID if online + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + RealmID uint32 `protobuf:"varint,7,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetFriendsListResponse_Friend) Reset() { + *x = GetFriendsListResponse_Friend{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListResponse_Friend) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListResponse_Friend) ProtoMessage() {} + +func (x *GetFriendsListResponse_Friend) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[85] + 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 GetFriendsListResponse_Friend.ProtoReflect.Descriptor instead. +func (*GetFriendsListResponse_Friend) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{60, 0} +} + +func (x *GetFriendsListResponse_Friend) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +func (x *GetFriendsListResponse_Friend) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetArea() uint32 { + if x != nil { + return x.Area + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *GetFriendsListResponse_Friend) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type GetFriendsListResponse_IgnoredPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` +} + +func (x *GetFriendsListResponse_IgnoredPlayer) Reset() { + *x = GetFriendsListResponse_IgnoredPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_characters_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFriendsListResponse_IgnoredPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFriendsListResponse_IgnoredPlayer) ProtoMessage() {} + +func (x *GetFriendsListResponse_IgnoredPlayer) ProtoReflect() protoreflect.Message { + mi := &file_characters_proto_msgTypes[86] + 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 GetFriendsListResponse_IgnoredPlayer.ProtoReflect.Descriptor instead. +func (*GetFriendsListResponse_IgnoredPlayer) Descriptor() ([]byte, []int) { + return file_characters_proto_rawDescGZIP(), []int{60, 1} +} + +func (x *GetFriendsListResponse_IgnoredPlayer) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +var File_characters_proto protoreflect.FileDescriptor + +var file_characters_proto_rawDesc = []byte{ + 0x0a, 0x10, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xd0, 0x05, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x67, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x63, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, + 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x68, 0x61, 0x69, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x69, + 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x68, 0x61, + 0x69, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x61, 0x63, 0x69, 0x61, + 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x66, 0x61, + 0x63, 0x69, 0x61, 0x6c, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x7a, + 0x6f, 0x6e, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x70, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x6d, 0x61, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x58, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x59, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5a, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x74, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x61, 0x74, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x44, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x65, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, + 0x06, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x62, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x52, + 0x0a, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, + 0x72, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, + 0x78, 0x74, 0x72, 0x61, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x45, 0x71, + 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x24, + 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x49, 0x6e, 0x76, + 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x45, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, + 0x22, 0x6e, 0x0a, 0x22, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x22, 0x6b, 0x0a, 0x23, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x22, 0x90, 0x01, + 0x0a, 0x1e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x22, 0x65, 0x0a, 0x1f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x49, 0x6e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x22, 0x49, 0x0a, 0x0b, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x1d, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x31, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x22, 0xaa, 0x01, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x37, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xbb, 0x02, 0x0a, 0x0f, 0x57, 0x68, 0x6f, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x24, + 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x6c, 0x76, 0x6c, 0x4d, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x76, 0x6c, 0x4d, 0x61, 0x78, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x72, 0x61, 0x63, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x05, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xc0, 0x02, 0x0a, 0x10, 0x57, 0x68, 0x6f, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, + 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x44, 0x0a, + 0x0e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x68, 0x6f, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x54, 0x6f, 0x44, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x1a, 0xb3, 0x01, 0x0a, 0x07, 0x57, 0x68, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, + 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x10, 0x0a, + 0x03, 0x6c, 0x76, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x76, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x22, 0x70, 0x0a, 0x1c, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x03, 0x0a, 0x1d, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x44, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x1a, 0xe0, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, + 0x4c, 0x76, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, + 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, + 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xea, 0x03, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x1a, 0xfc, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, + 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, + 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, + 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, + 0x44, 0x22, 0x6a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, + 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x6b, 0x0a, + 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x52, + 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x22, 0x65, 0x0a, 0x21, 0x53, 0x68, + 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, + 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x47, + 0x55, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x47, 0x55, 0x49, 0x44, + 0x73, 0x22, 0x94, 0x04, 0x0a, 0x22, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x54, 0x0a, 0x0a, 0x63, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, + 0x1a, 0x85, 0x03, 0x0a, 0x0d, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x52, 0x61, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, + 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, + 0x61, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, + 0x4c, 0x76, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4c, + 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x68, 0x61, 0x72, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x63, 0x68, 0x61, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0xea, 0x01, 0x0a, 0x26, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, + 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x34, 0x0a, 0x15, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x96, 0x03, 0x0a, 0x27, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x65, 0x61, 0x6d, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x38, 0x0a, + 0x17, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x73, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, + 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x4f, 0x70, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, + 0x73, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x69, 0x73, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x10, + 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0f, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x10, 0x05, 0x22, 0xf0, + 0x03, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x53, 0x74, 0x79, 0x6c, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x79, + 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, + 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x34, 0x0a, 0x15, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x22, 0xba, 0x02, 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x46, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x96, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x49, 0x6e, 0x54, 0x65, 0x61, 0x6d, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x4e, 0x6f, 0x74, 0x45, + 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x10, + 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x07, 0x12, 0x0f, 0x0a, + 0x0b, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x08, 0x22, 0xf5, + 0x02, 0x0a, 0x13, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1c, + 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, + 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x22, 0x88, 0x04, 0x0a, 0x0d, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, + 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, + 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, + 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x0f, + 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x6d, + 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x6d, 0x62, + 0x6c, 0x65, 0x6d, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x62, 0x6c, + 0x65, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, + 0x6d, 0x62, 0x6c, 0x65, 0x6d, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x62, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x31, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x22, 0x63, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x74, 0x65, 0x61, + 0x6d, 0x22, 0x2a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, + 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0xcb, 0x01, + 0x0a, 0x15, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0x6d, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3f, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, + 0x0a, 0x08, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x70, 0x65, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x38, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, + 0xf0, 0x01, 0x0a, 0x1c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, + 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x74, + 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x22, 0xb2, 0x01, 0x0a, 0x1c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x8d, 0x01, 0x0a, 0x1d, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x25, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x22, 0x6b, 0x0a, 0x1d, 0x44, 0x65, 0x63, 0x6c, 0x69, + 0x6e, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0xaa, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x85, 0x01, 0x0a, 0x17, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xaa, 0x01, + 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, + 0x70, 0x74, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, + 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0b, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x09, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x99, 0x01, 0x0a, 0x17, 0x53, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xc6, 0x02, 0x0a, 0x14, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, 0x6b, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, + 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, + 0x69, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, + 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, + 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6d, 0x61, 0x78, 0x4d, 0x4d, 0x52, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x73, 0x61, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x53, 0x74, 0x61, 0x74, 0x73, 0x22, + 0xd9, 0x02, 0x0a, 0x19, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, 0x6b, 0x47, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x57, 0x69, 0x6e, 0x73, 0x12, 0x20, 0x0a, + 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, 0x6e, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, + 0x61, 0x6e, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x48, 0x0a, 0x1a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x75, 0x0a, 0x27, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x21, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x62, 0x0a, + 0x19, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0xb1, 0x01, 0x0a, 0x19, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x63, + 0x68, 0x61, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x0c, 0x0a, + 0x01, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x12, 0x0c, 0x0a, 0x01, 0x6f, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x01, 0x6f, 0x22, 0x2e, 0x0a, 0x1a, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xed, 0x02, 0x0a, 0x0f, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, + 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, + 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, + 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x73, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x62, + 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x22, 0x5b, 0x0a, 0x1c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x05, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc8, 0x01, 0x0a, 0x24, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, + 0x22, 0x64, 0x0a, 0x25, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x05, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x22, 0x43, 0x6c, 0x65, 0x61, 0x72, + 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x22, + 0x37, 0x0a, 0x23, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x7d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x75, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x05, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x63, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xf9, 0x02, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x07, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x12, 0x42, 0x0a, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x52, 0x07, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x1a, 0xa6, 0x01, 0x0a, 0x06, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x1a, 0x23, 0x0a, 0x0d, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x10, 0x41, 0x64, 0x64, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xef, 0x01, + 0x0a, 0x11, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, + 0xb3, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, + 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, + 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, + 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x65, 0x64, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, + 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, + 0x22, 0xf8, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, + 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, + 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, 0x73, 0x0a, 0x17, 0x41, + 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, + 0x22, 0x48, 0x0a, 0x18, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1a, + 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, 0x81, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, 0x28, + 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, + 0x65, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x80, 0x01, 0x0a, + 0x10, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, 0x44, 0x22, + 0x3d, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x83, + 0x01, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, + 0x47, 0x55, 0x49, 0x44, 0x22, 0x28, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc3, + 0x01, 0x0a, 0x19, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x65, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x61, 0x72, 0x65, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x44, 0x22, 0x2e, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x22, 0x48, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x77, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x26, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0x80, 0x04, 0x0a, 0x17, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, + 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, + 0x21, 0x0a, 0x1d, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, + 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, + 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, + 0x5f, 0x4d, 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x41, + 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, + 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x58, + 0x49, 0x53, 0x54, 0x53, 0x10, 0x04, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, + 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, + 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x05, 0x12, + 0x23, 0x0a, 0x1f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, + 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x55, + 0x4c, 0x4c, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x07, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, + 0x4c, 0x49, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x08, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x52, + 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4e, + 0x49, 0x45, 0x44, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, + 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x41, + 0x44, 0x45, 0x52, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10, 0x0a, 0x12, 0x27, 0x0a, 0x23, 0x41, + 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, + 0x45, 0x44, 0x10, 0x0b, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, + 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x47, 0x4e, 0x4f, + 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x59, 0x4f, 0x55, 0x10, 0x0c, 0x32, 0xc2, 0x1c, 0x0a, 0x11, 0x43, + 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x6e, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x6f, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x62, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x54, + 0x6f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x20, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, + 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x46, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x13, + 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x6f, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, + 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, + 0x61, 0x63, 0x74, 0x65, 0x72, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, + 0x72, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x71, 0x0a, 0x20, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, + 0x49, 0x44, 0x73, 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, + 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, + 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x68, 0x6f, 0x72, 0x74, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x42, 0x79, 0x47, 0x55, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, + 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x17, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x50, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x46, + 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x65, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, + 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x44, 0x65, 0x63, 0x6c, + 0x69, 0x6e, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x62, 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x62, + 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x54, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x61, 0x70, 0x74, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x13, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x20, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x62, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, + 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x61, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x12, 0x28, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, + 0x6d, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x45, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6e, 0x0a, 0x1b, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x65, 0x61, + 0x72, 0x55, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, + 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, + 0x09, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x52, 0x65, + 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x65, 0x61, + 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x79, 0x45, 0x6d, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x41, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x10, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x73, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x65, 0x52, 0x65, 0x61, 0x6c, 0x49, 0x44, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x44, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, + 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, + 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x41, 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x12, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, + 0x13, 0x5a, 0x11, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_characters_proto_rawDescOnce sync.Once + file_characters_proto_rawDescData = file_characters_proto_rawDesc +) + +func file_characters_proto_rawDescGZIP() []byte { + file_characters_proto_rawDescOnce.Do(func() { + file_characters_proto_rawDescData = protoimpl.X.CompressGZIP(file_characters_proto_rawDescData) + }) + return file_characters_proto_rawDescData +} + +var file_characters_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_characters_proto_msgTypes = make([]protoimpl.MessageInfo, 87) +var file_characters_proto_goTypes = []interface{}{ + (ArenaTeamMutationStatus)(0), // 0: v1.ArenaTeamMutationStatus + (ArenaTeamQueueDataForRatedArenaResponse_Status)(0), // 1: v1.ArenaTeamQueueDataForRatedArenaResponse.Status + (CreateArenaTeamFromPetitionResponse_Status)(0), // 2: v1.CreateArenaTeamFromPetitionResponse.Status + (GetArenaTeamResponse_Status)(0), // 3: v1.GetArenaTeamResponse.Status + (GetArenaTeamPetitionResponse_Status)(0), // 4: v1.GetArenaTeamPetitionResponse.Status + (*LogInCharacter)(nil), // 5: v1.LogInCharacter + (*EquipmentDisplay)(nil), // 6: v1.EquipmentDisplay + (*CharactersToLoginForAccountRequest)(nil), // 7: v1.CharactersToLoginForAccountRequest + (*CharactersToLoginForAccountResponse)(nil), // 8: v1.CharactersToLoginForAccountResponse + (*CharactersToLoginByGUIDRequest)(nil), // 9: v1.CharactersToLoginByGUIDRequest + (*CharactersToLoginByGUIDResponse)(nil), // 10: v1.CharactersToLoginByGUIDResponse + (*AccountDataForAccountRequest)(nil), // 11: v1.AccountDataForAccountRequest + (*AccountData)(nil), // 12: v1.AccountData + (*AccountDataForAccountResponse)(nil), // 13: v1.AccountDataForAccountResponse + (*UpdateAccountDataForAccountRequest)(nil), // 14: v1.UpdateAccountDataForAccountRequest + (*UpdateAccountDataForAccountResponse)(nil), // 15: v1.UpdateAccountDataForAccountResponse + (*WhoQueryRequest)(nil), // 16: v1.WhoQueryRequest + (*WhoQueryResponse)(nil), // 17: v1.WhoQueryResponse + (*CharacterOnlineByNameRequest)(nil), // 18: v1.CharacterOnlineByNameRequest + (*CharacterOnlineByNameResponse)(nil), // 19: v1.CharacterOnlineByNameResponse + (*CharacterByNameRequest)(nil), // 20: v1.CharacterByNameRequest + (*CharacterByNameResponse)(nil), // 21: v1.CharacterByNameResponse + (*CharacterByGUIDRequest)(nil), // 22: v1.CharacterByGUIDRequest + (*CharacterByGUIDResponse)(nil), // 23: v1.CharacterByGUIDResponse + (*ShortCharactersDataByGUIDsRequest)(nil), // 24: v1.ShortCharactersDataByGUIDsRequest + (*ShortCharactersDataByGUIDsResponse)(nil), // 25: v1.ShortCharactersDataByGUIDsResponse + (*ArenaTeamQueueDataForRatedArenaRequest)(nil), // 26: v1.ArenaTeamQueueDataForRatedArenaRequest + (*ArenaTeamQueueDataForRatedArenaResponse)(nil), // 27: v1.ArenaTeamQueueDataForRatedArenaResponse + (*CreateArenaTeamFromPetitionRequest)(nil), // 28: v1.CreateArenaTeamFromPetitionRequest + (*CreateArenaTeamFromPetitionResponse)(nil), // 29: v1.CreateArenaTeamFromPetitionResponse + (*ArenaTeamMemberData)(nil), // 30: v1.ArenaTeamMemberData + (*ArenaTeamData)(nil), // 31: v1.ArenaTeamData + (*GetArenaTeamRequest)(nil), // 32: v1.GetArenaTeamRequest + (*GetArenaTeamResponse)(nil), // 33: v1.GetArenaTeamResponse + (*ArenaTeamPetitionData)(nil), // 34: v1.ArenaTeamPetitionData + (*GetArenaTeamPetitionRequest)(nil), // 35: v1.GetArenaTeamPetitionRequest + (*GetArenaTeamPetitionResponse)(nil), // 36: v1.GetArenaTeamPetitionResponse + (*InviteArenaTeamMemberRequest)(nil), // 37: v1.InviteArenaTeamMemberRequest + (*InviteArenaTeamMemberResponse)(nil), // 38: v1.InviteArenaTeamMemberResponse + (*AcceptArenaTeamInviteRequest)(nil), // 39: v1.AcceptArenaTeamInviteRequest + (*AcceptArenaTeamInviteResponse)(nil), // 40: v1.AcceptArenaTeamInviteResponse + (*DeclineArenaTeamInviteRequest)(nil), // 41: v1.DeclineArenaTeamInviteRequest + (*AddArenaTeamMemberRequest)(nil), // 42: v1.AddArenaTeamMemberRequest + (*RemoveArenaTeamMemberRequest)(nil), // 43: v1.RemoveArenaTeamMemberRequest + (*DisbandArenaTeamRequest)(nil), // 44: v1.DisbandArenaTeamRequest + (*SetArenaTeamCaptainRequest)(nil), // 45: v1.SetArenaTeamCaptainRequest + (*SetArenaTeamNameRequest)(nil), // 46: v1.SetArenaTeamNameRequest + (*ArenaTeamStatsMember)(nil), // 47: v1.ArenaTeamStatsMember + (*SaveArenaTeamStatsRequest)(nil), // 48: v1.SaveArenaTeamStatsRequest + (*DeleteAllArenaTeamsRequest)(nil), // 49: v1.DeleteAllArenaTeamsRequest + (*ValidateArenaTeamCharacterDeleteRequest)(nil), // 50: v1.ValidateArenaTeamCharacterDeleteRequest + (*RemovePlayerFromArenaTeamsRequest)(nil), // 51: v1.RemovePlayerFromArenaTeamsRequest + (*ArenaTeamMutationResponse)(nil), // 52: v1.ArenaTeamMutationResponse + (*SavePlayerPositionRequest)(nil), // 53: v1.SavePlayerPositionRequest + (*SavePlayerPositionResponse)(nil), // 54: v1.SavePlayerPositionResponse + (*LfgDungeonRoute)(nil), // 55: v1.LfgDungeonRoute + (*RecordLfgDungeonRouteRequest)(nil), // 56: v1.RecordLfgDungeonRouteRequest + (*RecordLfgDungeonRouteResponse)(nil), // 57: v1.RecordLfgDungeonRouteResponse + (*ConfirmLfgDungeonRouteEnteredRequest)(nil), // 58: v1.ConfirmLfgDungeonRouteEnteredRequest + (*ConfirmLfgDungeonRouteEnteredResponse)(nil), // 59: v1.ConfirmLfgDungeonRouteEnteredResponse + (*ClearUnboundLfgDungeonRouteRequest)(nil), // 60: v1.ClearUnboundLfgDungeonRouteRequest + (*ClearUnboundLfgDungeonRouteResponse)(nil), // 61: v1.ClearUnboundLfgDungeonRouteResponse + (*GetLfgDungeonRouteRequest)(nil), // 62: v1.GetLfgDungeonRouteRequest + (*GetLfgDungeonRouteResponse)(nil), // 63: v1.GetLfgDungeonRouteResponse + (*GetFriendsListRequest)(nil), // 64: v1.GetFriendsListRequest + (*GetFriendsListResponse)(nil), // 65: v1.GetFriendsListResponse + (*AddFriendRequest)(nil), // 66: v1.AddFriendRequest + (*AddFriendResponse)(nil), // 67: v1.AddFriendResponse + (*AddRealIDFriendByEmailRequest)(nil), // 68: v1.AddRealIDFriendByEmailRequest + (*AddRealIDFriendByEmailResponse)(nil), // 69: v1.AddRealIDFriendByEmailResponse + (*AcceptRealIDFriendRequest)(nil), // 70: v1.AcceptRealIDFriendRequest + (*AcceptRealIDFriendResponse)(nil), // 71: v1.AcceptRealIDFriendResponse + (*AreRealIDFriendsRequest)(nil), // 72: v1.AreRealIDFriendsRequest + (*AreRealIDFriendsResponse)(nil), // 73: v1.AreRealIDFriendsResponse + (*RemoveFriendRequest)(nil), // 74: v1.RemoveFriendRequest + (*RemoveFriendResponse)(nil), // 75: v1.RemoveFriendResponse + (*SetFriendNoteRequest)(nil), // 76: v1.SetFriendNoteRequest + (*SetFriendNoteResponse)(nil), // 77: v1.SetFriendNoteResponse + (*AddIgnoreRequest)(nil), // 78: v1.AddIgnoreRequest + (*AddIgnoreResponse)(nil), // 79: v1.AddIgnoreResponse + (*RemoveIgnoreRequest)(nil), // 80: v1.RemoveIgnoreRequest + (*RemoveIgnoreResponse)(nil), // 81: v1.RemoveIgnoreResponse + (*NotifyStatusChangeRequest)(nil), // 82: v1.NotifyStatusChangeRequest + (*NotifyStatusChangeResponse)(nil), // 83: v1.NotifyStatusChangeResponse + (*GetOnlineCharactersRequest)(nil), // 84: v1.GetOnlineCharactersRequest + (*GetOnlineCharactersResponse)(nil), // 85: v1.GetOnlineCharactersResponse + (*WhoQueryResponse_WhoItem)(nil), // 86: v1.WhoQueryResponse.WhoItem + (*CharacterOnlineByNameResponse_Char)(nil), // 87: v1.CharacterOnlineByNameResponse.Char + (*CharacterByNameResponse_Char)(nil), // 88: v1.CharacterByNameResponse.Char + (*ShortCharactersDataByGUIDsResponse_ShortCharData)(nil), // 89: v1.ShortCharactersDataByGUIDsResponse.ShortCharData + (*GetFriendsListResponse_Friend)(nil), // 90: v1.GetFriendsListResponse.Friend + (*GetFriendsListResponse_IgnoredPlayer)(nil), // 91: v1.GetFriendsListResponse.IgnoredPlayer +} +var file_characters_proto_depIdxs = []int32{ + 6, // 0: v1.LogInCharacter.equipments:type_name -> v1.EquipmentDisplay + 5, // 1: v1.CharactersToLoginForAccountResponse.characters:type_name -> v1.LogInCharacter + 5, // 2: v1.CharactersToLoginByGUIDResponse.character:type_name -> v1.LogInCharacter + 12, // 3: v1.AccountDataForAccountResponse.accountData:type_name -> v1.AccountData + 86, // 4: v1.WhoQueryResponse.itemsToDisplay:type_name -> v1.WhoQueryResponse.WhoItem + 87, // 5: v1.CharacterOnlineByNameResponse.character:type_name -> v1.CharacterOnlineByNameResponse.Char + 88, // 6: v1.CharacterByNameResponse.character:type_name -> v1.CharacterByNameResponse.Char + 88, // 7: v1.CharacterByGUIDResponse.character:type_name -> v1.CharacterByNameResponse.Char + 89, // 8: v1.ShortCharactersDataByGUIDsResponse.characters:type_name -> v1.ShortCharactersDataByGUIDsResponse.ShortCharData + 1, // 9: v1.ArenaTeamQueueDataForRatedArenaResponse.status:type_name -> v1.ArenaTeamQueueDataForRatedArenaResponse.Status + 2, // 10: v1.CreateArenaTeamFromPetitionResponse.status:type_name -> v1.CreateArenaTeamFromPetitionResponse.Status + 30, // 11: v1.ArenaTeamData.members:type_name -> v1.ArenaTeamMemberData + 3, // 12: v1.GetArenaTeamResponse.status:type_name -> v1.GetArenaTeamResponse.Status + 31, // 13: v1.GetArenaTeamResponse.team:type_name -> v1.ArenaTeamData + 4, // 14: v1.GetArenaTeamPetitionResponse.status:type_name -> v1.GetArenaTeamPetitionResponse.Status + 34, // 15: v1.GetArenaTeamPetitionResponse.petition:type_name -> v1.ArenaTeamPetitionData + 0, // 16: v1.InviteArenaTeamMemberResponse.status:type_name -> v1.ArenaTeamMutationStatus + 31, // 17: v1.InviteArenaTeamMemberResponse.team:type_name -> v1.ArenaTeamData + 0, // 18: v1.AcceptArenaTeamInviteResponse.status:type_name -> v1.ArenaTeamMutationStatus + 31, // 19: v1.AcceptArenaTeamInviteResponse.team:type_name -> v1.ArenaTeamData + 47, // 20: v1.SaveArenaTeamStatsRequest.members:type_name -> v1.ArenaTeamStatsMember + 0, // 21: v1.ArenaTeamMutationResponse.status:type_name -> v1.ArenaTeamMutationStatus + 55, // 22: v1.RecordLfgDungeonRouteRequest.route:type_name -> v1.LfgDungeonRoute + 55, // 23: v1.ConfirmLfgDungeonRouteEnteredResponse.route:type_name -> v1.LfgDungeonRoute + 55, // 24: v1.GetLfgDungeonRouteResponse.route:type_name -> v1.LfgDungeonRoute + 90, // 25: v1.GetFriendsListResponse.friends:type_name -> v1.GetFriendsListResponse.Friend + 91, // 26: v1.GetFriendsListResponse.ignored:type_name -> v1.GetFriendsListResponse.IgnoredPlayer + 7, // 27: v1.CharactersService.CharactersToLoginForAccount:input_type -> v1.CharactersToLoginForAccountRequest + 9, // 28: v1.CharactersService.CharactersToLoginByGUID:input_type -> v1.CharactersToLoginByGUIDRequest + 11, // 29: v1.CharactersService.AccountDataForAccount:input_type -> v1.AccountDataForAccountRequest + 14, // 30: v1.CharactersService.UpdateAccountDataForAccount:input_type -> v1.UpdateAccountDataForAccountRequest + 16, // 31: v1.CharactersService.WhoQuery:input_type -> v1.WhoQueryRequest + 18, // 32: v1.CharactersService.CharacterOnlineByName:input_type -> v1.CharacterOnlineByNameRequest + 20, // 33: v1.CharactersService.CharacterByName:input_type -> v1.CharacterByNameRequest + 22, // 34: v1.CharactersService.CharacterByGUID:input_type -> v1.CharacterByGUIDRequest + 24, // 35: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:input_type -> v1.ShortCharactersDataByGUIDsRequest + 26, // 36: v1.CharactersService.ArenaTeamQueueDataForRatedArena:input_type -> v1.ArenaTeamQueueDataForRatedArenaRequest + 32, // 37: v1.CharactersService.GetArenaTeam:input_type -> v1.GetArenaTeamRequest + 35, // 38: v1.CharactersService.GetArenaTeamPetition:input_type -> v1.GetArenaTeamPetitionRequest + 28, // 39: v1.CharactersService.CreateArenaTeamFromPetition:input_type -> v1.CreateArenaTeamFromPetitionRequest + 37, // 40: v1.CharactersService.InviteArenaTeamMember:input_type -> v1.InviteArenaTeamMemberRequest + 39, // 41: v1.CharactersService.AcceptArenaTeamInvite:input_type -> v1.AcceptArenaTeamInviteRequest + 41, // 42: v1.CharactersService.DeclineArenaTeamInvite:input_type -> v1.DeclineArenaTeamInviteRequest + 42, // 43: v1.CharactersService.AddArenaTeamMember:input_type -> v1.AddArenaTeamMemberRequest + 43, // 44: v1.CharactersService.RemoveArenaTeamMember:input_type -> v1.RemoveArenaTeamMemberRequest + 44, // 45: v1.CharactersService.DisbandArenaTeam:input_type -> v1.DisbandArenaTeamRequest + 45, // 46: v1.CharactersService.SetArenaTeamCaptain:input_type -> v1.SetArenaTeamCaptainRequest + 46, // 47: v1.CharactersService.SetArenaTeamName:input_type -> v1.SetArenaTeamNameRequest + 48, // 48: v1.CharactersService.SaveArenaTeamStats:input_type -> v1.SaveArenaTeamStatsRequest + 49, // 49: v1.CharactersService.DeleteAllArenaTeams:input_type -> v1.DeleteAllArenaTeamsRequest + 50, // 50: v1.CharactersService.ValidateArenaTeamCharacterDelete:input_type -> v1.ValidateArenaTeamCharacterDeleteRequest + 51, // 51: v1.CharactersService.RemovePlayerFromArenaTeams:input_type -> v1.RemovePlayerFromArenaTeamsRequest + 53, // 52: v1.CharactersService.SavePlayerPosition:input_type -> v1.SavePlayerPositionRequest + 56, // 53: v1.CharactersService.RecordLfgDungeonRoute:input_type -> v1.RecordLfgDungeonRouteRequest + 58, // 54: v1.CharactersService.ConfirmLfgDungeonRouteEntered:input_type -> v1.ConfirmLfgDungeonRouteEnteredRequest + 60, // 55: v1.CharactersService.ClearUnboundLfgDungeonRoute:input_type -> v1.ClearUnboundLfgDungeonRouteRequest + 62, // 56: v1.CharactersService.GetLfgDungeonRoute:input_type -> v1.GetLfgDungeonRouteRequest + 64, // 57: v1.CharactersService.GetFriendsList:input_type -> v1.GetFriendsListRequest + 66, // 58: v1.CharactersService.AddFriend:input_type -> v1.AddFriendRequest + 68, // 59: v1.CharactersService.AddRealIDFriendByEmail:input_type -> v1.AddRealIDFriendByEmailRequest + 70, // 60: v1.CharactersService.AcceptRealIDFriend:input_type -> v1.AcceptRealIDFriendRequest + 72, // 61: v1.CharactersService.AreRealIDFriends:input_type -> v1.AreRealIDFriendsRequest + 74, // 62: v1.CharactersService.RemoveFriend:input_type -> v1.RemoveFriendRequest + 76, // 63: v1.CharactersService.SetFriendNote:input_type -> v1.SetFriendNoteRequest + 78, // 64: v1.CharactersService.AddIgnore:input_type -> v1.AddIgnoreRequest + 80, // 65: v1.CharactersService.RemoveIgnore:input_type -> v1.RemoveIgnoreRequest + 82, // 66: v1.CharactersService.NotifyStatusChange:input_type -> v1.NotifyStatusChangeRequest + 84, // 67: v1.CharactersService.GetOnlineCharacters:input_type -> v1.GetOnlineCharactersRequest + 8, // 68: v1.CharactersService.CharactersToLoginForAccount:output_type -> v1.CharactersToLoginForAccountResponse + 10, // 69: v1.CharactersService.CharactersToLoginByGUID:output_type -> v1.CharactersToLoginByGUIDResponse + 13, // 70: v1.CharactersService.AccountDataForAccount:output_type -> v1.AccountDataForAccountResponse + 15, // 71: v1.CharactersService.UpdateAccountDataForAccount:output_type -> v1.UpdateAccountDataForAccountResponse + 17, // 72: v1.CharactersService.WhoQuery:output_type -> v1.WhoQueryResponse + 19, // 73: v1.CharactersService.CharacterOnlineByName:output_type -> v1.CharacterOnlineByNameResponse + 21, // 74: v1.CharactersService.CharacterByName:output_type -> v1.CharacterByNameResponse + 23, // 75: v1.CharactersService.CharacterByGUID:output_type -> v1.CharacterByGUIDResponse + 25, // 76: v1.CharactersService.ShortOnlineCharactersDataByGUIDs:output_type -> v1.ShortCharactersDataByGUIDsResponse + 27, // 77: v1.CharactersService.ArenaTeamQueueDataForRatedArena:output_type -> v1.ArenaTeamQueueDataForRatedArenaResponse + 33, // 78: v1.CharactersService.GetArenaTeam:output_type -> v1.GetArenaTeamResponse + 36, // 79: v1.CharactersService.GetArenaTeamPetition:output_type -> v1.GetArenaTeamPetitionResponse + 29, // 80: v1.CharactersService.CreateArenaTeamFromPetition:output_type -> v1.CreateArenaTeamFromPetitionResponse + 38, // 81: v1.CharactersService.InviteArenaTeamMember:output_type -> v1.InviteArenaTeamMemberResponse + 40, // 82: v1.CharactersService.AcceptArenaTeamInvite:output_type -> v1.AcceptArenaTeamInviteResponse + 52, // 83: v1.CharactersService.DeclineArenaTeamInvite:output_type -> v1.ArenaTeamMutationResponse + 52, // 84: v1.CharactersService.AddArenaTeamMember:output_type -> v1.ArenaTeamMutationResponse + 52, // 85: v1.CharactersService.RemoveArenaTeamMember:output_type -> v1.ArenaTeamMutationResponse + 52, // 86: v1.CharactersService.DisbandArenaTeam:output_type -> v1.ArenaTeamMutationResponse + 52, // 87: v1.CharactersService.SetArenaTeamCaptain:output_type -> v1.ArenaTeamMutationResponse + 52, // 88: v1.CharactersService.SetArenaTeamName:output_type -> v1.ArenaTeamMutationResponse + 52, // 89: v1.CharactersService.SaveArenaTeamStats:output_type -> v1.ArenaTeamMutationResponse + 52, // 90: v1.CharactersService.DeleteAllArenaTeams:output_type -> v1.ArenaTeamMutationResponse + 52, // 91: v1.CharactersService.ValidateArenaTeamCharacterDelete:output_type -> v1.ArenaTeamMutationResponse + 52, // 92: v1.CharactersService.RemovePlayerFromArenaTeams:output_type -> v1.ArenaTeamMutationResponse + 54, // 93: v1.CharactersService.SavePlayerPosition:output_type -> v1.SavePlayerPositionResponse + 57, // 94: v1.CharactersService.RecordLfgDungeonRoute:output_type -> v1.RecordLfgDungeonRouteResponse + 59, // 95: v1.CharactersService.ConfirmLfgDungeonRouteEntered:output_type -> v1.ConfirmLfgDungeonRouteEnteredResponse + 61, // 96: v1.CharactersService.ClearUnboundLfgDungeonRoute:output_type -> v1.ClearUnboundLfgDungeonRouteResponse + 63, // 97: v1.CharactersService.GetLfgDungeonRoute:output_type -> v1.GetLfgDungeonRouteResponse + 65, // 98: v1.CharactersService.GetFriendsList:output_type -> v1.GetFriendsListResponse + 67, // 99: v1.CharactersService.AddFriend:output_type -> v1.AddFriendResponse + 69, // 100: v1.CharactersService.AddRealIDFriendByEmail:output_type -> v1.AddRealIDFriendByEmailResponse + 71, // 101: v1.CharactersService.AcceptRealIDFriend:output_type -> v1.AcceptRealIDFriendResponse + 73, // 102: v1.CharactersService.AreRealIDFriends:output_type -> v1.AreRealIDFriendsResponse + 75, // 103: v1.CharactersService.RemoveFriend:output_type -> v1.RemoveFriendResponse + 77, // 104: v1.CharactersService.SetFriendNote:output_type -> v1.SetFriendNoteResponse + 79, // 105: v1.CharactersService.AddIgnore:output_type -> v1.AddIgnoreResponse + 81, // 106: v1.CharactersService.RemoveIgnore:output_type -> v1.RemoveIgnoreResponse + 83, // 107: v1.CharactersService.NotifyStatusChange:output_type -> v1.NotifyStatusChangeResponse + 85, // 108: v1.CharactersService.GetOnlineCharacters:output_type -> v1.GetOnlineCharactersResponse + 68, // [68:109] is the sub-list for method output_type + 27, // [27:68] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name +} + +func init() { file_characters_proto_init() } +func file_characters_proto_init() { + if File_characters_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_characters_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogInCharacter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EquipmentDisplay); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginForAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginForAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginByGUIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharactersToLoginByGUIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountDataForAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountDataForAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAccountDataForAccountRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAccountDataForAccountResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WhoQueryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WhoQueryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterOnlineByNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterOnlineByNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByNameRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByNameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByGUIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CharacterByGUIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShortCharactersDataByGUIDsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ShortCharactersDataByGUIDsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamQueueDataForRatedArenaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamQueueDataForRatedArenaResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateArenaTeamFromPetitionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateArenaTeamFromPetitionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamMemberData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamResponse); i { case 0: return &v.state case 1: @@ -3746,8 +8922,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EquipmentDisplay); i { + file_characters_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamPetitionData); i { case 0: return &v.state case 1: @@ -3758,8 +8934,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginForAccountRequest); i { + file_characters_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamPetitionRequest); i { case 0: return &v.state case 1: @@ -3770,8 +8946,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginForAccountResponse); i { + file_characters_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetArenaTeamPetitionResponse); i { case 0: return &v.state case 1: @@ -3782,8 +8958,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginByGUIDRequest); i { + file_characters_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteArenaTeamMemberRequest); i { case 0: return &v.state case 1: @@ -3794,8 +8970,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharactersToLoginByGUIDResponse); i { + file_characters_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteArenaTeamMemberResponse); i { case 0: return &v.state case 1: @@ -3806,8 +8982,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountDataForAccountRequest); i { + file_characters_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptArenaTeamInviteRequest); i { case 0: return &v.state case 1: @@ -3818,8 +8994,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountData); i { + file_characters_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptArenaTeamInviteResponse); i { case 0: return &v.state case 1: @@ -3830,8 +9006,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AccountDataForAccountResponse); i { + file_characters_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclineArenaTeamInviteRequest); i { case 0: return &v.state case 1: @@ -3842,8 +9018,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WhoQueryRequest); i { + file_characters_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddArenaTeamMemberRequest); i { case 0: return &v.state case 1: @@ -3854,8 +9030,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WhoQueryResponse); i { + file_characters_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveArenaTeamMemberRequest); i { case 0: return &v.state case 1: @@ -3866,8 +9042,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterOnlineByNameRequest); i { + file_characters_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DisbandArenaTeamRequest); i { case 0: return &v.state case 1: @@ -3878,8 +9054,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterOnlineByNameResponse); i { + file_characters_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetArenaTeamCaptainRequest); i { case 0: return &v.state case 1: @@ -3890,8 +9066,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterByNameRequest); i { + file_characters_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetArenaTeamNameRequest); i { case 0: return &v.state case 1: @@ -3902,8 +9078,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CharacterByNameResponse); i { + file_characters_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamStatsMember); i { case 0: return &v.state case 1: @@ -3914,8 +9090,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShortCharactersDataByGUIDsRequest); i { + file_characters_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SaveArenaTeamStatsRequest); i { case 0: return &v.state case 1: @@ -3926,8 +9102,8 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShortCharactersDataByGUIDsResponse); i { + file_characters_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAllArenaTeamsRequest); i { case 0: return &v.state case 1: @@ -3938,7 +9114,43 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ValidateArenaTeamCharacterDeleteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemovePlayerFromArenaTeamsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ArenaTeamMutationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SavePlayerPositionRequest); i { case 0: return &v.state @@ -3950,7 +9162,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SavePlayerPositionResponse); i { case 0: return &v.state @@ -3962,7 +9174,115 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgDungeonRoute); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordLfgDungeonRouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RecordLfgDungeonRouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfirmLfgDungeonRouteEnteredRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConfirmLfgDungeonRouteEnteredResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearUnboundLfgDungeonRouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClearUnboundLfgDungeonRouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonRouteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonRouteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListRequest); i { case 0: return &v.state @@ -3974,7 +9294,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListResponse); i { case 0: return &v.state @@ -3986,7 +9306,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFriendRequest); i { case 0: return &v.state @@ -3998,7 +9318,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddFriendResponse); i { case 0: return &v.state @@ -4010,7 +9330,79 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRealIDFriendByEmailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRealIDFriendByEmailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptRealIDFriendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptRealIDFriendResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AreRealIDFriendsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AreRealIDFriendsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_characters_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveFriendRequest); i { case 0: return &v.state @@ -4022,7 +9414,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveFriendResponse); i { case 0: return &v.state @@ -4034,7 +9426,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetFriendNoteRequest); i { case 0: return &v.state @@ -4046,7 +9438,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetFriendNoteResponse); i { case 0: return &v.state @@ -4058,7 +9450,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddIgnoreRequest); i { case 0: return &v.state @@ -4070,7 +9462,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddIgnoreResponse); i { case 0: return &v.state @@ -4082,7 +9474,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveIgnoreRequest); i { case 0: return &v.state @@ -4094,7 +9486,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RemoveIgnoreResponse); i { case 0: return &v.state @@ -4106,7 +9498,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyStatusChangeRequest); i { case 0: return &v.state @@ -4118,7 +9510,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyStatusChangeResponse); i { case 0: return &v.state @@ -4130,7 +9522,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOnlineCharactersRequest); i { case 0: return &v.state @@ -4142,7 +9534,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetOnlineCharactersResponse); i { case 0: return &v.state @@ -4154,7 +9546,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WhoQueryResponse_WhoItem); i { case 0: return &v.state @@ -4166,7 +9558,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CharacterOnlineByNameResponse_Char); i { case 0: return &v.state @@ -4178,7 +9570,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CharacterByNameResponse_Char); i { case 0: return &v.state @@ -4190,7 +9582,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ShortCharactersDataByGUIDsResponse_ShortCharData); i { case 0: return &v.state @@ -4202,7 +9594,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListResponse_Friend); i { case 0: return &v.state @@ -4214,7 +9606,7 @@ func file_characters_proto_init() { return nil } } - file_characters_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + file_characters_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFriendsListResponse_IgnoredPlayer); i { case 0: return &v.state @@ -4232,13 +9624,14 @@ func file_characters_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_characters_proto_rawDesc, - NumEnums: 0, - NumMessages: 41, + NumEnums: 5, + NumMessages: 87, NumExtensions: 0, NumServices: 1, }, GoTypes: file_characters_proto_goTypes, DependencyIndexes: file_characters_proto_depIdxs, + EnumInfos: file_characters_proto_enumTypes, MessageInfos: file_characters_proto_msgTypes, }.Build() File_characters_proto = out.File diff --git a/gen/characters/pb/characters_grpc.pb.go b/gen/characters/pb/characters_grpc.pb.go index a70982b..94efda8 100644 --- a/gen/characters/pb/characters_grpc.pb.go +++ b/gen/characters/pb/characters_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: characters.proto package pb @@ -22,13 +22,38 @@ const ( CharactersService_CharactersToLoginForAccount_FullMethodName = "/v1.CharactersService/CharactersToLoginForAccount" CharactersService_CharactersToLoginByGUID_FullMethodName = "/v1.CharactersService/CharactersToLoginByGUID" CharactersService_AccountDataForAccount_FullMethodName = "/v1.CharactersService/AccountDataForAccount" + CharactersService_UpdateAccountDataForAccount_FullMethodName = "/v1.CharactersService/UpdateAccountDataForAccount" CharactersService_WhoQuery_FullMethodName = "/v1.CharactersService/WhoQuery" CharactersService_CharacterOnlineByName_FullMethodName = "/v1.CharactersService/CharacterOnlineByName" CharactersService_CharacterByName_FullMethodName = "/v1.CharactersService/CharacterByName" + CharactersService_CharacterByGUID_FullMethodName = "/v1.CharactersService/CharacterByGUID" CharactersService_ShortOnlineCharactersDataByGUIDs_FullMethodName = "/v1.CharactersService/ShortOnlineCharactersDataByGUIDs" + CharactersService_ArenaTeamQueueDataForRatedArena_FullMethodName = "/v1.CharactersService/ArenaTeamQueueDataForRatedArena" + CharactersService_GetArenaTeam_FullMethodName = "/v1.CharactersService/GetArenaTeam" + CharactersService_GetArenaTeamPetition_FullMethodName = "/v1.CharactersService/GetArenaTeamPetition" + CharactersService_CreateArenaTeamFromPetition_FullMethodName = "/v1.CharactersService/CreateArenaTeamFromPetition" + CharactersService_InviteArenaTeamMember_FullMethodName = "/v1.CharactersService/InviteArenaTeamMember" + CharactersService_AcceptArenaTeamInvite_FullMethodName = "/v1.CharactersService/AcceptArenaTeamInvite" + CharactersService_DeclineArenaTeamInvite_FullMethodName = "/v1.CharactersService/DeclineArenaTeamInvite" + CharactersService_AddArenaTeamMember_FullMethodName = "/v1.CharactersService/AddArenaTeamMember" + CharactersService_RemoveArenaTeamMember_FullMethodName = "/v1.CharactersService/RemoveArenaTeamMember" + CharactersService_DisbandArenaTeam_FullMethodName = "/v1.CharactersService/DisbandArenaTeam" + CharactersService_SetArenaTeamCaptain_FullMethodName = "/v1.CharactersService/SetArenaTeamCaptain" + CharactersService_SetArenaTeamName_FullMethodName = "/v1.CharactersService/SetArenaTeamName" + CharactersService_SaveArenaTeamStats_FullMethodName = "/v1.CharactersService/SaveArenaTeamStats" + CharactersService_DeleteAllArenaTeams_FullMethodName = "/v1.CharactersService/DeleteAllArenaTeams" + CharactersService_ValidateArenaTeamCharacterDelete_FullMethodName = "/v1.CharactersService/ValidateArenaTeamCharacterDelete" + CharactersService_RemovePlayerFromArenaTeams_FullMethodName = "/v1.CharactersService/RemovePlayerFromArenaTeams" CharactersService_SavePlayerPosition_FullMethodName = "/v1.CharactersService/SavePlayerPosition" + CharactersService_RecordLfgDungeonRoute_FullMethodName = "/v1.CharactersService/RecordLfgDungeonRoute" + CharactersService_ConfirmLfgDungeonRouteEntered_FullMethodName = "/v1.CharactersService/ConfirmLfgDungeonRouteEntered" + CharactersService_ClearUnboundLfgDungeonRoute_FullMethodName = "/v1.CharactersService/ClearUnboundLfgDungeonRoute" + CharactersService_GetLfgDungeonRoute_FullMethodName = "/v1.CharactersService/GetLfgDungeonRoute" CharactersService_GetFriendsList_FullMethodName = "/v1.CharactersService/GetFriendsList" CharactersService_AddFriend_FullMethodName = "/v1.CharactersService/AddFriend" + CharactersService_AddRealIDFriendByEmail_FullMethodName = "/v1.CharactersService/AddRealIDFriendByEmail" + CharactersService_AcceptRealIDFriend_FullMethodName = "/v1.CharactersService/AcceptRealIDFriend" + CharactersService_AreRealIDFriends_FullMethodName = "/v1.CharactersService/AreRealIDFriends" CharactersService_RemoveFriend_FullMethodName = "/v1.CharactersService/RemoveFriend" CharactersService_SetFriendNote_FullMethodName = "/v1.CharactersService/SetFriendNote" CharactersService_AddIgnore_FullMethodName = "/v1.CharactersService/AddIgnore" @@ -44,15 +69,40 @@ type CharactersServiceClient interface { CharactersToLoginForAccount(ctx context.Context, in *CharactersToLoginForAccountRequest, opts ...grpc.CallOption) (*CharactersToLoginForAccountResponse, error) CharactersToLoginByGUID(ctx context.Context, in *CharactersToLoginByGUIDRequest, opts ...grpc.CallOption) (*CharactersToLoginByGUIDResponse, error) AccountDataForAccount(ctx context.Context, in *AccountDataForAccountRequest, opts ...grpc.CallOption) (*AccountDataForAccountResponse, error) + UpdateAccountDataForAccount(ctx context.Context, in *UpdateAccountDataForAccountRequest, opts ...grpc.CallOption) (*UpdateAccountDataForAccountResponse, error) WhoQuery(ctx context.Context, in *WhoQueryRequest, opts ...grpc.CallOption) (*WhoQueryResponse, error) CharacterOnlineByName(ctx context.Context, in *CharacterOnlineByNameRequest, opts ...grpc.CallOption) (*CharacterOnlineByNameResponse, error) CharacterByName(ctx context.Context, in *CharacterByNameRequest, opts ...grpc.CallOption) (*CharacterByNameResponse, error) + CharacterByGUID(ctx context.Context, in *CharacterByGUIDRequest, opts ...grpc.CallOption) (*CharacterByGUIDResponse, error) ShortOnlineCharactersDataByGUIDs(ctx context.Context, in *ShortCharactersDataByGUIDsRequest, opts ...grpc.CallOption) (*ShortCharactersDataByGUIDsResponse, error) + ArenaTeamQueueDataForRatedArena(ctx context.Context, in *ArenaTeamQueueDataForRatedArenaRequest, opts ...grpc.CallOption) (*ArenaTeamQueueDataForRatedArenaResponse, error) + GetArenaTeam(ctx context.Context, in *GetArenaTeamRequest, opts ...grpc.CallOption) (*GetArenaTeamResponse, error) + GetArenaTeamPetition(ctx context.Context, in *GetArenaTeamPetitionRequest, opts ...grpc.CallOption) (*GetArenaTeamPetitionResponse, error) + CreateArenaTeamFromPetition(ctx context.Context, in *CreateArenaTeamFromPetitionRequest, opts ...grpc.CallOption) (*CreateArenaTeamFromPetitionResponse, error) + InviteArenaTeamMember(ctx context.Context, in *InviteArenaTeamMemberRequest, opts ...grpc.CallOption) (*InviteArenaTeamMemberResponse, error) + AcceptArenaTeamInvite(ctx context.Context, in *AcceptArenaTeamInviteRequest, opts ...grpc.CallOption) (*AcceptArenaTeamInviteResponse, error) + DeclineArenaTeamInvite(ctx context.Context, in *DeclineArenaTeamInviteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + AddArenaTeamMember(ctx context.Context, in *AddArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + RemoveArenaTeamMember(ctx context.Context, in *RemoveArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + DisbandArenaTeam(ctx context.Context, in *DisbandArenaTeamRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + SetArenaTeamCaptain(ctx context.Context, in *SetArenaTeamCaptainRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + SetArenaTeamName(ctx context.Context, in *SetArenaTeamNameRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + SaveArenaTeamStats(ctx context.Context, in *SaveArenaTeamStatsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + DeleteAllArenaTeams(ctx context.Context, in *DeleteAllArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + ValidateArenaTeamCharacterDelete(ctx context.Context, in *ValidateArenaTeamCharacterDeleteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) + RemovePlayerFromArenaTeams(ctx context.Context, in *RemovePlayerFromArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) // Would effect only offline player. SavePlayerPosition(ctx context.Context, in *SavePlayerPositionRequest, opts ...grpc.CallOption) (*SavePlayerPositionResponse, error) + RecordLfgDungeonRoute(ctx context.Context, in *RecordLfgDungeonRouteRequest, opts ...grpc.CallOption) (*RecordLfgDungeonRouteResponse, error) + ConfirmLfgDungeonRouteEntered(ctx context.Context, in *ConfirmLfgDungeonRouteEnteredRequest, opts ...grpc.CallOption) (*ConfirmLfgDungeonRouteEnteredResponse, error) + ClearUnboundLfgDungeonRoute(ctx context.Context, in *ClearUnboundLfgDungeonRouteRequest, opts ...grpc.CallOption) (*ClearUnboundLfgDungeonRouteResponse, error) + GetLfgDungeonRoute(ctx context.Context, in *GetLfgDungeonRouteRequest, opts ...grpc.CallOption) (*GetLfgDungeonRouteResponse, error) // Friends and ignore list management GetFriendsList(ctx context.Context, in *GetFriendsListRequest, opts ...grpc.CallOption) (*GetFriendsListResponse, error) AddFriend(ctx context.Context, in *AddFriendRequest, opts ...grpc.CallOption) (*AddFriendResponse, error) + AddRealIDFriendByEmail(ctx context.Context, in *AddRealIDFriendByEmailRequest, opts ...grpc.CallOption) (*AddRealIDFriendByEmailResponse, error) + AcceptRealIDFriend(ctx context.Context, in *AcceptRealIDFriendRequest, opts ...grpc.CallOption) (*AcceptRealIDFriendResponse, error) + AreRealIDFriends(ctx context.Context, in *AreRealIDFriendsRequest, opts ...grpc.CallOption) (*AreRealIDFriendsResponse, error) RemoveFriend(ctx context.Context, in *RemoveFriendRequest, opts ...grpc.CallOption) (*RemoveFriendResponse, error) SetFriendNote(ctx context.Context, in *SetFriendNoteRequest, opts ...grpc.CallOption) (*SetFriendNoteResponse, error) AddIgnore(ctx context.Context, in *AddIgnoreRequest, opts ...grpc.CallOption) (*AddIgnoreResponse, error) @@ -97,6 +147,15 @@ func (c *charactersServiceClient) AccountDataForAccount(ctx context.Context, in return out, nil } +func (c *charactersServiceClient) UpdateAccountDataForAccount(ctx context.Context, in *UpdateAccountDataForAccountRequest, opts ...grpc.CallOption) (*UpdateAccountDataForAccountResponse, error) { + out := new(UpdateAccountDataForAccountResponse) + err := c.cc.Invoke(ctx, CharactersService_UpdateAccountDataForAccount_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) WhoQuery(ctx context.Context, in *WhoQueryRequest, opts ...grpc.CallOption) (*WhoQueryResponse, error) { out := new(WhoQueryResponse) err := c.cc.Invoke(ctx, CharactersService_WhoQuery_FullMethodName, in, out, opts...) @@ -124,6 +183,15 @@ func (c *charactersServiceClient) CharacterByName(ctx context.Context, in *Chara return out, nil } +func (c *charactersServiceClient) CharacterByGUID(ctx context.Context, in *CharacterByGUIDRequest, opts ...grpc.CallOption) (*CharacterByGUIDResponse, error) { + out := new(CharacterByGUIDResponse) + err := c.cc.Invoke(ctx, CharactersService_CharacterByGUID_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) ShortOnlineCharactersDataByGUIDs(ctx context.Context, in *ShortCharactersDataByGUIDsRequest, opts ...grpc.CallOption) (*ShortCharactersDataByGUIDsResponse, error) { out := new(ShortCharactersDataByGUIDsResponse) err := c.cc.Invoke(ctx, CharactersService_ShortOnlineCharactersDataByGUIDs_FullMethodName, in, out, opts...) @@ -133,6 +201,150 @@ func (c *charactersServiceClient) ShortOnlineCharactersDataByGUIDs(ctx context.C return out, nil } +func (c *charactersServiceClient) ArenaTeamQueueDataForRatedArena(ctx context.Context, in *ArenaTeamQueueDataForRatedArenaRequest, opts ...grpc.CallOption) (*ArenaTeamQueueDataForRatedArenaResponse, error) { + out := new(ArenaTeamQueueDataForRatedArenaResponse) + err := c.cc.Invoke(ctx, CharactersService_ArenaTeamQueueDataForRatedArena_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) GetArenaTeam(ctx context.Context, in *GetArenaTeamRequest, opts ...grpc.CallOption) (*GetArenaTeamResponse, error) { + out := new(GetArenaTeamResponse) + err := c.cc.Invoke(ctx, CharactersService_GetArenaTeam_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) GetArenaTeamPetition(ctx context.Context, in *GetArenaTeamPetitionRequest, opts ...grpc.CallOption) (*GetArenaTeamPetitionResponse, error) { + out := new(GetArenaTeamPetitionResponse) + err := c.cc.Invoke(ctx, CharactersService_GetArenaTeamPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) CreateArenaTeamFromPetition(ctx context.Context, in *CreateArenaTeamFromPetitionRequest, opts ...grpc.CallOption) (*CreateArenaTeamFromPetitionResponse, error) { + out := new(CreateArenaTeamFromPetitionResponse) + err := c.cc.Invoke(ctx, CharactersService_CreateArenaTeamFromPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) InviteArenaTeamMember(ctx context.Context, in *InviteArenaTeamMemberRequest, opts ...grpc.CallOption) (*InviteArenaTeamMemberResponse, error) { + out := new(InviteArenaTeamMemberResponse) + err := c.cc.Invoke(ctx, CharactersService_InviteArenaTeamMember_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AcceptArenaTeamInvite(ctx context.Context, in *AcceptArenaTeamInviteRequest, opts ...grpc.CallOption) (*AcceptArenaTeamInviteResponse, error) { + out := new(AcceptArenaTeamInviteResponse) + err := c.cc.Invoke(ctx, CharactersService_AcceptArenaTeamInvite_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) DeclineArenaTeamInvite(ctx context.Context, in *DeclineArenaTeamInviteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_DeclineArenaTeamInvite_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AddArenaTeamMember(ctx context.Context, in *AddArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_AddArenaTeamMember_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) RemoveArenaTeamMember(ctx context.Context, in *RemoveArenaTeamMemberRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_RemoveArenaTeamMember_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) DisbandArenaTeam(ctx context.Context, in *DisbandArenaTeamRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_DisbandArenaTeam_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) SetArenaTeamCaptain(ctx context.Context, in *SetArenaTeamCaptainRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_SetArenaTeamCaptain_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) SetArenaTeamName(ctx context.Context, in *SetArenaTeamNameRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_SetArenaTeamName_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) SaveArenaTeamStats(ctx context.Context, in *SaveArenaTeamStatsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_SaveArenaTeamStats_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) DeleteAllArenaTeams(ctx context.Context, in *DeleteAllArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_DeleteAllArenaTeams_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) ValidateArenaTeamCharacterDelete(ctx context.Context, in *ValidateArenaTeamCharacterDeleteRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_ValidateArenaTeamCharacterDelete_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) RemovePlayerFromArenaTeams(ctx context.Context, in *RemovePlayerFromArenaTeamsRequest, opts ...grpc.CallOption) (*ArenaTeamMutationResponse, error) { + out := new(ArenaTeamMutationResponse) + err := c.cc.Invoke(ctx, CharactersService_RemovePlayerFromArenaTeams_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) SavePlayerPosition(ctx context.Context, in *SavePlayerPositionRequest, opts ...grpc.CallOption) (*SavePlayerPositionResponse, error) { out := new(SavePlayerPositionResponse) err := c.cc.Invoke(ctx, CharactersService_SavePlayerPosition_FullMethodName, in, out, opts...) @@ -142,6 +354,42 @@ func (c *charactersServiceClient) SavePlayerPosition(ctx context.Context, in *Sa return out, nil } +func (c *charactersServiceClient) RecordLfgDungeonRoute(ctx context.Context, in *RecordLfgDungeonRouteRequest, opts ...grpc.CallOption) (*RecordLfgDungeonRouteResponse, error) { + out := new(RecordLfgDungeonRouteResponse) + err := c.cc.Invoke(ctx, CharactersService_RecordLfgDungeonRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) ConfirmLfgDungeonRouteEntered(ctx context.Context, in *ConfirmLfgDungeonRouteEnteredRequest, opts ...grpc.CallOption) (*ConfirmLfgDungeonRouteEnteredResponse, error) { + out := new(ConfirmLfgDungeonRouteEnteredResponse) + err := c.cc.Invoke(ctx, CharactersService_ConfirmLfgDungeonRouteEntered_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) ClearUnboundLfgDungeonRoute(ctx context.Context, in *ClearUnboundLfgDungeonRouteRequest, opts ...grpc.CallOption) (*ClearUnboundLfgDungeonRouteResponse, error) { + out := new(ClearUnboundLfgDungeonRouteResponse) + err := c.cc.Invoke(ctx, CharactersService_ClearUnboundLfgDungeonRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) GetLfgDungeonRoute(ctx context.Context, in *GetLfgDungeonRouteRequest, opts ...grpc.CallOption) (*GetLfgDungeonRouteResponse, error) { + out := new(GetLfgDungeonRouteResponse) + err := c.cc.Invoke(ctx, CharactersService_GetLfgDungeonRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) GetFriendsList(ctx context.Context, in *GetFriendsListRequest, opts ...grpc.CallOption) (*GetFriendsListResponse, error) { out := new(GetFriendsListResponse) err := c.cc.Invoke(ctx, CharactersService_GetFriendsList_FullMethodName, in, out, opts...) @@ -160,6 +408,33 @@ func (c *charactersServiceClient) AddFriend(ctx context.Context, in *AddFriendRe return out, nil } +func (c *charactersServiceClient) AddRealIDFriendByEmail(ctx context.Context, in *AddRealIDFriendByEmailRequest, opts ...grpc.CallOption) (*AddRealIDFriendByEmailResponse, error) { + out := new(AddRealIDFriendByEmailResponse) + err := c.cc.Invoke(ctx, CharactersService_AddRealIDFriendByEmail_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AcceptRealIDFriend(ctx context.Context, in *AcceptRealIDFriendRequest, opts ...grpc.CallOption) (*AcceptRealIDFriendResponse, error) { + out := new(AcceptRealIDFriendResponse) + err := c.cc.Invoke(ctx, CharactersService_AcceptRealIDFriend_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *charactersServiceClient) AreRealIDFriends(ctx context.Context, in *AreRealIDFriendsRequest, opts ...grpc.CallOption) (*AreRealIDFriendsResponse, error) { + out := new(AreRealIDFriendsResponse) + err := c.cc.Invoke(ctx, CharactersService_AreRealIDFriends_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *charactersServiceClient) RemoveFriend(ctx context.Context, in *RemoveFriendRequest, opts ...grpc.CallOption) (*RemoveFriendResponse, error) { out := new(RemoveFriendResponse) err := c.cc.Invoke(ctx, CharactersService_RemoveFriend_FullMethodName, in, out, opts...) @@ -221,15 +496,40 @@ type CharactersServiceServer interface { CharactersToLoginForAccount(context.Context, *CharactersToLoginForAccountRequest) (*CharactersToLoginForAccountResponse, error) CharactersToLoginByGUID(context.Context, *CharactersToLoginByGUIDRequest) (*CharactersToLoginByGUIDResponse, error) AccountDataForAccount(context.Context, *AccountDataForAccountRequest) (*AccountDataForAccountResponse, error) + UpdateAccountDataForAccount(context.Context, *UpdateAccountDataForAccountRequest) (*UpdateAccountDataForAccountResponse, error) WhoQuery(context.Context, *WhoQueryRequest) (*WhoQueryResponse, error) CharacterOnlineByName(context.Context, *CharacterOnlineByNameRequest) (*CharacterOnlineByNameResponse, error) CharacterByName(context.Context, *CharacterByNameRequest) (*CharacterByNameResponse, error) + CharacterByGUID(context.Context, *CharacterByGUIDRequest) (*CharacterByGUIDResponse, error) ShortOnlineCharactersDataByGUIDs(context.Context, *ShortCharactersDataByGUIDsRequest) (*ShortCharactersDataByGUIDsResponse, error) + ArenaTeamQueueDataForRatedArena(context.Context, *ArenaTeamQueueDataForRatedArenaRequest) (*ArenaTeamQueueDataForRatedArenaResponse, error) + GetArenaTeam(context.Context, *GetArenaTeamRequest) (*GetArenaTeamResponse, error) + GetArenaTeamPetition(context.Context, *GetArenaTeamPetitionRequest) (*GetArenaTeamPetitionResponse, error) + CreateArenaTeamFromPetition(context.Context, *CreateArenaTeamFromPetitionRequest) (*CreateArenaTeamFromPetitionResponse, error) + InviteArenaTeamMember(context.Context, *InviteArenaTeamMemberRequest) (*InviteArenaTeamMemberResponse, error) + AcceptArenaTeamInvite(context.Context, *AcceptArenaTeamInviteRequest) (*AcceptArenaTeamInviteResponse, error) + DeclineArenaTeamInvite(context.Context, *DeclineArenaTeamInviteRequest) (*ArenaTeamMutationResponse, error) + AddArenaTeamMember(context.Context, *AddArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) + RemoveArenaTeamMember(context.Context, *RemoveArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) + DisbandArenaTeam(context.Context, *DisbandArenaTeamRequest) (*ArenaTeamMutationResponse, error) + SetArenaTeamCaptain(context.Context, *SetArenaTeamCaptainRequest) (*ArenaTeamMutationResponse, error) + SetArenaTeamName(context.Context, *SetArenaTeamNameRequest) (*ArenaTeamMutationResponse, error) + SaveArenaTeamStats(context.Context, *SaveArenaTeamStatsRequest) (*ArenaTeamMutationResponse, error) + DeleteAllArenaTeams(context.Context, *DeleteAllArenaTeamsRequest) (*ArenaTeamMutationResponse, error) + ValidateArenaTeamCharacterDelete(context.Context, *ValidateArenaTeamCharacterDeleteRequest) (*ArenaTeamMutationResponse, error) + RemovePlayerFromArenaTeams(context.Context, *RemovePlayerFromArenaTeamsRequest) (*ArenaTeamMutationResponse, error) // Would effect only offline player. SavePlayerPosition(context.Context, *SavePlayerPositionRequest) (*SavePlayerPositionResponse, error) + RecordLfgDungeonRoute(context.Context, *RecordLfgDungeonRouteRequest) (*RecordLfgDungeonRouteResponse, error) + ConfirmLfgDungeonRouteEntered(context.Context, *ConfirmLfgDungeonRouteEnteredRequest) (*ConfirmLfgDungeonRouteEnteredResponse, error) + ClearUnboundLfgDungeonRoute(context.Context, *ClearUnboundLfgDungeonRouteRequest) (*ClearUnboundLfgDungeonRouteResponse, error) + GetLfgDungeonRoute(context.Context, *GetLfgDungeonRouteRequest) (*GetLfgDungeonRouteResponse, error) // Friends and ignore list management GetFriendsList(context.Context, *GetFriendsListRequest) (*GetFriendsListResponse, error) AddFriend(context.Context, *AddFriendRequest) (*AddFriendResponse, error) + AddRealIDFriendByEmail(context.Context, *AddRealIDFriendByEmailRequest) (*AddRealIDFriendByEmailResponse, error) + AcceptRealIDFriend(context.Context, *AcceptRealIDFriendRequest) (*AcceptRealIDFriendResponse, error) + AreRealIDFriends(context.Context, *AreRealIDFriendsRequest) (*AreRealIDFriendsResponse, error) RemoveFriend(context.Context, *RemoveFriendRequest) (*RemoveFriendResponse, error) SetFriendNote(context.Context, *SetFriendNoteRequest) (*SetFriendNoteResponse, error) AddIgnore(context.Context, *AddIgnoreRequest) (*AddIgnoreResponse, error) @@ -253,6 +553,9 @@ func (UnimplementedCharactersServiceServer) CharactersToLoginByGUID(context.Cont func (UnimplementedCharactersServiceServer) AccountDataForAccount(context.Context, *AccountDataForAccountRequest) (*AccountDataForAccountResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AccountDataForAccount not implemented") } +func (UnimplementedCharactersServiceServer) UpdateAccountDataForAccount(context.Context, *UpdateAccountDataForAccountRequest) (*UpdateAccountDataForAccountResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateAccountDataForAccount not implemented") +} func (UnimplementedCharactersServiceServer) WhoQuery(context.Context, *WhoQueryRequest) (*WhoQueryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method WhoQuery not implemented") } @@ -262,18 +565,90 @@ func (UnimplementedCharactersServiceServer) CharacterOnlineByName(context.Contex func (UnimplementedCharactersServiceServer) CharacterByName(context.Context, *CharacterByNameRequest) (*CharacterByNameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CharacterByName not implemented") } +func (UnimplementedCharactersServiceServer) CharacterByGUID(context.Context, *CharacterByGUIDRequest) (*CharacterByGUIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CharacterByGUID not implemented") +} func (UnimplementedCharactersServiceServer) ShortOnlineCharactersDataByGUIDs(context.Context, *ShortCharactersDataByGUIDsRequest) (*ShortCharactersDataByGUIDsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ShortOnlineCharactersDataByGUIDs not implemented") } +func (UnimplementedCharactersServiceServer) ArenaTeamQueueDataForRatedArena(context.Context, *ArenaTeamQueueDataForRatedArenaRequest) (*ArenaTeamQueueDataForRatedArenaResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ArenaTeamQueueDataForRatedArena not implemented") +} +func (UnimplementedCharactersServiceServer) GetArenaTeam(context.Context, *GetArenaTeamRequest) (*GetArenaTeamResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArenaTeam not implemented") +} +func (UnimplementedCharactersServiceServer) GetArenaTeamPetition(context.Context, *GetArenaTeamPetitionRequest) (*GetArenaTeamPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetArenaTeamPetition not implemented") +} +func (UnimplementedCharactersServiceServer) CreateArenaTeamFromPetition(context.Context, *CreateArenaTeamFromPetitionRequest) (*CreateArenaTeamFromPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateArenaTeamFromPetition not implemented") +} +func (UnimplementedCharactersServiceServer) InviteArenaTeamMember(context.Context, *InviteArenaTeamMemberRequest) (*InviteArenaTeamMemberResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method InviteArenaTeamMember not implemented") +} +func (UnimplementedCharactersServiceServer) AcceptArenaTeamInvite(context.Context, *AcceptArenaTeamInviteRequest) (*AcceptArenaTeamInviteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcceptArenaTeamInvite not implemented") +} +func (UnimplementedCharactersServiceServer) DeclineArenaTeamInvite(context.Context, *DeclineArenaTeamInviteRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeclineArenaTeamInvite not implemented") +} +func (UnimplementedCharactersServiceServer) AddArenaTeamMember(context.Context, *AddArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddArenaTeamMember not implemented") +} +func (UnimplementedCharactersServiceServer) RemoveArenaTeamMember(context.Context, *RemoveArenaTeamMemberRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveArenaTeamMember not implemented") +} +func (UnimplementedCharactersServiceServer) DisbandArenaTeam(context.Context, *DisbandArenaTeamRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DisbandArenaTeam not implemented") +} +func (UnimplementedCharactersServiceServer) SetArenaTeamCaptain(context.Context, *SetArenaTeamCaptainRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetArenaTeamCaptain not implemented") +} +func (UnimplementedCharactersServiceServer) SetArenaTeamName(context.Context, *SetArenaTeamNameRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetArenaTeamName not implemented") +} +func (UnimplementedCharactersServiceServer) SaveArenaTeamStats(context.Context, *SaveArenaTeamStatsRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SaveArenaTeamStats not implemented") +} +func (UnimplementedCharactersServiceServer) DeleteAllArenaTeams(context.Context, *DeleteAllArenaTeamsRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteAllArenaTeams not implemented") +} +func (UnimplementedCharactersServiceServer) ValidateArenaTeamCharacterDelete(context.Context, *ValidateArenaTeamCharacterDeleteRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateArenaTeamCharacterDelete not implemented") +} +func (UnimplementedCharactersServiceServer) RemovePlayerFromArenaTeams(context.Context, *RemovePlayerFromArenaTeamsRequest) (*ArenaTeamMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemovePlayerFromArenaTeams not implemented") +} func (UnimplementedCharactersServiceServer) SavePlayerPosition(context.Context, *SavePlayerPositionRequest) (*SavePlayerPositionResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SavePlayerPosition not implemented") } +func (UnimplementedCharactersServiceServer) RecordLfgDungeonRoute(context.Context, *RecordLfgDungeonRouteRequest) (*RecordLfgDungeonRouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RecordLfgDungeonRoute not implemented") +} +func (UnimplementedCharactersServiceServer) ConfirmLfgDungeonRouteEntered(context.Context, *ConfirmLfgDungeonRouteEnteredRequest) (*ConfirmLfgDungeonRouteEnteredResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ConfirmLfgDungeonRouteEntered not implemented") +} +func (UnimplementedCharactersServiceServer) ClearUnboundLfgDungeonRoute(context.Context, *ClearUnboundLfgDungeonRouteRequest) (*ClearUnboundLfgDungeonRouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ClearUnboundLfgDungeonRoute not implemented") +} +func (UnimplementedCharactersServiceServer) GetLfgDungeonRoute(context.Context, *GetLfgDungeonRouteRequest) (*GetLfgDungeonRouteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgDungeonRoute not implemented") +} func (UnimplementedCharactersServiceServer) GetFriendsList(context.Context, *GetFriendsListRequest) (*GetFriendsListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFriendsList not implemented") } func (UnimplementedCharactersServiceServer) AddFriend(context.Context, *AddFriendRequest) (*AddFriendResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AddFriend not implemented") } +func (UnimplementedCharactersServiceServer) AddRealIDFriendByEmail(context.Context, *AddRealIDFriendByEmailRequest) (*AddRealIDFriendByEmailResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddRealIDFriendByEmail not implemented") +} +func (UnimplementedCharactersServiceServer) AcceptRealIDFriend(context.Context, *AcceptRealIDFriendRequest) (*AcceptRealIDFriendResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcceptRealIDFriend not implemented") +} +func (UnimplementedCharactersServiceServer) AreRealIDFriends(context.Context, *AreRealIDFriendsRequest) (*AreRealIDFriendsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AreRealIDFriends not implemented") +} func (UnimplementedCharactersServiceServer) RemoveFriend(context.Context, *RemoveFriendRequest) (*RemoveFriendResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveFriend not implemented") } @@ -359,6 +734,24 @@ func _CharactersService_AccountDataForAccount_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _CharactersService_UpdateAccountDataForAccount_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAccountDataForAccountRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).UpdateAccountDataForAccount(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_UpdateAccountDataForAccount_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).UpdateAccountDataForAccount(ctx, req.(*UpdateAccountDataForAccountRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CharactersService_WhoQuery_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WhoQueryRequest) if err := dec(in); err != nil { @@ -413,6 +806,24 @@ func _CharactersService_CharacterByName_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _CharactersService_CharacterByGUID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CharacterByGUIDRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).CharacterByGUID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_CharacterByGUID_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).CharacterByGUID(ctx, req.(*CharacterByGUIDRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CharactersService_ShortOnlineCharactersDataByGUIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ShortCharactersDataByGUIDsRequest) if err := dec(in); err != nil { @@ -431,178 +842,592 @@ func _CharactersService_ShortOnlineCharactersDataByGUIDs_Handler(srv interface{} return interceptor(ctx, in, info, handler) } -func _CharactersService_SavePlayerPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SavePlayerPositionRequest) +func _CharactersService_ArenaTeamQueueDataForRatedArena_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ArenaTeamQueueDataForRatedArenaRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).SavePlayerPosition(ctx, in) + return srv.(CharactersServiceServer).ArenaTeamQueueDataForRatedArena(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_SavePlayerPosition_FullMethodName, + FullMethod: CharactersService_ArenaTeamQueueDataForRatedArena_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).SavePlayerPosition(ctx, req.(*SavePlayerPositionRequest)) + return srv.(CharactersServiceServer).ArenaTeamQueueDataForRatedArena(ctx, req.(*ArenaTeamQueueDataForRatedArenaRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_GetFriendsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendsListRequest) +func _CharactersService_GetArenaTeam_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArenaTeamRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).GetFriendsList(ctx, in) + return srv.(CharactersServiceServer).GetArenaTeam(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_GetFriendsList_FullMethodName, + FullMethod: CharactersService_GetArenaTeam_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).GetFriendsList(ctx, req.(*GetFriendsListRequest)) + return srv.(CharactersServiceServer).GetArenaTeam(ctx, req.(*GetArenaTeamRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddFriendRequest) +func _CharactersService_GetArenaTeamPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetArenaTeamPetitionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).AddFriend(ctx, in) + return srv.(CharactersServiceServer).GetArenaTeamPetition(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_AddFriend_FullMethodName, + FullMethod: CharactersService_GetArenaTeamPetition_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).AddFriend(ctx, req.(*AddFriendRequest)) + return srv.(CharactersServiceServer).GetArenaTeamPetition(ctx, req.(*GetArenaTeamPetitionRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_RemoveFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveFriendRequest) +func _CharactersService_CreateArenaTeamFromPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateArenaTeamFromPetitionRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).RemoveFriend(ctx, in) + return srv.(CharactersServiceServer).CreateArenaTeamFromPetition(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_RemoveFriend_FullMethodName, + FullMethod: CharactersService_CreateArenaTeamFromPetition_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).RemoveFriend(ctx, req.(*RemoveFriendRequest)) + return srv.(CharactersServiceServer).CreateArenaTeamFromPetition(ctx, req.(*CreateArenaTeamFromPetitionRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_SetFriendNote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetFriendNoteRequest) +func _CharactersService_InviteArenaTeamMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InviteArenaTeamMemberRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).SetFriendNote(ctx, in) + return srv.(CharactersServiceServer).InviteArenaTeamMember(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_SetFriendNote_FullMethodName, + FullMethod: CharactersService_InviteArenaTeamMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).SetFriendNote(ctx, req.(*SetFriendNoteRequest)) + return srv.(CharactersServiceServer).InviteArenaTeamMember(ctx, req.(*InviteArenaTeamMemberRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_AddIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddIgnoreRequest) +func _CharactersService_AcceptArenaTeamInvite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcceptArenaTeamInviteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).AddIgnore(ctx, in) + return srv.(CharactersServiceServer).AcceptArenaTeamInvite(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_AddIgnore_FullMethodName, + FullMethod: CharactersService_AcceptArenaTeamInvite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).AddIgnore(ctx, req.(*AddIgnoreRequest)) + return srv.(CharactersServiceServer).AcceptArenaTeamInvite(ctx, req.(*AcceptArenaTeamInviteRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_RemoveIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveIgnoreRequest) +func _CharactersService_DeclineArenaTeamInvite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeclineArenaTeamInviteRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).RemoveIgnore(ctx, in) + return srv.(CharactersServiceServer).DeclineArenaTeamInvite(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_RemoveIgnore_FullMethodName, + FullMethod: CharactersService_DeclineArenaTeamInvite_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).RemoveIgnore(ctx, req.(*RemoveIgnoreRequest)) + return srv.(CharactersServiceServer).DeclineArenaTeamInvite(ctx, req.(*DeclineArenaTeamInviteRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_NotifyStatusChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NotifyStatusChangeRequest) +func _CharactersService_AddArenaTeamMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddArenaTeamMemberRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).NotifyStatusChange(ctx, in) + return srv.(CharactersServiceServer).AddArenaTeamMember(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_NotifyStatusChange_FullMethodName, + FullMethod: CharactersService_AddArenaTeamMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).NotifyStatusChange(ctx, req.(*NotifyStatusChangeRequest)) + return srv.(CharactersServiceServer).AddArenaTeamMember(ctx, req.(*AddArenaTeamMemberRequest)) } return interceptor(ctx, in, info, handler) } -func _CharactersService_GetOnlineCharacters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetOnlineCharactersRequest) +func _CharactersService_RemoveArenaTeamMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveArenaTeamMemberRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, in) + return srv.(CharactersServiceServer).RemoveArenaTeamMember(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: CharactersService_GetOnlineCharacters_FullMethodName, + FullMethod: CharactersService_RemoveArenaTeamMember_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, req.(*GetOnlineCharactersRequest)) + return srv.(CharactersServiceServer).RemoveArenaTeamMember(ctx, req.(*RemoveArenaTeamMemberRequest)) } return interceptor(ctx, in, info, handler) } -// CharactersService_ServiceDesc is the grpc.ServiceDesc for CharactersService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var CharactersService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "v1.CharactersService", - HandlerType: (*CharactersServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "CharactersToLoginForAccount", - Handler: _CharactersService_CharactersToLoginForAccount_Handler, +func _CharactersService_DisbandArenaTeam_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisbandArenaTeamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).DisbandArenaTeam(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_DisbandArenaTeam_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).DisbandArenaTeam(ctx, req.(*DisbandArenaTeamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SetArenaTeamCaptain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetArenaTeamCaptainRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SetArenaTeamCaptain(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SetArenaTeamCaptain_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SetArenaTeamCaptain(ctx, req.(*SetArenaTeamCaptainRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SetArenaTeamName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetArenaTeamNameRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SetArenaTeamName(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SetArenaTeamName_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SetArenaTeamName(ctx, req.(*SetArenaTeamNameRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SaveArenaTeamStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SaveArenaTeamStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SaveArenaTeamStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SaveArenaTeamStats_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SaveArenaTeamStats(ctx, req.(*SaveArenaTeamStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_DeleteAllArenaTeams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAllArenaTeamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).DeleteAllArenaTeams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_DeleteAllArenaTeams_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).DeleteAllArenaTeams(ctx, req.(*DeleteAllArenaTeamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_ValidateArenaTeamCharacterDelete_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateArenaTeamCharacterDeleteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).ValidateArenaTeamCharacterDelete(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_ValidateArenaTeamCharacterDelete_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).ValidateArenaTeamCharacterDelete(ctx, req.(*ValidateArenaTeamCharacterDeleteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RemovePlayerFromArenaTeams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemovePlayerFromArenaTeamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RemovePlayerFromArenaTeams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RemovePlayerFromArenaTeams_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RemovePlayerFromArenaTeams(ctx, req.(*RemovePlayerFromArenaTeamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SavePlayerPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SavePlayerPositionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SavePlayerPosition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SavePlayerPosition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SavePlayerPosition(ctx, req.(*SavePlayerPositionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RecordLfgDungeonRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RecordLfgDungeonRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RecordLfgDungeonRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RecordLfgDungeonRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RecordLfgDungeonRoute(ctx, req.(*RecordLfgDungeonRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_ConfirmLfgDungeonRouteEntered_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ConfirmLfgDungeonRouteEnteredRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).ConfirmLfgDungeonRouteEntered(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_ConfirmLfgDungeonRouteEntered_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).ConfirmLfgDungeonRouteEntered(ctx, req.(*ConfirmLfgDungeonRouteEnteredRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_ClearUnboundLfgDungeonRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClearUnboundLfgDungeonRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).ClearUnboundLfgDungeonRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_ClearUnboundLfgDungeonRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).ClearUnboundLfgDungeonRoute(ctx, req.(*ClearUnboundLfgDungeonRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_GetLfgDungeonRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgDungeonRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).GetLfgDungeonRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_GetLfgDungeonRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).GetLfgDungeonRoute(ctx, req.(*GetLfgDungeonRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_GetFriendsList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFriendsListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).GetFriendsList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_GetFriendsList_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).GetFriendsList(ctx, req.(*GetFriendsListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddFriendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AddFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AddFriend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AddFriend(ctx, req.(*AddFriendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AddRealIDFriendByEmail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddRealIDFriendByEmailRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AddRealIDFriendByEmail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AddRealIDFriendByEmail_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AddRealIDFriendByEmail(ctx, req.(*AddRealIDFriendByEmailRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AcceptRealIDFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcceptRealIDFriendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AcceptRealIDFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AcceptRealIDFriend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AcceptRealIDFriend(ctx, req.(*AcceptRealIDFriendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AreRealIDFriends_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AreRealIDFriendsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AreRealIDFriends(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AreRealIDFriends_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AreRealIDFriends(ctx, req.(*AreRealIDFriendsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RemoveFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveFriendRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RemoveFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RemoveFriend_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RemoveFriend(ctx, req.(*RemoveFriendRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_SetFriendNote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetFriendNoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).SetFriendNote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_SetFriendNote_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).SetFriendNote(ctx, req.(*SetFriendNoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_AddIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddIgnoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).AddIgnore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_AddIgnore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).AddIgnore(ctx, req.(*AddIgnoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_RemoveIgnore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveIgnoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).RemoveIgnore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_RemoveIgnore_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).RemoveIgnore(ctx, req.(*RemoveIgnoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_NotifyStatusChange_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NotifyStatusChangeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).NotifyStatusChange(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_NotifyStatusChange_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).NotifyStatusChange(ctx, req.(*NotifyStatusChangeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _CharactersService_GetOnlineCharacters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOnlineCharactersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: CharactersService_GetOnlineCharacters_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CharactersServiceServer).GetOnlineCharacters(ctx, req.(*GetOnlineCharactersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// CharactersService_ServiceDesc is the grpc.ServiceDesc for CharactersService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var CharactersService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "v1.CharactersService", + HandlerType: (*CharactersServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CharactersToLoginForAccount", + Handler: _CharactersService_CharactersToLoginForAccount_Handler, }, { MethodName: "CharactersToLoginByGUID", @@ -612,6 +1437,10 @@ var CharactersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "AccountDataForAccount", Handler: _CharactersService_AccountDataForAccount_Handler, }, + { + MethodName: "UpdateAccountDataForAccount", + Handler: _CharactersService_UpdateAccountDataForAccount_Handler, + }, { MethodName: "WhoQuery", Handler: _CharactersService_WhoQuery_Handler, @@ -624,14 +1453,98 @@ var CharactersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CharacterByName", Handler: _CharactersService_CharacterByName_Handler, }, + { + MethodName: "CharacterByGUID", + Handler: _CharactersService_CharacterByGUID_Handler, + }, { MethodName: "ShortOnlineCharactersDataByGUIDs", Handler: _CharactersService_ShortOnlineCharactersDataByGUIDs_Handler, }, + { + MethodName: "ArenaTeamQueueDataForRatedArena", + Handler: _CharactersService_ArenaTeamQueueDataForRatedArena_Handler, + }, + { + MethodName: "GetArenaTeam", + Handler: _CharactersService_GetArenaTeam_Handler, + }, + { + MethodName: "GetArenaTeamPetition", + Handler: _CharactersService_GetArenaTeamPetition_Handler, + }, + { + MethodName: "CreateArenaTeamFromPetition", + Handler: _CharactersService_CreateArenaTeamFromPetition_Handler, + }, + { + MethodName: "InviteArenaTeamMember", + Handler: _CharactersService_InviteArenaTeamMember_Handler, + }, + { + MethodName: "AcceptArenaTeamInvite", + Handler: _CharactersService_AcceptArenaTeamInvite_Handler, + }, + { + MethodName: "DeclineArenaTeamInvite", + Handler: _CharactersService_DeclineArenaTeamInvite_Handler, + }, + { + MethodName: "AddArenaTeamMember", + Handler: _CharactersService_AddArenaTeamMember_Handler, + }, + { + MethodName: "RemoveArenaTeamMember", + Handler: _CharactersService_RemoveArenaTeamMember_Handler, + }, + { + MethodName: "DisbandArenaTeam", + Handler: _CharactersService_DisbandArenaTeam_Handler, + }, + { + MethodName: "SetArenaTeamCaptain", + Handler: _CharactersService_SetArenaTeamCaptain_Handler, + }, + { + MethodName: "SetArenaTeamName", + Handler: _CharactersService_SetArenaTeamName_Handler, + }, + { + MethodName: "SaveArenaTeamStats", + Handler: _CharactersService_SaveArenaTeamStats_Handler, + }, + { + MethodName: "DeleteAllArenaTeams", + Handler: _CharactersService_DeleteAllArenaTeams_Handler, + }, + { + MethodName: "ValidateArenaTeamCharacterDelete", + Handler: _CharactersService_ValidateArenaTeamCharacterDelete_Handler, + }, + { + MethodName: "RemovePlayerFromArenaTeams", + Handler: _CharactersService_RemovePlayerFromArenaTeams_Handler, + }, { MethodName: "SavePlayerPosition", Handler: _CharactersService_SavePlayerPosition_Handler, }, + { + MethodName: "RecordLfgDungeonRoute", + Handler: _CharactersService_RecordLfgDungeonRoute_Handler, + }, + { + MethodName: "ConfirmLfgDungeonRouteEntered", + Handler: _CharactersService_ConfirmLfgDungeonRouteEntered_Handler, + }, + { + MethodName: "ClearUnboundLfgDungeonRoute", + Handler: _CharactersService_ClearUnboundLfgDungeonRoute_Handler, + }, + { + MethodName: "GetLfgDungeonRoute", + Handler: _CharactersService_GetLfgDungeonRoute_Handler, + }, { MethodName: "GetFriendsList", Handler: _CharactersService_GetFriendsList_Handler, @@ -640,6 +1553,18 @@ var CharactersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "AddFriend", Handler: _CharactersService_AddFriend_Handler, }, + { + MethodName: "AddRealIDFriendByEmail", + Handler: _CharactersService_AddRealIDFriendByEmail_Handler, + }, + { + MethodName: "AcceptRealIDFriend", + Handler: _CharactersService_AcceptRealIDFriend_Handler, + }, + { + MethodName: "AreRealIDFriends", + Handler: _CharactersService_AreRealIDFriends_Handler, + }, { MethodName: "RemoveFriend", Handler: _CharactersService_RemoveFriend_Handler, diff --git a/gen/chat/gen/chat/pb/chat.pb.go b/gen/chat/gen/chat/pb/chat.pb.go index 5d10c6f..226c5cc 100644 --- a/gen/chat/gen/chat/pb/chat.pb.go +++ b/gen/chat/gen/chat/pb/chat.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: chat.proto package pb @@ -20,11 +20,61 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type TeamID int32 + +const ( + TeamID_TEAM_ALLIANCE TeamID = 0 + TeamID_TEAM_HORDE TeamID = 1 + TeamID_TEAM_NEUTRAL TeamID = 2 +) + +// Enum value maps for TeamID. +var ( + TeamID_name = map[int32]string{ + 0: "TEAM_ALLIANCE", + 1: "TEAM_HORDE", + 2: "TEAM_NEUTRAL", + } + TeamID_value = map[string]int32{ + "TEAM_ALLIANCE": 0, + "TEAM_HORDE": 1, + "TEAM_NEUTRAL": 2, + } +) + +func (x TeamID) Enum() *TeamID { + p := new(TeamID) + *p = x + return p +} + +func (x TeamID) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TeamID) Descriptor() protoreflect.EnumDescriptor { + return file_chat_proto_enumTypes[0].Descriptor() +} + +func (TeamID) Type() protoreflect.EnumType { + return &file_chat_proto_enumTypes[0] +} + +func (x TeamID) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TeamID.Descriptor instead. +func (TeamID) EnumDescriptor() ([]byte, []int) { + return file_chat_proto_rawDescGZIP(), []int{0} +} + type SendWhisperMessageResponse_Status int32 const ( - SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 - SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 + SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_CharacterAmbiguous SendWhisperMessageResponse_Status = 3 ) // Enum value maps for SendWhisperMessageResponse_Status. @@ -32,10 +82,12 @@ var ( SendWhisperMessageResponse_Status_name = map[int32]string{ 0: "Ok", 2: "CharacterNotFound", + 3: "CharacterAmbiguous", } SendWhisperMessageResponse_Status_value = map[string]int32{ - "Ok": 0, - "CharacterNotFound": 2, + "Ok": 0, + "CharacterNotFound": 2, + "CharacterAmbiguous": 3, } ) @@ -50,11 +102,11 @@ func (x SendWhisperMessageResponse_Status) String() string { } func (SendWhisperMessageResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[0].Descriptor() + return file_chat_proto_enumTypes[1].Descriptor() } func (SendWhisperMessageResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[0] + return &file_chat_proto_enumTypes[1] } func (x SendWhisperMessageResponse_Status) Number() protoreflect.EnumNumber { @@ -108,11 +160,11 @@ func (x JoinChannelResponse_Status) String() string { } func (JoinChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[1].Descriptor() + return file_chat_proto_enumTypes[2].Descriptor() } func (JoinChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[1] + return &file_chat_proto_enumTypes[2] } func (x JoinChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -154,11 +206,11 @@ func (x LeaveChannelResponse_Status) String() string { } func (LeaveChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[2].Descriptor() + return file_chat_proto_enumTypes[3].Descriptor() } func (LeaveChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[2] + return &file_chat_proto_enumTypes[3] } func (x LeaveChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -206,11 +258,11 @@ func (x SendChannelMessageResponse_Status) String() string { } func (SendChannelMessageResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[3].Descriptor() + return file_chat_proto_enumTypes[4].Descriptor() } func (SendChannelMessageResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[3] + return &file_chat_proto_enumTypes[4] } func (x SendChannelMessageResponse_Status) Number() protoreflect.EnumNumber { @@ -252,11 +304,11 @@ func (x GetChannelListResponse_Status) String() string { } func (GetChannelListResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[4].Descriptor() + return file_chat_proto_enumTypes[5].Descriptor() } func (GetChannelListResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[4] + return &file_chat_proto_enumTypes[5] } func (x GetChannelListResponse_Status) Number() protoreflect.EnumNumber { @@ -304,11 +356,11 @@ func (x KickFromChannelResponse_Status) String() string { } func (KickFromChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[5].Descriptor() + return file_chat_proto_enumTypes[6].Descriptor() } func (KickFromChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[5] + return &file_chat_proto_enumTypes[6] } func (x KickFromChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -356,11 +408,11 @@ func (x BanFromChannelResponse_Status) String() string { } func (BanFromChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[6].Descriptor() + return file_chat_proto_enumTypes[7].Descriptor() } func (BanFromChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[6] + return &file_chat_proto_enumTypes[7] } func (x BanFromChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -408,11 +460,11 @@ func (x UnbanFromChannelResponse_Status) String() string { } func (UnbanFromChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[7].Descriptor() + return file_chat_proto_enumTypes[8].Descriptor() } func (UnbanFromChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[7] + return &file_chat_proto_enumTypes[8] } func (x UnbanFromChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -460,11 +512,11 @@ func (x SetChannelModeratorResponse_Status) String() string { } func (SetChannelModeratorResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[8].Descriptor() + return file_chat_proto_enumTypes[9].Descriptor() } func (SetChannelModeratorResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[8] + return &file_chat_proto_enumTypes[9] } func (x SetChannelModeratorResponse_Status) Number() protoreflect.EnumNumber { @@ -512,11 +564,11 @@ func (x UnsetChannelModeratorResponse_Status) String() string { } func (UnsetChannelModeratorResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[9].Descriptor() + return file_chat_proto_enumTypes[10].Descriptor() } func (UnsetChannelModeratorResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[9] + return &file_chat_proto_enumTypes[10] } func (x UnsetChannelModeratorResponse_Status) Number() protoreflect.EnumNumber { @@ -564,11 +616,11 @@ func (x SetChannelMuteResponse_Status) String() string { } func (SetChannelMuteResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[10].Descriptor() + return file_chat_proto_enumTypes[11].Descriptor() } func (SetChannelMuteResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[10] + return &file_chat_proto_enumTypes[11] } func (x SetChannelMuteResponse_Status) Number() protoreflect.EnumNumber { @@ -616,11 +668,11 @@ func (x UnsetChannelMuteResponse_Status) String() string { } func (UnsetChannelMuteResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[11].Descriptor() + return file_chat_proto_enumTypes[12].Descriptor() } func (UnsetChannelMuteResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[11] + return &file_chat_proto_enumTypes[12] } func (x UnsetChannelMuteResponse_Status) Number() protoreflect.EnumNumber { @@ -668,11 +720,11 @@ func (x SetChannelOwnerResponse_Status) String() string { } func (SetChannelOwnerResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[12].Descriptor() + return file_chat_proto_enumTypes[13].Descriptor() } func (SetChannelOwnerResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[12] + return &file_chat_proto_enumTypes[13] } func (x SetChannelOwnerResponse_Status) Number() protoreflect.EnumNumber { @@ -717,11 +769,11 @@ func (x SetChannelPasswordResponse_Status) String() string { } func (SetChannelPasswordResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[13].Descriptor() + return file_chat_proto_enumTypes[14].Descriptor() } func (SetChannelPasswordResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[13] + return &file_chat_proto_enumTypes[14] } func (x SetChannelPasswordResponse_Status) Number() protoreflect.EnumNumber { @@ -766,11 +818,11 @@ func (x ToggleChannelModerationResponse_Status) String() string { } func (ToggleChannelModerationResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[14].Descriptor() + return file_chat_proto_enumTypes[15].Descriptor() } func (ToggleChannelModerationResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[14] + return &file_chat_proto_enumTypes[15] } func (x ToggleChannelModerationResponse_Status) Number() protoreflect.EnumNumber { @@ -815,11 +867,11 @@ func (x ToggleChannelAnnouncementsResponse_Status) String() string { } func (ToggleChannelAnnouncementsResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[15].Descriptor() + return file_chat_proto_enumTypes[16].Descriptor() } func (ToggleChannelAnnouncementsResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[15] + return &file_chat_proto_enumTypes[16] } func (x ToggleChannelAnnouncementsResponse_Status) Number() protoreflect.EnumNumber { @@ -873,11 +925,11 @@ func (x InviteToChannelResponse_Status) String() string { } func (InviteToChannelResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_chat_proto_enumTypes[16].Descriptor() + return file_chat_proto_enumTypes[17].Descriptor() } func (InviteToChannelResponse_Status) Type() protoreflect.EnumType { - return &file_chat_proto_enumTypes[16] + return &file_chat_proto_enumTypes[17] } func (x InviteToChannelResponse_Status) Number() protoreflect.EnumNumber { @@ -894,14 +946,20 @@ type SendWhisperMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,9,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + SenderClass uint32 `protobuf:"varint,10,opt,name=senderClass,proto3" json:"senderClass,omitempty"` + SenderGender uint32 `protobuf:"varint,11,opt,name=senderGender,proto3" json:"senderGender,omitempty"` + SenderAccountID uint32 `protobuf:"varint,12,opt,name=senderAccountID,proto3" json:"senderAccountID,omitempty"` + GatewayValidatedGameplayCrossrealmWhisper bool `protobuf:"varint,13,opt,name=gatewayValidatedGameplayCrossrealmWhisper,proto3" json:"gatewayValidatedGameplayCrossrealmWhisper,omitempty"` + SenderChatTag uint32 `protobuf:"varint,14,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendWhisperMessageRequest) Reset() { @@ -992,14 +1050,61 @@ func (x *SendWhisperMessageRequest) GetMsg() string { return "" } +func (x *SendWhisperMessageRequest) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderClass() uint32 { + if x != nil { + return x.SenderClass + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderGender() uint32 { + if x != nil { + return x.SenderGender + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderAccountID() uint32 { + if x != nil { + return x.SenderAccountID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetGatewayValidatedGameplayCrossrealmWhisper() bool { + if x != nil { + return x.GatewayValidatedGameplayCrossrealmWhisper + } + return false +} + +func (x *SendWhisperMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendWhisperMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` - ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` + ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,4,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + ReceiverName string `protobuf:"bytes,5,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + ReceiverRace uint32 `protobuf:"varint,6,opt,name=receiverRace,proto3" json:"receiverRace,omitempty"` + ReceiverClass uint32 `protobuf:"varint,7,opt,name=receiverClass,proto3" json:"receiverClass,omitempty"` + ReceiverGender uint32 `protobuf:"varint,8,opt,name=receiverGender,proto3" json:"receiverGender,omitempty"` } func (x *SendWhisperMessageResponse) Reset() { @@ -1055,19 +1160,55 @@ func (x *SendWhisperMessageResponse) GetReceiverGUID() uint64 { return 0 } +func (x *SendWhisperMessageResponse) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverName() string { + if x != nil { + return x.ReceiverName + } + return "" +} + +func (x *SendWhisperMessageResponse) GetReceiverRace() uint32 { + if x != nil { + return x.ReceiverRace + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverClass() uint32 { + if x != nil { + return x.ReceiverClass + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverGender() uint32 { + if x != nil { + return x.ReceiverGender + } + return 0 +} + type JoinChannelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - PlayerName string `protobuf:"bytes,4,opt,name=playerName,proto3" json:"playerName,omitempty"` - TeamID uint32 `protobuf:"varint,5,opt,name=teamID,proto3" json:"teamID,omitempty"` // 0=Alliance, 1=Horde, 2=Neutral - ChannelName string `protobuf:"bytes,6,opt,name=channelName,proto3" json:"channelName,omitempty"` - ChannelID uint32 `protobuf:"varint,7,opt,name=channelID,proto3" json:"channelID,omitempty"` // 0 for custom channels - Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PlayerName string `protobuf:"bytes,4,opt,name=playerName,proto3" json:"playerName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + ChannelName string `protobuf:"bytes,6,opt,name=channelName,proto3" json:"channelName,omitempty"` + ChannelID uint32 `protobuf:"varint,7,opt,name=channelID,proto3" json:"channelID,omitempty"` // 0 for custom channels, or worldserver's ID for territorial + Password string `protobuf:"bytes,8,opt,name=password,proto3" json:"password,omitempty"` + ChannelFlags uint32 `protobuf:"varint,9,opt,name=channelFlags,proto3" json:"channelFlags,omitempty"` // 0 to auto-detect, or worldserver's flags for territorial } func (x *JoinChannelRequest) Reset() { @@ -1130,11 +1271,11 @@ func (x *JoinChannelRequest) GetPlayerName() string { return "" } -func (x *JoinChannelRequest) GetTeamID() uint32 { +func (x *JoinChannelRequest) GetTeamID() TeamID { if x != nil { return x.TeamID } - return 0 + return TeamID_TEAM_ALLIANCE } func (x *JoinChannelRequest) GetChannelName() string { @@ -1158,6 +1299,13 @@ func (x *JoinChannelRequest) GetPassword() string { return "" } +func (x *JoinChannelRequest) GetChannelFlags() uint32 { + if x != nil { + return x.ChannelFlags + } + return 0 +} + type JoinChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1230,6 +1378,7 @@ type LeaveChannelRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *LeaveChannelRequest) Reset() { @@ -1292,6 +1441,13 @@ func (x *LeaveChannelRequest) GetChannelName() string { return "" } +func (x *LeaveChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type LeaveChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1352,13 +1508,15 @@ type SendChannelMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + TeamID TeamID `protobuf:"varint,8,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + SenderChatTag uint32 `protobuf:"varint,9,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendChannelMessageRequest) Reset() { @@ -1442,6 +1600,20 @@ func (x *SendChannelMessageRequest) GetMessage() string { return "" } +func (x *SendChannelMessageRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + +func (x *SendChannelMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendChannelMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1506,6 +1678,7 @@ type GetChannelListRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *GetChannelListRequest) Reset() { @@ -1568,6 +1741,13 @@ func (x *GetChannelListRequest) GetChannelName() string { return "" } +func (x *GetChannelListRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type GetChannelListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1641,6 +1821,7 @@ type KickFromChannelRequest struct { KickerGUID uint64 `protobuf:"varint,3,opt,name=kickerGUID,proto3" json:"kickerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *KickFromChannelRequest) Reset() { @@ -1710,6 +1891,13 @@ func (x *KickFromChannelRequest) GetTargetName() string { return "" } +func (x *KickFromChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type KickFromChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1775,6 +1963,7 @@ type BanFromChannelRequest struct { BannerGUID uint64 `protobuf:"varint,3,opt,name=bannerGUID,proto3" json:"bannerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *BanFromChannelRequest) Reset() { @@ -1844,6 +2033,13 @@ func (x *BanFromChannelRequest) GetTargetName() string { return "" } +func (x *BanFromChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type BanFromChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1909,6 +2105,7 @@ type UnbanFromChannelRequest struct { UnbannerGUID uint64 `protobuf:"varint,3,opt,name=unbannerGUID,proto3" json:"unbannerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *UnbanFromChannelRequest) Reset() { @@ -1978,6 +2175,13 @@ func (x *UnbanFromChannelRequest) GetTargetName() string { return "" } +func (x *UnbanFromChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type UnbanFromChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2043,6 +2247,7 @@ type SetChannelModeratorRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelModeratorRequest) Reset() { @@ -2112,6 +2317,13 @@ func (x *SetChannelModeratorRequest) GetTargetName() string { return "" } +func (x *SetChannelModeratorRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelModeratorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2177,6 +2389,7 @@ type UnsetChannelModeratorRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *UnsetChannelModeratorRequest) Reset() { @@ -2246,6 +2459,13 @@ func (x *UnsetChannelModeratorRequest) GetTargetName() string { return "" } +func (x *UnsetChannelModeratorRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type UnsetChannelModeratorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2311,6 +2531,7 @@ type SetChannelMuteRequest struct { MuterGUID uint64 `protobuf:"varint,3,opt,name=muterGUID,proto3" json:"muterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelMuteRequest) Reset() { @@ -2380,6 +2601,13 @@ func (x *SetChannelMuteRequest) GetTargetName() string { return "" } +func (x *SetChannelMuteRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelMuteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2445,6 +2673,7 @@ type UnsetChannelMuteRequest struct { UnmuterGUID uint64 `protobuf:"varint,3,opt,name=unmuterGUID,proto3" json:"unmuterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *UnsetChannelMuteRequest) Reset() { @@ -2514,6 +2743,13 @@ func (x *UnsetChannelMuteRequest) GetTargetName() string { return "" } +func (x *UnsetChannelMuteRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type UnsetChannelMuteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2579,6 +2815,7 @@ type SetChannelOwnerRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelOwnerRequest) Reset() { @@ -2648,6 +2885,13 @@ func (x *SetChannelOwnerRequest) GetTargetName() string { return "" } +func (x *SetChannelOwnerRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelOwnerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2713,6 +2957,7 @@ type SetChannelPasswordRequest struct { SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` Password string `protobuf:"bytes,5,opt,name=password,proto3" json:"password,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *SetChannelPasswordRequest) Reset() { @@ -2782,6 +3027,13 @@ func (x *SetChannelPasswordRequest) GetPassword() string { return "" } +func (x *SetChannelPasswordRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type SetChannelPasswordResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2846,6 +3098,7 @@ type ToggleChannelModerationRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` TogglerGUID uint64 `protobuf:"varint,3,opt,name=togglerGUID,proto3" json:"togglerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *ToggleChannelModerationRequest) Reset() { @@ -2908,6 +3161,13 @@ func (x *ToggleChannelModerationRequest) GetChannelName() string { return "" } +func (x *ToggleChannelModerationRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type ToggleChannelModerationResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2980,6 +3240,7 @@ type ToggleChannelAnnouncementsRequest struct { RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` TogglerGUID uint64 `protobuf:"varint,3,opt,name=togglerGUID,proto3" json:"togglerGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` + TeamID TeamID `protobuf:"varint,5,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *ToggleChannelAnnouncementsRequest) Reset() { @@ -3042,6 +3303,13 @@ func (x *ToggleChannelAnnouncementsRequest) GetChannelName() string { return "" } +func (x *ToggleChannelAnnouncementsRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type ToggleChannelAnnouncementsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3115,6 +3383,7 @@ type InviteToChannelRequest struct { InviterGUID uint64 `protobuf:"varint,3,opt,name=inviterGUID,proto3" json:"inviterGUID,omitempty"` ChannelName string `protobuf:"bytes,4,opt,name=channelName,proto3" json:"channelName,omitempty"` TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + TeamID TeamID `protobuf:"varint,6,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` } func (x *InviteToChannelRequest) Reset() { @@ -3184,6 +3453,13 @@ func (x *InviteToChannelRequest) GetTargetName() string { return "" } +func (x *InviteToChannelRequest) GetTeamID() TeamID { + if x != nil { + return x.TeamID + } + return TeamID_TEAM_ALLIANCE +} + type InviteToChannelResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3385,7 +3661,7 @@ var File_chat_proto protoreflect.FileDescriptor var file_chat_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, - 0x22, 0xf9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, + 0x22, 0x97, 0x04, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -3400,143 +3676,191 @@ var file_chat_proto_rawDesc = []byte{ 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xba, 0x01, 0x0a, - 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x22, 0xf4, 0x01, 0x0a, 0x12, 0x4a, 0x6f, - 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, - 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x22, 0x83, - 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x5c, 0x0a, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, + 0x73, 0x70, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x92, 0x03, 0x0a, 0x1a, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x3f, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x41, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x03, 0x22, + 0xa4, 0x02, 0x0a, 0x12, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0xdf, 0x01, 0x0a, 0x19, 0x53, 0x65, - 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, + 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x64, 0x10, 0x05, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x82, + 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x22, 0xa9, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, + 0xa8, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0xca, 0x01, 0x0a, + 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1a, - 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x39, 0x0a, 0x06, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, - 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, - 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0x85, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb3, - 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, + 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, - 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xae, 0x01, - 0x0a, 0x17, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa5, - 0x01, 0x0a, 0x15, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x6e, 0x46, 0x72, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x15, 0x42, + 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, @@ -3547,7 +3871,7 @@ var file_chat_proto_rawDesc = []byte{ 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, + 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, @@ -3558,41 +3882,21 @@ var file_chat_proto_rawDesc = []byte{ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, - 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, - 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, - 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x42, - 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, 0xaa, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xac, 0x01, 0x0a, 0x1c, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, 0xce, 0x01, 0x0a, 0x1a, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, @@ -3602,29 +3906,58 @@ var file_chat_proto_rawDesc = []byte{ 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, + 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0x03, 0x22, 0xa3, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, + 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, + 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, + 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc7, 0x01, + 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, @@ -3635,7 +3968,7 @@ var file_chat_proto_rawDesc = []byte{ 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, - 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, @@ -3646,69 +3979,78 @@ var file_chat_proto_rawDesc = []byte{ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, - 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, - 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa6, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xaa, - 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xa5, 0x01, 0x0a, 0x19, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x22, 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, - 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x10, 0x02, 0x22, 0x90, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, + 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x22, 0xb4, + 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x42, 0x0a, 0x06, 0x73, @@ -3722,7 +4064,7 @@ var file_chat_proto_rawDesc = []byte{ 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, - 0x22, 0x93, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x22, 0xb7, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, @@ -3731,149 +4073,158 @@ var file_chat_proto_rawDesc = []byte{ 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x22, 0x54, 0x6f, 0x67, 0x67, 0x6c, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, - 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, + 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xe4, 0x01, 0x0a, 0x22, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x6e, + 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, - 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x22, 0xa8, 0x01, - 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, - 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, - 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, - 0x65, 0x64, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, - 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x32, 0xf3, 0x0a, - 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, - 0x12, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, - 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, - 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, - 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, + 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, + 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x3d, 0x0a, 0x06, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x48, 0x4f, 0x52, 0x44, 0x45, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, + 0x41, 0x4c, 0x10, 0x02, 0x32, 0xf3, 0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, + 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, + 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, + 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4b, + 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x47, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, - 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x5c, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, - 0x0e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, - 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, - 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, + 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, - 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x65, + 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -3888,122 +4239,139 @@ func file_chat_proto_rawDescGZIP() []byte { return file_chat_proto_rawDescData } -var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 17) +var file_chat_proto_enumTypes = make([]protoimpl.EnumInfo, 18) var file_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_chat_proto_goTypes = []interface{}{ - (SendWhisperMessageResponse_Status)(0), // 0: v1.SendWhisperMessageResponse.Status - (JoinChannelResponse_Status)(0), // 1: v1.JoinChannelResponse.Status - (LeaveChannelResponse_Status)(0), // 2: v1.LeaveChannelResponse.Status - (SendChannelMessageResponse_Status)(0), // 3: v1.SendChannelMessageResponse.Status - (GetChannelListResponse_Status)(0), // 4: v1.GetChannelListResponse.Status - (KickFromChannelResponse_Status)(0), // 5: v1.KickFromChannelResponse.Status - (BanFromChannelResponse_Status)(0), // 6: v1.BanFromChannelResponse.Status - (UnbanFromChannelResponse_Status)(0), // 7: v1.UnbanFromChannelResponse.Status - (SetChannelModeratorResponse_Status)(0), // 8: v1.SetChannelModeratorResponse.Status - (UnsetChannelModeratorResponse_Status)(0), // 9: v1.UnsetChannelModeratorResponse.Status - (SetChannelMuteResponse_Status)(0), // 10: v1.SetChannelMuteResponse.Status - (UnsetChannelMuteResponse_Status)(0), // 11: v1.UnsetChannelMuteResponse.Status - (SetChannelOwnerResponse_Status)(0), // 12: v1.SetChannelOwnerResponse.Status - (SetChannelPasswordResponse_Status)(0), // 13: v1.SetChannelPasswordResponse.Status - (ToggleChannelModerationResponse_Status)(0), // 14: v1.ToggleChannelModerationResponse.Status - (ToggleChannelAnnouncementsResponse_Status)(0), // 15: v1.ToggleChannelAnnouncementsResponse.Status - (InviteToChannelResponse_Status)(0), // 16: v1.InviteToChannelResponse.Status - (*SendWhisperMessageRequest)(nil), // 17: v1.SendWhisperMessageRequest - (*SendWhisperMessageResponse)(nil), // 18: v1.SendWhisperMessageResponse - (*JoinChannelRequest)(nil), // 19: v1.JoinChannelRequest - (*JoinChannelResponse)(nil), // 20: v1.JoinChannelResponse - (*LeaveChannelRequest)(nil), // 21: v1.LeaveChannelRequest - (*LeaveChannelResponse)(nil), // 22: v1.LeaveChannelResponse - (*SendChannelMessageRequest)(nil), // 23: v1.SendChannelMessageRequest - (*SendChannelMessageResponse)(nil), // 24: v1.SendChannelMessageResponse - (*GetChannelListRequest)(nil), // 25: v1.GetChannelListRequest - (*GetChannelListResponse)(nil), // 26: v1.GetChannelListResponse - (*KickFromChannelRequest)(nil), // 27: v1.KickFromChannelRequest - (*KickFromChannelResponse)(nil), // 28: v1.KickFromChannelResponse - (*BanFromChannelRequest)(nil), // 29: v1.BanFromChannelRequest - (*BanFromChannelResponse)(nil), // 30: v1.BanFromChannelResponse - (*UnbanFromChannelRequest)(nil), // 31: v1.UnbanFromChannelRequest - (*UnbanFromChannelResponse)(nil), // 32: v1.UnbanFromChannelResponse - (*SetChannelModeratorRequest)(nil), // 33: v1.SetChannelModeratorRequest - (*SetChannelModeratorResponse)(nil), // 34: v1.SetChannelModeratorResponse - (*UnsetChannelModeratorRequest)(nil), // 35: v1.UnsetChannelModeratorRequest - (*UnsetChannelModeratorResponse)(nil), // 36: v1.UnsetChannelModeratorResponse - (*SetChannelMuteRequest)(nil), // 37: v1.SetChannelMuteRequest - (*SetChannelMuteResponse)(nil), // 38: v1.SetChannelMuteResponse - (*UnsetChannelMuteRequest)(nil), // 39: v1.UnsetChannelMuteRequest - (*UnsetChannelMuteResponse)(nil), // 40: v1.UnsetChannelMuteResponse - (*SetChannelOwnerRequest)(nil), // 41: v1.SetChannelOwnerRequest - (*SetChannelOwnerResponse)(nil), // 42: v1.SetChannelOwnerResponse - (*SetChannelPasswordRequest)(nil), // 43: v1.SetChannelPasswordRequest - (*SetChannelPasswordResponse)(nil), // 44: v1.SetChannelPasswordResponse - (*ToggleChannelModerationRequest)(nil), // 45: v1.ToggleChannelModerationRequest - (*ToggleChannelModerationResponse)(nil), // 46: v1.ToggleChannelModerationResponse - (*ToggleChannelAnnouncementsRequest)(nil), // 47: v1.ToggleChannelAnnouncementsRequest - (*ToggleChannelAnnouncementsResponse)(nil), // 48: v1.ToggleChannelAnnouncementsResponse - (*InviteToChannelRequest)(nil), // 49: v1.InviteToChannelRequest - (*InviteToChannelResponse)(nil), // 50: v1.InviteToChannelResponse - (*ChannelInfo)(nil), // 51: v1.ChannelInfo - (*ChannelMember)(nil), // 52: v1.ChannelMember + (TeamID)(0), // 0: v1.TeamID + (SendWhisperMessageResponse_Status)(0), // 1: v1.SendWhisperMessageResponse.Status + (JoinChannelResponse_Status)(0), // 2: v1.JoinChannelResponse.Status + (LeaveChannelResponse_Status)(0), // 3: v1.LeaveChannelResponse.Status + (SendChannelMessageResponse_Status)(0), // 4: v1.SendChannelMessageResponse.Status + (GetChannelListResponse_Status)(0), // 5: v1.GetChannelListResponse.Status + (KickFromChannelResponse_Status)(0), // 6: v1.KickFromChannelResponse.Status + (BanFromChannelResponse_Status)(0), // 7: v1.BanFromChannelResponse.Status + (UnbanFromChannelResponse_Status)(0), // 8: v1.UnbanFromChannelResponse.Status + (SetChannelModeratorResponse_Status)(0), // 9: v1.SetChannelModeratorResponse.Status + (UnsetChannelModeratorResponse_Status)(0), // 10: v1.UnsetChannelModeratorResponse.Status + (SetChannelMuteResponse_Status)(0), // 11: v1.SetChannelMuteResponse.Status + (UnsetChannelMuteResponse_Status)(0), // 12: v1.UnsetChannelMuteResponse.Status + (SetChannelOwnerResponse_Status)(0), // 13: v1.SetChannelOwnerResponse.Status + (SetChannelPasswordResponse_Status)(0), // 14: v1.SetChannelPasswordResponse.Status + (ToggleChannelModerationResponse_Status)(0), // 15: v1.ToggleChannelModerationResponse.Status + (ToggleChannelAnnouncementsResponse_Status)(0), // 16: v1.ToggleChannelAnnouncementsResponse.Status + (InviteToChannelResponse_Status)(0), // 17: v1.InviteToChannelResponse.Status + (*SendWhisperMessageRequest)(nil), // 18: v1.SendWhisperMessageRequest + (*SendWhisperMessageResponse)(nil), // 19: v1.SendWhisperMessageResponse + (*JoinChannelRequest)(nil), // 20: v1.JoinChannelRequest + (*JoinChannelResponse)(nil), // 21: v1.JoinChannelResponse + (*LeaveChannelRequest)(nil), // 22: v1.LeaveChannelRequest + (*LeaveChannelResponse)(nil), // 23: v1.LeaveChannelResponse + (*SendChannelMessageRequest)(nil), // 24: v1.SendChannelMessageRequest + (*SendChannelMessageResponse)(nil), // 25: v1.SendChannelMessageResponse + (*GetChannelListRequest)(nil), // 26: v1.GetChannelListRequest + (*GetChannelListResponse)(nil), // 27: v1.GetChannelListResponse + (*KickFromChannelRequest)(nil), // 28: v1.KickFromChannelRequest + (*KickFromChannelResponse)(nil), // 29: v1.KickFromChannelResponse + (*BanFromChannelRequest)(nil), // 30: v1.BanFromChannelRequest + (*BanFromChannelResponse)(nil), // 31: v1.BanFromChannelResponse + (*UnbanFromChannelRequest)(nil), // 32: v1.UnbanFromChannelRequest + (*UnbanFromChannelResponse)(nil), // 33: v1.UnbanFromChannelResponse + (*SetChannelModeratorRequest)(nil), // 34: v1.SetChannelModeratorRequest + (*SetChannelModeratorResponse)(nil), // 35: v1.SetChannelModeratorResponse + (*UnsetChannelModeratorRequest)(nil), // 36: v1.UnsetChannelModeratorRequest + (*UnsetChannelModeratorResponse)(nil), // 37: v1.UnsetChannelModeratorResponse + (*SetChannelMuteRequest)(nil), // 38: v1.SetChannelMuteRequest + (*SetChannelMuteResponse)(nil), // 39: v1.SetChannelMuteResponse + (*UnsetChannelMuteRequest)(nil), // 40: v1.UnsetChannelMuteRequest + (*UnsetChannelMuteResponse)(nil), // 41: v1.UnsetChannelMuteResponse + (*SetChannelOwnerRequest)(nil), // 42: v1.SetChannelOwnerRequest + (*SetChannelOwnerResponse)(nil), // 43: v1.SetChannelOwnerResponse + (*SetChannelPasswordRequest)(nil), // 44: v1.SetChannelPasswordRequest + (*SetChannelPasswordResponse)(nil), // 45: v1.SetChannelPasswordResponse + (*ToggleChannelModerationRequest)(nil), // 46: v1.ToggleChannelModerationRequest + (*ToggleChannelModerationResponse)(nil), // 47: v1.ToggleChannelModerationResponse + (*ToggleChannelAnnouncementsRequest)(nil), // 48: v1.ToggleChannelAnnouncementsRequest + (*ToggleChannelAnnouncementsResponse)(nil), // 49: v1.ToggleChannelAnnouncementsResponse + (*InviteToChannelRequest)(nil), // 50: v1.InviteToChannelRequest + (*InviteToChannelResponse)(nil), // 51: v1.InviteToChannelResponse + (*ChannelInfo)(nil), // 52: v1.ChannelInfo + (*ChannelMember)(nil), // 53: v1.ChannelMember } var file_chat_proto_depIdxs = []int32{ - 0, // 0: v1.SendWhisperMessageResponse.status:type_name -> v1.SendWhisperMessageResponse.Status - 1, // 1: v1.JoinChannelResponse.status:type_name -> v1.JoinChannelResponse.Status - 51, // 2: v1.JoinChannelResponse.channel:type_name -> v1.ChannelInfo - 2, // 3: v1.LeaveChannelResponse.status:type_name -> v1.LeaveChannelResponse.Status - 3, // 4: v1.SendChannelMessageResponse.status:type_name -> v1.SendChannelMessageResponse.Status - 4, // 5: v1.GetChannelListResponse.status:type_name -> v1.GetChannelListResponse.Status - 52, // 6: v1.GetChannelListResponse.members:type_name -> v1.ChannelMember - 5, // 7: v1.KickFromChannelResponse.status:type_name -> v1.KickFromChannelResponse.Status - 6, // 8: v1.BanFromChannelResponse.status:type_name -> v1.BanFromChannelResponse.Status - 7, // 9: v1.UnbanFromChannelResponse.status:type_name -> v1.UnbanFromChannelResponse.Status - 8, // 10: v1.SetChannelModeratorResponse.status:type_name -> v1.SetChannelModeratorResponse.Status - 9, // 11: v1.UnsetChannelModeratorResponse.status:type_name -> v1.UnsetChannelModeratorResponse.Status - 10, // 12: v1.SetChannelMuteResponse.status:type_name -> v1.SetChannelMuteResponse.Status - 11, // 13: v1.UnsetChannelMuteResponse.status:type_name -> v1.UnsetChannelMuteResponse.Status - 12, // 14: v1.SetChannelOwnerResponse.status:type_name -> v1.SetChannelOwnerResponse.Status - 13, // 15: v1.SetChannelPasswordResponse.status:type_name -> v1.SetChannelPasswordResponse.Status - 14, // 16: v1.ToggleChannelModerationResponse.status:type_name -> v1.ToggleChannelModerationResponse.Status - 15, // 17: v1.ToggleChannelAnnouncementsResponse.status:type_name -> v1.ToggleChannelAnnouncementsResponse.Status - 16, // 18: v1.InviteToChannelResponse.status:type_name -> v1.InviteToChannelResponse.Status - 17, // 19: v1.ChatService.SendWhisperMessage:input_type -> v1.SendWhisperMessageRequest - 19, // 20: v1.ChatService.JoinChannel:input_type -> v1.JoinChannelRequest - 21, // 21: v1.ChatService.LeaveChannel:input_type -> v1.LeaveChannelRequest - 23, // 22: v1.ChatService.SendChannelMessage:input_type -> v1.SendChannelMessageRequest - 25, // 23: v1.ChatService.GetChannelList:input_type -> v1.GetChannelListRequest - 27, // 24: v1.ChatService.KickFromChannel:input_type -> v1.KickFromChannelRequest - 29, // 25: v1.ChatService.BanFromChannel:input_type -> v1.BanFromChannelRequest - 31, // 26: v1.ChatService.UnbanFromChannel:input_type -> v1.UnbanFromChannelRequest - 33, // 27: v1.ChatService.SetChannelModerator:input_type -> v1.SetChannelModeratorRequest - 35, // 28: v1.ChatService.UnsetChannelModerator:input_type -> v1.UnsetChannelModeratorRequest - 37, // 29: v1.ChatService.SetChannelMute:input_type -> v1.SetChannelMuteRequest - 39, // 30: v1.ChatService.UnsetChannelMute:input_type -> v1.UnsetChannelMuteRequest - 41, // 31: v1.ChatService.SetChannelOwner:input_type -> v1.SetChannelOwnerRequest - 43, // 32: v1.ChatService.SetChannelPassword:input_type -> v1.SetChannelPasswordRequest - 45, // 33: v1.ChatService.ToggleChannelModeration:input_type -> v1.ToggleChannelModerationRequest - 47, // 34: v1.ChatService.ToggleChannelAnnouncements:input_type -> v1.ToggleChannelAnnouncementsRequest - 49, // 35: v1.ChatService.InviteToChannel:input_type -> v1.InviteToChannelRequest - 18, // 36: v1.ChatService.SendWhisperMessage:output_type -> v1.SendWhisperMessageResponse - 20, // 37: v1.ChatService.JoinChannel:output_type -> v1.JoinChannelResponse - 22, // 38: v1.ChatService.LeaveChannel:output_type -> v1.LeaveChannelResponse - 24, // 39: v1.ChatService.SendChannelMessage:output_type -> v1.SendChannelMessageResponse - 26, // 40: v1.ChatService.GetChannelList:output_type -> v1.GetChannelListResponse - 28, // 41: v1.ChatService.KickFromChannel:output_type -> v1.KickFromChannelResponse - 30, // 42: v1.ChatService.BanFromChannel:output_type -> v1.BanFromChannelResponse - 32, // 43: v1.ChatService.UnbanFromChannel:output_type -> v1.UnbanFromChannelResponse - 34, // 44: v1.ChatService.SetChannelModerator:output_type -> v1.SetChannelModeratorResponse - 36, // 45: v1.ChatService.UnsetChannelModerator:output_type -> v1.UnsetChannelModeratorResponse - 38, // 46: v1.ChatService.SetChannelMute:output_type -> v1.SetChannelMuteResponse - 40, // 47: v1.ChatService.UnsetChannelMute:output_type -> v1.UnsetChannelMuteResponse - 42, // 48: v1.ChatService.SetChannelOwner:output_type -> v1.SetChannelOwnerResponse - 44, // 49: v1.ChatService.SetChannelPassword:output_type -> v1.SetChannelPasswordResponse - 46, // 50: v1.ChatService.ToggleChannelModeration:output_type -> v1.ToggleChannelModerationResponse - 48, // 51: v1.ChatService.ToggleChannelAnnouncements:output_type -> v1.ToggleChannelAnnouncementsResponse - 50, // 52: v1.ChatService.InviteToChannel:output_type -> v1.InviteToChannelResponse - 36, // [36:53] is the sub-list for method output_type - 19, // [19:36] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 1, // 0: v1.SendWhisperMessageResponse.status:type_name -> v1.SendWhisperMessageResponse.Status + 0, // 1: v1.JoinChannelRequest.teamID:type_name -> v1.TeamID + 2, // 2: v1.JoinChannelResponse.status:type_name -> v1.JoinChannelResponse.Status + 52, // 3: v1.JoinChannelResponse.channel:type_name -> v1.ChannelInfo + 0, // 4: v1.LeaveChannelRequest.teamID:type_name -> v1.TeamID + 3, // 5: v1.LeaveChannelResponse.status:type_name -> v1.LeaveChannelResponse.Status + 0, // 6: v1.SendChannelMessageRequest.teamID:type_name -> v1.TeamID + 4, // 7: v1.SendChannelMessageResponse.status:type_name -> v1.SendChannelMessageResponse.Status + 0, // 8: v1.GetChannelListRequest.teamID:type_name -> v1.TeamID + 5, // 9: v1.GetChannelListResponse.status:type_name -> v1.GetChannelListResponse.Status + 53, // 10: v1.GetChannelListResponse.members:type_name -> v1.ChannelMember + 0, // 11: v1.KickFromChannelRequest.teamID:type_name -> v1.TeamID + 6, // 12: v1.KickFromChannelResponse.status:type_name -> v1.KickFromChannelResponse.Status + 0, // 13: v1.BanFromChannelRequest.teamID:type_name -> v1.TeamID + 7, // 14: v1.BanFromChannelResponse.status:type_name -> v1.BanFromChannelResponse.Status + 0, // 15: v1.UnbanFromChannelRequest.teamID:type_name -> v1.TeamID + 8, // 16: v1.UnbanFromChannelResponse.status:type_name -> v1.UnbanFromChannelResponse.Status + 0, // 17: v1.SetChannelModeratorRequest.teamID:type_name -> v1.TeamID + 9, // 18: v1.SetChannelModeratorResponse.status:type_name -> v1.SetChannelModeratorResponse.Status + 0, // 19: v1.UnsetChannelModeratorRequest.teamID:type_name -> v1.TeamID + 10, // 20: v1.UnsetChannelModeratorResponse.status:type_name -> v1.UnsetChannelModeratorResponse.Status + 0, // 21: v1.SetChannelMuteRequest.teamID:type_name -> v1.TeamID + 11, // 22: v1.SetChannelMuteResponse.status:type_name -> v1.SetChannelMuteResponse.Status + 0, // 23: v1.UnsetChannelMuteRequest.teamID:type_name -> v1.TeamID + 12, // 24: v1.UnsetChannelMuteResponse.status:type_name -> v1.UnsetChannelMuteResponse.Status + 0, // 25: v1.SetChannelOwnerRequest.teamID:type_name -> v1.TeamID + 13, // 26: v1.SetChannelOwnerResponse.status:type_name -> v1.SetChannelOwnerResponse.Status + 0, // 27: v1.SetChannelPasswordRequest.teamID:type_name -> v1.TeamID + 14, // 28: v1.SetChannelPasswordResponse.status:type_name -> v1.SetChannelPasswordResponse.Status + 0, // 29: v1.ToggleChannelModerationRequest.teamID:type_name -> v1.TeamID + 15, // 30: v1.ToggleChannelModerationResponse.status:type_name -> v1.ToggleChannelModerationResponse.Status + 0, // 31: v1.ToggleChannelAnnouncementsRequest.teamID:type_name -> v1.TeamID + 16, // 32: v1.ToggleChannelAnnouncementsResponse.status:type_name -> v1.ToggleChannelAnnouncementsResponse.Status + 0, // 33: v1.InviteToChannelRequest.teamID:type_name -> v1.TeamID + 17, // 34: v1.InviteToChannelResponse.status:type_name -> v1.InviteToChannelResponse.Status + 18, // 35: v1.ChatService.SendWhisperMessage:input_type -> v1.SendWhisperMessageRequest + 20, // 36: v1.ChatService.JoinChannel:input_type -> v1.JoinChannelRequest + 22, // 37: v1.ChatService.LeaveChannel:input_type -> v1.LeaveChannelRequest + 24, // 38: v1.ChatService.SendChannelMessage:input_type -> v1.SendChannelMessageRequest + 26, // 39: v1.ChatService.GetChannelList:input_type -> v1.GetChannelListRequest + 28, // 40: v1.ChatService.KickFromChannel:input_type -> v1.KickFromChannelRequest + 30, // 41: v1.ChatService.BanFromChannel:input_type -> v1.BanFromChannelRequest + 32, // 42: v1.ChatService.UnbanFromChannel:input_type -> v1.UnbanFromChannelRequest + 34, // 43: v1.ChatService.SetChannelModerator:input_type -> v1.SetChannelModeratorRequest + 36, // 44: v1.ChatService.UnsetChannelModerator:input_type -> v1.UnsetChannelModeratorRequest + 38, // 45: v1.ChatService.SetChannelMute:input_type -> v1.SetChannelMuteRequest + 40, // 46: v1.ChatService.UnsetChannelMute:input_type -> v1.UnsetChannelMuteRequest + 42, // 47: v1.ChatService.SetChannelOwner:input_type -> v1.SetChannelOwnerRequest + 44, // 48: v1.ChatService.SetChannelPassword:input_type -> v1.SetChannelPasswordRequest + 46, // 49: v1.ChatService.ToggleChannelModeration:input_type -> v1.ToggleChannelModerationRequest + 48, // 50: v1.ChatService.ToggleChannelAnnouncements:input_type -> v1.ToggleChannelAnnouncementsRequest + 50, // 51: v1.ChatService.InviteToChannel:input_type -> v1.InviteToChannelRequest + 19, // 52: v1.ChatService.SendWhisperMessage:output_type -> v1.SendWhisperMessageResponse + 21, // 53: v1.ChatService.JoinChannel:output_type -> v1.JoinChannelResponse + 23, // 54: v1.ChatService.LeaveChannel:output_type -> v1.LeaveChannelResponse + 25, // 55: v1.ChatService.SendChannelMessage:output_type -> v1.SendChannelMessageResponse + 27, // 56: v1.ChatService.GetChannelList:output_type -> v1.GetChannelListResponse + 29, // 57: v1.ChatService.KickFromChannel:output_type -> v1.KickFromChannelResponse + 31, // 58: v1.ChatService.BanFromChannel:output_type -> v1.BanFromChannelResponse + 33, // 59: v1.ChatService.UnbanFromChannel:output_type -> v1.UnbanFromChannelResponse + 35, // 60: v1.ChatService.SetChannelModerator:output_type -> v1.SetChannelModeratorResponse + 37, // 61: v1.ChatService.UnsetChannelModerator:output_type -> v1.UnsetChannelModeratorResponse + 39, // 62: v1.ChatService.SetChannelMute:output_type -> v1.SetChannelMuteResponse + 41, // 63: v1.ChatService.UnsetChannelMute:output_type -> v1.UnsetChannelMuteResponse + 43, // 64: v1.ChatService.SetChannelOwner:output_type -> v1.SetChannelOwnerResponse + 45, // 65: v1.ChatService.SetChannelPassword:output_type -> v1.SetChannelPasswordResponse + 47, // 66: v1.ChatService.ToggleChannelModeration:output_type -> v1.ToggleChannelModerationResponse + 49, // 67: v1.ChatService.ToggleChannelAnnouncements:output_type -> v1.ToggleChannelAnnouncementsResponse + 51, // 68: v1.ChatService.InviteToChannel:output_type -> v1.InviteToChannelResponse + 52, // [52:69] is the sub-list for method output_type + 35, // [35:52] is the sub-list for method input_type + 35, // [35:35] is the sub-list for extension type_name + 35, // [35:35] is the sub-list for extension extendee + 0, // [0:35] is the sub-list for field type_name } func init() { file_chat_proto_init() } @@ -4450,7 +4818,7 @@ func file_chat_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_chat_proto_rawDesc, - NumEnums: 17, + NumEnums: 18, NumMessages: 36, NumExtensions: 0, NumServices: 1, diff --git a/gen/chat/gen/chat/pb/chat_grpc.pb.go b/gen/chat/gen/chat/pb/chat_grpc.pb.go index 4ca578c..27a4311 100644 --- a/gen/chat/gen/chat/pb/chat_grpc.pb.go +++ b/gen/chat/gen/chat/pb/chat_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: chat.proto package pb diff --git a/gen/chat/pb/chat.pb.go b/gen/chat/pb/chat.pb.go index f9aab7f..226c5cc 100644 --- a/gen/chat/pb/chat.pb.go +++ b/gen/chat/pb/chat.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: chat.proto package pb @@ -72,8 +72,9 @@ func (TeamID) EnumDescriptor() ([]byte, []int) { type SendWhisperMessageResponse_Status int32 const ( - SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 - SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_Ok SendWhisperMessageResponse_Status = 0 + SendWhisperMessageResponse_CharacterNotFound SendWhisperMessageResponse_Status = 2 + SendWhisperMessageResponse_CharacterAmbiguous SendWhisperMessageResponse_Status = 3 ) // Enum value maps for SendWhisperMessageResponse_Status. @@ -81,10 +82,12 @@ var ( SendWhisperMessageResponse_Status_name = map[int32]string{ 0: "Ok", 2: "CharacterNotFound", + 3: "CharacterAmbiguous", } SendWhisperMessageResponse_Status_value = map[string]int32{ - "Ok": 0, - "CharacterNotFound": 2, + "Ok": 0, + "CharacterNotFound": 2, + "CharacterAmbiguous": 3, } ) @@ -943,14 +946,20 @@ type SendWhisperMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` - Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + SenderRace uint32 `protobuf:"varint,5,opt,name=senderRace,proto3" json:"senderRace,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + ReceiverName string `protobuf:"bytes,7,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + Msg string `protobuf:"bytes,8,opt,name=msg,proto3" json:"msg,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,9,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + SenderClass uint32 `protobuf:"varint,10,opt,name=senderClass,proto3" json:"senderClass,omitempty"` + SenderGender uint32 `protobuf:"varint,11,opt,name=senderGender,proto3" json:"senderGender,omitempty"` + SenderAccountID uint32 `protobuf:"varint,12,opt,name=senderAccountID,proto3" json:"senderAccountID,omitempty"` + GatewayValidatedGameplayCrossrealmWhisper bool `protobuf:"varint,13,opt,name=gatewayValidatedGameplayCrossrealmWhisper,proto3" json:"gatewayValidatedGameplayCrossrealmWhisper,omitempty"` + SenderChatTag uint32 `protobuf:"varint,14,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendWhisperMessageRequest) Reset() { @@ -1041,14 +1050,61 @@ func (x *SendWhisperMessageRequest) GetMsg() string { return "" } +func (x *SendWhisperMessageRequest) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderClass() uint32 { + if x != nil { + return x.SenderClass + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderGender() uint32 { + if x != nil { + return x.SenderGender + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetSenderAccountID() uint32 { + if x != nil { + return x.SenderAccountID + } + return 0 +} + +func (x *SendWhisperMessageRequest) GetGatewayValidatedGameplayCrossrealmWhisper() bool { + if x != nil { + return x.GatewayValidatedGameplayCrossrealmWhisper + } + return false +} + +func (x *SendWhisperMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendWhisperMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` - ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SendWhisperMessageResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SendWhisperMessageResponse_Status" json:"status,omitempty"` + ReceiverGUID uint64 `protobuf:"varint,3,opt,name=receiverGUID,proto3" json:"receiverGUID,omitempty"` + ReceiverRealmID uint32 `protobuf:"varint,4,opt,name=receiverRealmID,proto3" json:"receiverRealmID,omitempty"` + ReceiverName string `protobuf:"bytes,5,opt,name=receiverName,proto3" json:"receiverName,omitempty"` + ReceiverRace uint32 `protobuf:"varint,6,opt,name=receiverRace,proto3" json:"receiverRace,omitempty"` + ReceiverClass uint32 `protobuf:"varint,7,opt,name=receiverClass,proto3" json:"receiverClass,omitempty"` + ReceiverGender uint32 `protobuf:"varint,8,opt,name=receiverGender,proto3" json:"receiverGender,omitempty"` } func (x *SendWhisperMessageResponse) Reset() { @@ -1104,6 +1160,41 @@ func (x *SendWhisperMessageResponse) GetReceiverGUID() uint64 { return 0 } +func (x *SendWhisperMessageResponse) GetReceiverRealmID() uint32 { + if x != nil { + return x.ReceiverRealmID + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverName() string { + if x != nil { + return x.ReceiverName + } + return "" +} + +func (x *SendWhisperMessageResponse) GetReceiverRace() uint32 { + if x != nil { + return x.ReceiverRace + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverClass() uint32 { + if x != nil { + return x.ReceiverClass + } + return 0 +} + +func (x *SendWhisperMessageResponse) GetReceiverGender() uint32 { + if x != nil { + return x.ReceiverGender + } + return 0 +} + type JoinChannelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1417,14 +1508,15 @@ type SendChannelMessageRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` - ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` - Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` - TeamID TeamID `protobuf:"varint,8,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + SenderName string `protobuf:"bytes,4,opt,name=senderName,proto3" json:"senderName,omitempty"` + ChannelName string `protobuf:"bytes,5,opt,name=channelName,proto3" json:"channelName,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + TeamID TeamID `protobuf:"varint,8,opt,name=teamID,proto3,enum=v1.TeamID" json:"teamID,omitempty"` + SenderChatTag uint32 `protobuf:"varint,9,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendChannelMessageRequest) Reset() { @@ -1515,6 +1607,13 @@ func (x *SendChannelMessageRequest) GetTeamID() TeamID { return TeamID_TEAM_ALLIANCE } +func (x *SendChannelMessageRequest) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendChannelMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3562,7 +3661,7 @@ var File_chat_proto protoreflect.FileDescriptor var file_chat_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, - 0x22, 0xf9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, + 0x22, 0x97, 0x04, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -3577,521 +3676,555 @@ var file_chat_proto_rawDesc = []byte{ 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0xba, 0x01, 0x0a, - 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x22, 0xa4, 0x02, 0x0a, 0x12, 0x4a, 0x6f, - 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, - 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, - 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, - 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, - 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x05, 0x22, 0xa7, - 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x0f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0f, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x5c, 0x0a, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, 0x6c, + 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x29, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x70, + 0x6c, 0x61, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x57, 0x68, 0x69, + 0x73, 0x70, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x92, 0x03, 0x0a, 0x1a, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x52, 0x61, 0x63, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x3f, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x41, 0x6d, 0x62, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x03, 0x22, + 0xa4, 0x02, 0x0a, 0x12, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0x83, 0x02, - 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, - 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, - 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x22, 0xa8, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, - 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa9, - 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, - 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, - 0x22, 0xca, 0x01, 0x0a, 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x69, 0x63, - 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xae, 0x01, - 0x0a, 0x17, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, - 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, - 0x01, 0x0a, 0x15, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, - 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, - 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, - 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x55, 0x6e, - 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x18, - 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, - 0xce, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x13, 0x4a, 0x6f, 0x69, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, - 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, - 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, - 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, - 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x22, 0xb2, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x22, 0x5f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x61, 0x6e, 0x6e, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x41, + 0x72, 0x65, 0x61, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x64, 0x10, 0x05, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x82, + 0x01, 0x0a, 0x14, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x75, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, - 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, - 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, - 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, - 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, - 0x03, 0x22, 0xc7, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x72, 0x10, 0x01, 0x22, 0xa9, 0x02, 0x0a, 0x19, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, + 0xa8, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x39, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x75, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x22, 0xca, 0x01, 0x0a, + 0x16, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xae, 0x01, 0x0a, 0x17, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, + 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x17, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xca, 0x01, - 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, - 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x15, 0x42, + 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x42, 0x61, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x45, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, + 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, + 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, - 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x22, 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb1, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, + 0x74, 0x75, 0x73, 0x22, 0x46, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x10, 0x02, 0x22, 0xb4, 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, - 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x10, 0x02, 0x22, 0xb7, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x03, 0x22, 0xce, 0x01, 0x0a, 0x1a, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, - 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xe4, - 0x01, 0x0a, 0x22, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, - 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, - 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, - 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, - 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, - 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x10, 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb2, 0x01, 0x0a, + 0x1b, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, + 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, - 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x70, + 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb6, 0x01, 0x0a, 0x1d, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, + 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, + 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xc7, 0x01, + 0x0a, 0x15, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, + 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, + 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xcd, 0x01, 0x0a, 0x17, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xb0, 0x01, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x45, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, + 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x22, 0xca, 0x01, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xaa, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x41, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, + 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0x03, 0x22, 0xc9, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x22, 0x0a, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, + 0x9c, 0x01, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, + 0x2d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, + 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x10, 0x02, 0x22, 0xb4, + 0x01, 0x0a, 0x1e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xd8, 0x01, 0x0a, 0x1f, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x42, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x2c, 0x0a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x6f, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x10, + 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, 0x02, + 0x22, 0xb7, 0x01, 0x0a, 0x21, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, + 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0xe4, 0x01, 0x0a, 0x22, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, + 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x45, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x6e, + 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, + 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, - 0x64, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6c, 0x72, - 0x65, 0x61, 0x64, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, - 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x10, - 0x0a, 0x0c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x05, - 0x22, 0x97, 0x01, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, - 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x3d, 0x0a, 0x06, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x4c, 0x49, - 0x41, 0x4e, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x48, - 0x4f, 0x52, 0x44, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, - 0x45, 0x55, 0x54, 0x52, 0x41, 0x4c, 0x10, 0x02, 0x32, 0xf3, 0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, - 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, - 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x76, - 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, - 0x0c, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x17, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, - 0x0a, 0x0f, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x10, 0x0a, 0x0c, 0x4e, 0x6f, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x10, + 0x02, 0x22, 0xcc, 0x01, 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x06, + 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x70, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4e, 0x6f, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x72, 0x6f, 0x6e, + 0x67, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x42, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x10, 0x05, 0x22, 0x97, 0x01, 0x0a, + 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x75, 0x6d, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x2a, 0x3d, 0x0a, 0x06, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x11, 0x0a, 0x0d, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4c, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x48, 0x4f, 0x52, 0x44, 0x45, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4e, 0x45, 0x55, 0x54, 0x52, + 0x41, 0x4c, 0x10, 0x02, 0x32, 0xf3, 0x0a, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, + 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x6e, 0x64, 0x57, 0x68, 0x69, 0x73, 0x70, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, + 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, + 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x4c, 0x65, 0x61, + 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, + 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x4b, 0x69, + 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x42, 0x61, - 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, - 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, - 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, - 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x55, 0x6e, - 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4b, + 0x69, 0x63, 0x6b, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, + 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, + 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x62, 0x61, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, + 0x0a, 0x13, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, - 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, - 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x62, 0x0a, 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, - 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, + 0x10, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, + 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x4d, 0x75, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, + 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x17, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4d, - 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, - 0x6e, 0x65, 0x6c, 0x4d, 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, - 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, - 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0d, - 0x5a, 0x0b, 0x67, 0x65, 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x64, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, + 0x6c, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x41, 0x6e, 0x6e, 0x6f, 0x75, 0x6e, 0x63, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, + 0x0a, 0x0f, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0d, 0x5a, 0x0b, 0x67, 0x65, + 0x6e, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/gen/chat/pb/chat_grpc.pb.go b/gen/chat/pb/chat_grpc.pb.go index 4ca578c..27a4311 100644 --- a/gen/chat/pb/chat_grpc.pb.go +++ b/gen/chat/pb/chat_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: chat.proto package pb diff --git a/gen/group/pb/group.pb.go b/gen/group/pb/group.pb.go index 6e20280..22bfd95 100644 --- a/gen/group/pb/group.pb.go +++ b/gen/group/pb/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: group.proto package pb @@ -115,6 +115,55 @@ func (AcceptInviteResponse_Status) EnumDescriptor() ([]byte, []int) { return file_group_proto_rawDescGZIP(), []int{3, 0} } +type DeclineInviteResponse_Status int32 + +const ( + DeclineInviteResponse_Ok DeclineInviteResponse_Status = 0 + DeclineInviteResponse_InviteNotFound DeclineInviteResponse_Status = 1 + DeclineInviteResponse_Error DeclineInviteResponse_Status = 2 +) + +// Enum value maps for DeclineInviteResponse_Status. +var ( + DeclineInviteResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "InviteNotFound", + 2: "Error", + } + DeclineInviteResponse_Status_value = map[string]int32{ + "Ok": 0, + "InviteNotFound": 1, + "Error": 2, + } +) + +func (x DeclineInviteResponse_Status) Enum() *DeclineInviteResponse_Status { + p := new(DeclineInviteResponse_Status) + *p = x + return p +} + +func (x DeclineInviteResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DeclineInviteResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_group_proto_enumTypes[2].Descriptor() +} + +func (DeclineInviteResponse_Status) Type() protoreflect.EnumType { + return &file_group_proto_enumTypes[2] +} + +func (x DeclineInviteResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DeclineInviteResponse_Status.Descriptor instead. +func (DeclineInviteResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{5, 0} +} + type UninviteResponse_Status int32 const ( @@ -145,11 +194,11 @@ func (x UninviteResponse_Status) String() string { } func (UninviteResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_group_proto_enumTypes[2].Descriptor() + return file_group_proto_enumTypes[3].Descriptor() } func (UninviteResponse_Status) Type() protoreflect.EnumType { - return &file_group_proto_enumTypes[2] + return &file_group_proto_enumTypes[3] } func (x UninviteResponse_Status) Number() protoreflect.EnumNumber { @@ -158,7 +207,7 @@ func (x UninviteResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use UninviteResponse_Status.Descriptor instead. func (UninviteResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{10, 0} + return file_group_proto_rawDescGZIP(), []int{15, 0} } type SetDungeonDifficultyResponse_Status int32 @@ -191,11 +240,11 @@ func (x SetDungeonDifficultyResponse_Status) String() string { } func (SetDungeonDifficultyResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_group_proto_enumTypes[3].Descriptor() + return file_group_proto_enumTypes[4].Descriptor() } func (SetDungeonDifficultyResponse_Status) Type() protoreflect.EnumType { - return &file_group_proto_enumTypes[3] + return &file_group_proto_enumTypes[4] } func (x SetDungeonDifficultyResponse_Status) Number() protoreflect.EnumNumber { @@ -204,7 +253,7 @@ func (x SetDungeonDifficultyResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use SetDungeonDifficultyResponse_Status.Descriptor instead. func (SetDungeonDifficultyResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{26, 0} + return file_group_proto_rawDescGZIP(), []int{31, 0} } type SetRaidDifficultyResponse_Status int32 @@ -237,11 +286,11 @@ func (x SetRaidDifficultyResponse_Status) String() string { } func (SetRaidDifficultyResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_group_proto_enumTypes[4].Descriptor() + return file_group_proto_enumTypes[5].Descriptor() } func (SetRaidDifficultyResponse_Status) Type() protoreflect.EnumType { - return &file_group_proto_enumTypes[4] + return &file_group_proto_enumTypes[5] } func (x SetRaidDifficultyResponse_Status) Number() protoreflect.EnumNumber { @@ -250,7 +299,7 @@ func (x SetRaidDifficultyResponse_Status) Number() protoreflect.EnumNumber { // Deprecated: Use SetRaidDifficultyResponse_Status.Descriptor instead. func (SetRaidDifficultyResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{28, 0} + return file_group_proto_rawDescGZIP(), []int{33, 0} } type InviteParams struct { @@ -513,6 +562,124 @@ func (x *AcceptInviteResponse) GetStatus() AcceptInviteResponse_Status { return AcceptInviteResponse_Ok } +type DeclineInviteParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` +} + +func (x *DeclineInviteParams) Reset() { + *x = DeclineInviteParams{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeclineInviteParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeclineInviteParams) ProtoMessage() {} + +func (x *DeclineInviteParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[4] + 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 DeclineInviteParams.ProtoReflect.Descriptor instead. +func (*DeclineInviteParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{4} +} + +func (x *DeclineInviteParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DeclineInviteParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *DeclineInviteParams) GetPlayer() uint64 { + if x != nil { + return x.Player + } + return 0 +} + +type DeclineInviteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status DeclineInviteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.DeclineInviteResponse_Status" json:"status,omitempty"` +} + +func (x *DeclineInviteResponse) Reset() { + *x = DeclineInviteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeclineInviteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeclineInviteResponse) ProtoMessage() {} + +func (x *DeclineInviteResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[5] + 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 DeclineInviteResponse.ProtoReflect.Descriptor instead. +func (*DeclineInviteResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{5} +} + +func (x *DeclineInviteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DeclineInviteResponse) GetStatus() DeclineInviteResponse_Status { + if x != nil { + return x.Status + } + return DeclineInviteResponse_Ok +} + type GetGroupRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -526,7 +693,7 @@ type GetGroupRequest struct { func (x *GetGroupRequest) Reset() { *x = GetGroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[4] + mi := &file_group_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -539,7 +706,7 @@ func (x *GetGroupRequest) String() string { func (*GetGroupRequest) ProtoMessage() {} func (x *GetGroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[4] + mi := &file_group_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -552,7 +719,7 @@ func (x *GetGroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupRequest.ProtoReflect.Descriptor instead. func (*GetGroupRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{4} + return file_group_proto_rawDescGZIP(), []int{6} } func (x *GetGroupRequest) GetApi() string { @@ -588,7 +755,7 @@ type GetGroupResponse struct { func (x *GetGroupResponse) Reset() { *x = GetGroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[5] + mi := &file_group_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -601,7 +768,7 @@ func (x *GetGroupResponse) String() string { func (*GetGroupResponse) ProtoMessage() {} func (x *GetGroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[5] + mi := &file_group_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -614,7 +781,7 @@ func (x *GetGroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupResponse.ProtoReflect.Descriptor instead. func (*GetGroupResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{5} + return file_group_proto_rawDescGZIP(), []int{7} } func (x *GetGroupResponse) GetApi() string { @@ -644,7 +811,7 @@ type GetGroupByMemberRequest struct { func (x *GetGroupByMemberRequest) Reset() { *x = GetGroupByMemberRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[6] + mi := &file_group_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -657,7 +824,7 @@ func (x *GetGroupByMemberRequest) String() string { func (*GetGroupByMemberRequest) ProtoMessage() {} func (x *GetGroupByMemberRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[6] + mi := &file_group_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -670,7 +837,7 @@ func (x *GetGroupByMemberRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupByMemberRequest.ProtoReflect.Descriptor instead. func (*GetGroupByMemberRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{6} + return file_group_proto_rawDescGZIP(), []int{8} } func (x *GetGroupByMemberRequest) GetApi() string { @@ -707,7 +874,7 @@ type GetGroupIDByPlayerRequest struct { func (x *GetGroupIDByPlayerRequest) Reset() { *x = GetGroupIDByPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[7] + mi := &file_group_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -720,7 +887,7 @@ func (x *GetGroupIDByPlayerRequest) String() string { func (*GetGroupIDByPlayerRequest) ProtoMessage() {} func (x *GetGroupIDByPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[7] + mi := &file_group_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -733,7 +900,7 @@ func (x *GetGroupIDByPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupIDByPlayerRequest.ProtoReflect.Descriptor instead. func (*GetGroupIDByPlayerRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{7} + return file_group_proto_rawDescGZIP(), []int{9} } func (x *GetGroupIDByPlayerRequest) GetApi() string { @@ -762,14 +929,15 @@ type GetGroupIDByPlayerResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GroupID uint32 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GroupID uint32 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupRealmID uint32 `protobuf:"varint,3,opt,name=groupRealmID,proto3" json:"groupRealmID,omitempty"` } func (x *GetGroupIDByPlayerResponse) Reset() { *x = GetGroupIDByPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[8] + mi := &file_group_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -782,7 +950,7 @@ func (x *GetGroupIDByPlayerResponse) String() string { func (*GetGroupIDByPlayerResponse) ProtoMessage() {} func (x *GetGroupIDByPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[8] + mi := &file_group_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -795,7 +963,7 @@ func (x *GetGroupIDByPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupIDByPlayerResponse.ProtoReflect.Descriptor instead. func (*GetGroupIDByPlayerResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{8} + return file_group_proto_rawDescGZIP(), []int{10} } func (x *GetGroupIDByPlayerResponse) GetApi() string { @@ -812,35 +980,40 @@ func (x *GetGroupIDByPlayerResponse) GetGroupID() uint32 { return 0 } -type UninviteParams struct { +func (x *GetGroupIDByPlayerResponse) GetGroupRealmID() uint32 { + if x != nil { + return x.GroupRealmID + } + return 0 +} + +type GetMemberPlacementsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Initiator uint64 `protobuf:"varint,3,opt,name=initiator,proto3" json:"initiator,omitempty"` - Target uint64 `protobuf:"varint,4,opt,name=target,proto3" json:"target,omitempty"` - Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MemberGUIDs []uint64 `protobuf:"varint,3,rep,packed,name=memberGUIDs,proto3" json:"memberGUIDs,omitempty"` } -func (x *UninviteParams) Reset() { - *x = UninviteParams{} +func (x *GetMemberPlacementsRequest) Reset() { + *x = GetMemberPlacementsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[9] + mi := &file_group_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UninviteParams) String() string { +func (x *GetMemberPlacementsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UninviteParams) ProtoMessage() {} +func (*GetMemberPlacementsRequest) ProtoMessage() {} -func (x *UninviteParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[9] +func (x *GetMemberPlacementsRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -851,72 +1024,66 @@ func (x *UninviteParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UninviteParams.ProtoReflect.Descriptor instead. -func (*UninviteParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{9} +// Deprecated: Use GetMemberPlacementsRequest.ProtoReflect.Descriptor instead. +func (*GetMemberPlacementsRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{11} } -func (x *UninviteParams) GetApi() string { +func (x *GetMemberPlacementsRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *UninviteParams) GetRealmID() uint32 { +func (x *GetMemberPlacementsRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *UninviteParams) GetInitiator() uint64 { - if x != nil { - return x.Initiator - } - return 0 -} - -func (x *UninviteParams) GetTarget() uint64 { - if x != nil { - return x.Target - } - return 0 -} - -func (x *UninviteParams) GetReason() string { +func (x *GetMemberPlacementsRequest) GetMemberGUIDs() []uint64 { if x != nil { - return x.Reason + return x.MemberGUIDs } - return "" + return nil } -type UninviteResponse struct { +type MemberPlacement struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status UninviteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.UninviteResponse_Status" json:"status,omitempty"` + MemberGUID uint64 `protobuf:"varint,1,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Online bool `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"` + Fresh bool `protobuf:"varint,3,opt,name=fresh,proto3" json:"fresh,omitempty"` + GatewayID string `protobuf:"bytes,4,opt,name=gatewayID,proto3" json:"gatewayID,omitempty"` + WorldserverID string `protobuf:"bytes,5,opt,name=worldserverID,proto3" json:"worldserverID,omitempty"` + MapID uint32 `protobuf:"varint,6,opt,name=mapID,proto3" json:"mapID,omitempty"` + InstanceID uint32 `protobuf:"varint,7,opt,name=instanceID,proto3" json:"instanceID,omitempty"` + InstanceKnown bool `protobuf:"varint,8,opt,name=instanceKnown,proto3" json:"instanceKnown,omitempty"` + TimestampMs uint64 `protobuf:"varint,9,opt,name=timestampMs,proto3" json:"timestampMs,omitempty"` + UpdatedAtMs uint64 `protobuf:"varint,10,opt,name=updatedAtMs,proto3" json:"updatedAtMs,omitempty"` } -func (x *UninviteResponse) Reset() { - *x = UninviteResponse{} +func (x *MemberPlacement) Reset() { + *x = MemberPlacement{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[10] + mi := &file_group_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UninviteResponse) String() string { +func (x *MemberPlacement) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UninviteResponse) ProtoMessage() {} +func (*MemberPlacement) ProtoMessage() {} -func (x *UninviteResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[10] +func (x *MemberPlacement) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -927,113 +1094,107 @@ func (x *UninviteResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UninviteResponse.ProtoReflect.Descriptor instead. -func (*UninviteResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{10} +// Deprecated: Use MemberPlacement.ProtoReflect.Descriptor instead. +func (*MemberPlacement) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{12} } -func (x *UninviteResponse) GetApi() string { +func (x *MemberPlacement) GetMemberGUID() uint64 { if x != nil { - return x.Api + return x.MemberGUID } - return "" + return 0 } -func (x *UninviteResponse) GetStatus() UninviteResponse_Status { +func (x *MemberPlacement) GetOnline() bool { if x != nil { - return x.Status + return x.Online } - return UninviteResponse_Ok -} - -type GroupLeaveParams struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` + return false } -func (x *GroupLeaveParams) Reset() { - *x = GroupLeaveParams{} - if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *MemberPlacement) GetFresh() bool { + if x != nil { + return x.Fresh } + return false } -func (x *GroupLeaveParams) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *MemberPlacement) GetGatewayID() string { + if x != nil { + return x.GatewayID + } + return "" } -func (*GroupLeaveParams) ProtoMessage() {} +func (x *MemberPlacement) GetWorldserverID() string { + if x != nil { + return x.WorldserverID + } + return "" +} -func (x *GroupLeaveParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *MemberPlacement) GetMapID() uint32 { + if x != nil { + return x.MapID } - return mi.MessageOf(x) + return 0 } -// Deprecated: Use GroupLeaveParams.ProtoReflect.Descriptor instead. -func (*GroupLeaveParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{11} +func (x *MemberPlacement) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 } -func (x *GroupLeaveParams) GetApi() string { +func (x *MemberPlacement) GetInstanceKnown() bool { if x != nil { - return x.Api + return x.InstanceKnown } - return "" + return false } -func (x *GroupLeaveParams) GetRealmID() uint32 { +func (x *MemberPlacement) GetTimestampMs() uint64 { if x != nil { - return x.RealmID + return x.TimestampMs } return 0 } -func (x *GroupLeaveParams) GetPlayer() uint64 { +func (x *MemberPlacement) GetUpdatedAtMs() uint64 { if x != nil { - return x.Player + return x.UpdatedAtMs } return 0 } -type GroupLeaveResponse struct { +type GetMemberPlacementsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Placements []*MemberPlacement `protobuf:"bytes,2,rep,name=placements,proto3" json:"placements,omitempty"` } -func (x *GroupLeaveResponse) Reset() { - *x = GroupLeaveResponse{} +func (x *GetMemberPlacementsResponse) Reset() { + *x = GetMemberPlacementsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[12] + mi := &file_group_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GroupLeaveResponse) String() string { +func (x *GetMemberPlacementsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GroupLeaveResponse) ProtoMessage() {} +func (*GetMemberPlacementsResponse) ProtoMessage() {} -func (x *GroupLeaveResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[12] +func (x *GetMemberPlacementsResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1044,45 +1205,54 @@ func (x *GroupLeaveResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GroupLeaveResponse.ProtoReflect.Descriptor instead. -func (*GroupLeaveResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{12} +// Deprecated: Use GetMemberPlacementsResponse.ProtoReflect.Descriptor instead. +func (*GetMemberPlacementsResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{13} } -func (x *GroupLeaveResponse) GetApi() string { +func (x *GetMemberPlacementsResponse) GetApi() string { if x != nil { return x.Api } return "" } -type ConvertToRaidParams struct { +func (x *GetMemberPlacementsResponse) GetPlacements() []*MemberPlacement { + if x != nil { + return x.Placements + } + return nil +} + +type UninviteParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Initiator uint64 `protobuf:"varint,3,opt,name=initiator,proto3" json:"initiator,omitempty"` + Target uint64 `protobuf:"varint,4,opt,name=target,proto3" json:"target,omitempty"` + Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` } -func (x *ConvertToRaidParams) Reset() { - *x = ConvertToRaidParams{} +func (x *UninviteParams) Reset() { + *x = UninviteParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[13] + mi := &file_group_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConvertToRaidParams) String() string { +func (x *UninviteParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConvertToRaidParams) ProtoMessage() {} +func (*UninviteParams) ProtoMessage() {} -func (x *ConvertToRaidParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[13] +func (x *UninviteParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1093,57 +1263,72 @@ func (x *ConvertToRaidParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConvertToRaidParams.ProtoReflect.Descriptor instead. -func (*ConvertToRaidParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{13} +// Deprecated: Use UninviteParams.ProtoReflect.Descriptor instead. +func (*UninviteParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{14} } -func (x *ConvertToRaidParams) GetApi() string { +func (x *UninviteParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ConvertToRaidParams) GetRealmID() uint32 { +func (x *UninviteParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *ConvertToRaidParams) GetPlayer() uint64 { +func (x *UninviteParams) GetInitiator() uint64 { if x != nil { - return x.Player + return x.Initiator } return 0 } -type ConvertToRaidResponse struct { +func (x *UninviteParams) GetTarget() uint64 { + if x != nil { + return x.Target + } + return 0 +} + +func (x *UninviteParams) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +type UninviteResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status UninviteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.UninviteResponse_Status" json:"status,omitempty"` } -func (x *ConvertToRaidResponse) Reset() { - *x = ConvertToRaidResponse{} +func (x *UninviteResponse) Reset() { + *x = UninviteResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[14] + mi := &file_group_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ConvertToRaidResponse) String() string { +func (x *UninviteResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ConvertToRaidResponse) ProtoMessage() {} +func (*UninviteResponse) ProtoMessage() {} -func (x *ConvertToRaidResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[14] +func (x *UninviteResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,46 +1339,52 @@ func (x *ConvertToRaidResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ConvertToRaidResponse.ProtoReflect.Descriptor instead. -func (*ConvertToRaidResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{14} +// Deprecated: Use UninviteResponse.ProtoReflect.Descriptor instead. +func (*UninviteResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{15} } -func (x *ConvertToRaidResponse) GetApi() string { +func (x *UninviteResponse) GetApi() string { if x != nil { return x.Api } return "" } -type ChangeLeaderParams struct { +func (x *UninviteResponse) GetStatus() UninviteResponse_Status { + if x != nil { + return x.Status + } + return UninviteResponse_Ok +} + +type GroupLeaveParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` - NewLeader uint64 `protobuf:"varint,4,opt,name=newLeader,proto3" json:"newLeader,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` } -func (x *ChangeLeaderParams) Reset() { - *x = ChangeLeaderParams{} +func (x *GroupLeaveParams) Reset() { + *x = GroupLeaveParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[15] + mi := &file_group_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeLeaderParams) String() string { +func (x *GroupLeaveParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeLeaderParams) ProtoMessage() {} +func (*GroupLeaveParams) ProtoMessage() {} -func (x *ChangeLeaderParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[15] +func (x *GroupLeaveParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1204,40 +1395,33 @@ func (x *ChangeLeaderParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeLeaderParams.ProtoReflect.Descriptor instead. -func (*ChangeLeaderParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{15} +// Deprecated: Use GroupLeaveParams.ProtoReflect.Descriptor instead. +func (*GroupLeaveParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{16} } -func (x *ChangeLeaderParams) GetApi() string { +func (x *GroupLeaveParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *ChangeLeaderParams) GetRealmID() uint32 { +func (x *GroupLeaveParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *ChangeLeaderParams) GetPlayer() uint64 { +func (x *GroupLeaveParams) GetPlayer() uint64 { if x != nil { return x.Player } return 0 } -func (x *ChangeLeaderParams) GetNewLeader() uint64 { - if x != nil { - return x.NewLeader - } - return 0 -} - -type ChangeLeaderResponse struct { +type GroupLeaveResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1245,23 +1429,23 @@ type ChangeLeaderResponse struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *ChangeLeaderResponse) Reset() { - *x = ChangeLeaderResponse{} +func (x *GroupLeaveResponse) Reset() { + *x = GroupLeaveResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[16] + mi := &file_group_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ChangeLeaderResponse) String() string { +func (x *GroupLeaveResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ChangeLeaderResponse) ProtoMessage() {} +func (*GroupLeaveResponse) ProtoMessage() {} -func (x *ChangeLeaderResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[16] +func (x *GroupLeaveResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,48 +1456,45 @@ func (x *ChangeLeaderResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ChangeLeaderResponse.ProtoReflect.Descriptor instead. -func (*ChangeLeaderResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{16} +// Deprecated: Use GroupLeaveResponse.ProtoReflect.Descriptor instead. +func (*GroupLeaveResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{17} } -func (x *ChangeLeaderResponse) GetApi() string { +func (x *GroupLeaveResponse) GetApi() string { if x != nil { return x.Api } return "" } -type SendGroupMessageParams struct { +type ConvertToRaidParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` - MessageType uint32 `protobuf:"varint,4,opt,name=messageType,proto3" json:"messageType,omitempty"` - Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` - Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` } -func (x *SendGroupMessageParams) Reset() { - *x = SendGroupMessageParams{} +func (x *ConvertToRaidParams) Reset() { + *x = ConvertToRaidParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[17] + mi := &file_group_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendGroupMessageParams) String() string { +func (x *ConvertToRaidParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendGroupMessageParams) ProtoMessage() {} +func (*ConvertToRaidParams) ProtoMessage() {} -func (x *SendGroupMessageParams) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[17] +func (x *ConvertToRaidParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1324,78 +1505,57 @@ func (x *SendGroupMessageParams) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendGroupMessageParams.ProtoReflect.Descriptor instead. -func (*SendGroupMessageParams) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{17} +// Deprecated: Use ConvertToRaidParams.ProtoReflect.Descriptor instead. +func (*ConvertToRaidParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{18} } -func (x *SendGroupMessageParams) GetApi() string { +func (x *ConvertToRaidParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SendGroupMessageParams) GetRealmID() uint32 { +func (x *ConvertToRaidParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SendGroupMessageParams) GetSenderGUID() uint64 { +func (x *ConvertToRaidParams) GetPlayer() uint64 { if x != nil { - return x.SenderGUID + return x.Player } return 0 } -func (x *SendGroupMessageParams) GetMessageType() uint32 { - if x != nil { - return x.MessageType - } - return 0 +type ConvertToRaidResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SendGroupMessageParams) GetMessage() string { - if x != nil { - return x.Message - } - return "" -} - -func (x *SendGroupMessageParams) GetLanguage() uint32 { - if x != nil { - return x.Language - } - return 0 -} - -type SendGroupMessageResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` -} - -func (x *SendGroupMessageResponse) Reset() { - *x = SendGroupMessageResponse{} +func (x *ConvertToRaidResponse) Reset() { + *x = ConvertToRaidResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[18] + mi := &file_group_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SendGroupMessageResponse) String() string { +func (x *ConvertToRaidResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SendGroupMessageResponse) ProtoMessage() {} +func (*ConvertToRaidResponse) ProtoMessage() {} -func (x *SendGroupMessageResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[18] +func (x *ConvertToRaidResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1406,47 +1566,46 @@ func (x *SendGroupMessageResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SendGroupMessageResponse.ProtoReflect.Descriptor instead. -func (*SendGroupMessageResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{18} +// Deprecated: Use ConvertToRaidResponse.ProtoReflect.Descriptor instead. +func (*ConvertToRaidResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{19} } -func (x *SendGroupMessageResponse) GetApi() string { +func (x *ConvertToRaidResponse) GetApi() string { if x != nil { return x.Api } return "" } -type SetGroupTargetIconRequest struct { +type ChangeLeaderParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` - IconID uint32 `protobuf:"varint,4,opt,name=iconID,proto3" json:"iconID,omitempty"` - TargetGUID uint64 `protobuf:"varint,5,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Player uint64 `protobuf:"varint,3,opt,name=player,proto3" json:"player,omitempty"` + NewLeader uint64 `protobuf:"varint,4,opt,name=newLeader,proto3" json:"newLeader,omitempty"` } -func (x *SetGroupTargetIconRequest) Reset() { - *x = SetGroupTargetIconRequest{} +func (x *ChangeLeaderParams) Reset() { + *x = ChangeLeaderParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[19] + mi := &file_group_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetGroupTargetIconRequest) String() string { +func (x *ChangeLeaderParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetGroupTargetIconRequest) ProtoMessage() {} +func (*ChangeLeaderParams) ProtoMessage() {} -func (x *SetGroupTargetIconRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[19] +func (x *ChangeLeaderParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1457,47 +1616,40 @@ func (x *SetGroupTargetIconRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetGroupTargetIconRequest.ProtoReflect.Descriptor instead. -func (*SetGroupTargetIconRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{19} +// Deprecated: Use ChangeLeaderParams.ProtoReflect.Descriptor instead. +func (*ChangeLeaderParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{20} } -func (x *SetGroupTargetIconRequest) GetApi() string { +func (x *ChangeLeaderParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetGroupTargetIconRequest) GetRealmID() uint32 { +func (x *ChangeLeaderParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetGroupTargetIconRequest) GetSetterGUID() uint64 { - if x != nil { - return x.SetterGUID - } - return 0 -} - -func (x *SetGroupTargetIconRequest) GetIconID() uint32 { +func (x *ChangeLeaderParams) GetPlayer() uint64 { if x != nil { - return x.IconID + return x.Player } return 0 } -func (x *SetGroupTargetIconRequest) GetTargetGUID() uint64 { +func (x *ChangeLeaderParams) GetNewLeader() uint64 { if x != nil { - return x.TargetGUID + return x.NewLeader } return 0 } -type SetGroupTargetIconResponse struct { +type ChangeLeaderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1505,23 +1657,23 @@ type SetGroupTargetIconResponse struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SetGroupTargetIconResponse) Reset() { - *x = SetGroupTargetIconResponse{} +func (x *ChangeLeaderResponse) Reset() { + *x = ChangeLeaderResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[20] + mi := &file_group_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetGroupTargetIconResponse) String() string { +func (x *ChangeLeaderResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetGroupTargetIconResponse) ProtoMessage() {} +func (*ChangeLeaderResponse) ProtoMessage() {} -func (x *SetGroupTargetIconResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[20] +func (x *ChangeLeaderResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1532,45 +1684,49 @@ func (x *SetGroupTargetIconResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetGroupTargetIconResponse.ProtoReflect.Descriptor instead. -func (*SetGroupTargetIconResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{20} +// Deprecated: Use ChangeLeaderResponse.ProtoReflect.Descriptor instead. +func (*ChangeLeaderResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{21} } -func (x *SetGroupTargetIconResponse) GetApi() string { +func (x *ChangeLeaderResponse) GetApi() string { if x != nil { return x.Api } return "" } -type GetGroupTargetIconsRequest struct { +type SendGroupMessageParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SenderGUID uint64 `protobuf:"varint,3,opt,name=senderGUID,proto3" json:"senderGUID,omitempty"` + MessageType uint32 `protobuf:"varint,4,opt,name=messageType,proto3" json:"messageType,omitempty"` + Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` + Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + SenderChatTag uint32 `protobuf:"varint,7,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } -func (x *GetGroupTargetIconsRequest) Reset() { - *x = GetGroupTargetIconsRequest{} +func (x *SendGroupMessageParams) Reset() { + *x = SendGroupMessageParams{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[21] + mi := &file_group_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupTargetIconsRequest) String() string { +func (x *SendGroupMessageParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupTargetIconsRequest) ProtoMessage() {} +func (*SendGroupMessageParams) ProtoMessage() {} -func (x *GetGroupTargetIconsRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[21] +func (x *SendGroupMessageParams) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1581,58 +1737,85 @@ func (x *GetGroupTargetIconsRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupTargetIconsRequest.ProtoReflect.Descriptor instead. -func (*GetGroupTargetIconsRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{21} +// Deprecated: Use SendGroupMessageParams.ProtoReflect.Descriptor instead. +func (*SendGroupMessageParams) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{22} } -func (x *GetGroupTargetIconsRequest) GetApi() string { +func (x *SendGroupMessageParams) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetGroupTargetIconsRequest) GetRealmID() uint32 { +func (x *SendGroupMessageParams) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *GetGroupTargetIconsRequest) GetPlayerGUID() uint64 { +func (x *SendGroupMessageParams) GetSenderGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.SenderGUID } return 0 } -type GetGroupTargetIconsResponse struct { +func (x *SendGroupMessageParams) GetMessageType() uint32 { + if x != nil { + return x.MessageType + } + return 0 +} + +func (x *SendGroupMessageParams) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *SendGroupMessageParams) GetLanguage() uint32 { + if x != nil { + return x.Language + } + return 0 +} + +func (x *SendGroupMessageParams) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + +type SendGroupMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Targets []uint64 `protobuf:"varint,2,rep,packed,name=targets,proto3" json:"targets,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *GetGroupTargetIconsResponse) Reset() { - *x = GetGroupTargetIconsResponse{} +func (x *SendGroupMessageResponse) Reset() { + *x = SendGroupMessageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[22] + mi := &file_group_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupTargetIconsResponse) String() string { +func (x *SendGroupMessageResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupTargetIconsResponse) ProtoMessage() {} +func (*SendGroupMessageResponse) ProtoMessage() {} -func (x *GetGroupTargetIconsResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[22] +func (x *SendGroupMessageResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1643,55 +1826,47 @@ func (x *GetGroupTargetIconsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupTargetIconsResponse.ProtoReflect.Descriptor instead. -func (*GetGroupTargetIconsResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{22} +// Deprecated: Use SendGroupMessageResponse.ProtoReflect.Descriptor instead. +func (*SendGroupMessageResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{23} } -func (x *GetGroupTargetIconsResponse) GetApi() string { +func (x *SendGroupMessageResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *GetGroupTargetIconsResponse) GetTargets() []uint64 { - if x != nil { - return x.Targets - } - return nil -} - -type SetLootMethodRequest struct { +type SetGroupTargetIconRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Method uint32 `protobuf:"varint,4,opt,name=method,proto3" json:"method,omitempty"` - LootMaster uint64 `protobuf:"varint,5,opt,name=lootMaster,proto3" json:"lootMaster,omitempty"` - LootThreshold uint32 `protobuf:"varint,6,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SetterGUID uint64 `protobuf:"varint,3,opt,name=setterGUID,proto3" json:"setterGUID,omitempty"` + IconID uint32 `protobuf:"varint,4,opt,name=iconID,proto3" json:"iconID,omitempty"` + TargetGUID uint64 `protobuf:"varint,5,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` } -func (x *SetLootMethodRequest) Reset() { - *x = SetLootMethodRequest{} +func (x *SetGroupTargetIconRequest) Reset() { + *x = SetGroupTargetIconRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[23] + mi := &file_group_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetLootMethodRequest) String() string { +func (x *SetGroupTargetIconRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetLootMethodRequest) ProtoMessage() {} +func (*SetGroupTargetIconRequest) ProtoMessage() {} -func (x *SetLootMethodRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[23] +func (x *SetGroupTargetIconRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1702,54 +1877,47 @@ func (x *SetLootMethodRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetLootMethodRequest.ProtoReflect.Descriptor instead. -func (*SetLootMethodRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{23} +// Deprecated: Use SetGroupTargetIconRequest.ProtoReflect.Descriptor instead. +func (*SetGroupTargetIconRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{24} } -func (x *SetLootMethodRequest) GetApi() string { +func (x *SetGroupTargetIconRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetLootMethodRequest) GetRealmID() uint32 { +func (x *SetGroupTargetIconRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetLootMethodRequest) GetPlayerGUID() uint64 { +func (x *SetGroupTargetIconRequest) GetSetterGUID() uint64 { if x != nil { - return x.PlayerGUID + return x.SetterGUID } return 0 } -func (x *SetLootMethodRequest) GetMethod() uint32 { +func (x *SetGroupTargetIconRequest) GetIconID() uint32 { if x != nil { - return x.Method + return x.IconID } return 0 } -func (x *SetLootMethodRequest) GetLootMaster() uint64 { - if x != nil { - return x.LootMaster - } - return 0 -} - -func (x *SetLootMethodRequest) GetLootThreshold() uint32 { +func (x *SetGroupTargetIconRequest) GetTargetGUID() uint64 { if x != nil { - return x.LootThreshold + return x.TargetGUID } return 0 } -type SetLootMethodResponse struct { +type SetGroupTargetIconResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1757,23 +1925,23 @@ type SetLootMethodResponse struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SetLootMethodResponse) Reset() { - *x = SetLootMethodResponse{} +func (x *SetGroupTargetIconResponse) Reset() { + *x = SetGroupTargetIconResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[24] + mi := &file_group_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetLootMethodResponse) String() string { +func (x *SetGroupTargetIconResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetLootMethodResponse) ProtoMessage() {} +func (*SetGroupTargetIconResponse) ProtoMessage() {} -func (x *SetLootMethodResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[24] +func (x *SetGroupTargetIconResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1784,19 +1952,19 @@ func (x *SetLootMethodResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetLootMethodResponse.ProtoReflect.Descriptor instead. -func (*SetLootMethodResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{24} +// Deprecated: Use SetGroupTargetIconResponse.ProtoReflect.Descriptor instead. +func (*SetGroupTargetIconResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{25} } -func (x *SetLootMethodResponse) GetApi() string { +func (x *SetGroupTargetIconResponse) GetApi() string { if x != nil { return x.Api } return "" } -type SetDungeonDifficultyRequest struct { +type GetGroupTargetIconsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1804,26 +1972,25 @@ type SetDungeonDifficultyRequest struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` } -func (x *SetDungeonDifficultyRequest) Reset() { - *x = SetDungeonDifficultyRequest{} +func (x *GetGroupTargetIconsRequest) Reset() { + *x = GetGroupTargetIconsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[25] + mi := &file_group_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetDungeonDifficultyRequest) String() string { +func (x *GetGroupTargetIconsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetDungeonDifficultyRequest) ProtoMessage() {} +func (*GetGroupTargetIconsRequest) ProtoMessage() {} -func (x *SetDungeonDifficultyRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[25] +func (x *GetGroupTargetIconsRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1834,65 +2001,58 @@ func (x *SetDungeonDifficultyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetDungeonDifficultyRequest.ProtoReflect.Descriptor instead. -func (*SetDungeonDifficultyRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{25} +// Deprecated: Use GetGroupTargetIconsRequest.ProtoReflect.Descriptor instead. +func (*GetGroupTargetIconsRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{26} } -func (x *SetDungeonDifficultyRequest) GetApi() string { +func (x *GetGroupTargetIconsRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetDungeonDifficultyRequest) GetRealmID() uint32 { +func (x *GetGroupTargetIconsRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetDungeonDifficultyRequest) GetPlayerGUID() uint64 { +func (x *GetGroupTargetIconsRequest) GetPlayerGUID() uint64 { if x != nil { return x.PlayerGUID } return 0 } -func (x *SetDungeonDifficultyRequest) GetDifficulty() uint32 { - if x != nil { - return x.Difficulty - } - return 0 -} - -type SetDungeonDifficultyResponse struct { +type GetGroupTargetIconsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SetDungeonDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetDungeonDifficultyResponse_Status" json:"status,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Targets []uint64 `protobuf:"varint,2,rep,packed,name=targets,proto3" json:"targets,omitempty"` } -func (x *SetDungeonDifficultyResponse) Reset() { - *x = SetDungeonDifficultyResponse{} +func (x *GetGroupTargetIconsResponse) Reset() { + *x = GetGroupTargetIconsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[26] + mi := &file_group_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetDungeonDifficultyResponse) String() string { +func (x *GetGroupTargetIconsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetDungeonDifficultyResponse) ProtoMessage() {} +func (*GetGroupTargetIconsResponse) ProtoMessage() {} -func (x *SetDungeonDifficultyResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[26] +func (x *GetGroupTargetIconsResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1903,53 +2063,55 @@ func (x *SetDungeonDifficultyResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetDungeonDifficultyResponse.ProtoReflect.Descriptor instead. -func (*SetDungeonDifficultyResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{26} +// Deprecated: Use GetGroupTargetIconsResponse.ProtoReflect.Descriptor instead. +func (*GetGroupTargetIconsResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{27} } -func (x *SetDungeonDifficultyResponse) GetApi() string { +func (x *GetGroupTargetIconsResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetDungeonDifficultyResponse) GetStatus() SetDungeonDifficultyResponse_Status { +func (x *GetGroupTargetIconsResponse) GetTargets() []uint64 { if x != nil { - return x.Status + return x.Targets } - return SetDungeonDifficultyResponse_Ok + return nil } -type SetRaidDifficultyRequest struct { +type SetLootMethodRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` - Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Method uint32 `protobuf:"varint,4,opt,name=method,proto3" json:"method,omitempty"` + LootMaster uint64 `protobuf:"varint,5,opt,name=lootMaster,proto3" json:"lootMaster,omitempty"` + LootThreshold uint32 `protobuf:"varint,6,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` } -func (x *SetRaidDifficultyRequest) Reset() { - *x = SetRaidDifficultyRequest{} +func (x *SetLootMethodRequest) Reset() { + *x = SetLootMethodRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[27] + mi := &file_group_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetRaidDifficultyRequest) String() string { +func (x *SetLootMethodRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetRaidDifficultyRequest) ProtoMessage() {} +func (*SetLootMethodRequest) ProtoMessage() {} -func (x *SetRaidDifficultyRequest) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[27] +func (x *SetLootMethodRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1960,65 +2122,78 @@ func (x *SetRaidDifficultyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetRaidDifficultyRequest.ProtoReflect.Descriptor instead. -func (*SetRaidDifficultyRequest) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{27} +// Deprecated: Use SetLootMethodRequest.ProtoReflect.Descriptor instead. +func (*SetLootMethodRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{28} } -func (x *SetRaidDifficultyRequest) GetApi() string { +func (x *SetLootMethodRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetRaidDifficultyRequest) GetRealmID() uint32 { +func (x *SetLootMethodRequest) GetRealmID() uint32 { if x != nil { return x.RealmID } return 0 } -func (x *SetRaidDifficultyRequest) GetPlayerGUID() uint64 { +func (x *SetLootMethodRequest) GetPlayerGUID() uint64 { if x != nil { return x.PlayerGUID } return 0 } -func (x *SetRaidDifficultyRequest) GetDifficulty() uint32 { +func (x *SetLootMethodRequest) GetMethod() uint32 { if x != nil { - return x.Difficulty + return x.Method } return 0 } -type SetRaidDifficultyResponse struct { +func (x *SetLootMethodRequest) GetLootMaster() uint64 { + if x != nil { + return x.LootMaster + } + return 0 +} + +func (x *SetLootMethodRequest) GetLootThreshold() uint32 { + if x != nil { + return x.LootThreshold + } + return 0 +} + +type SetLootMethodResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Status SetRaidDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetRaidDifficultyResponse_Status" json:"status,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` } -func (x *SetRaidDifficultyResponse) Reset() { - *x = SetRaidDifficultyResponse{} +func (x *SetLootMethodResponse) Reset() { + *x = SetLootMethodResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[28] + mi := &file_group_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *SetRaidDifficultyResponse) String() string { +func (x *SetLootMethodResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetRaidDifficultyResponse) ProtoMessage() {} +func (*SetLootMethodResponse) ProtoMessage() {} -func (x *SetRaidDifficultyResponse) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[28] +func (x *SetLootMethodResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2029,55 +2204,46 @@ func (x *SetRaidDifficultyResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetRaidDifficultyResponse.ProtoReflect.Descriptor instead. -func (*SetRaidDifficultyResponse) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{28} +// Deprecated: Use SetLootMethodResponse.ProtoReflect.Descriptor instead. +func (*SetLootMethodResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{29} } -func (x *SetRaidDifficultyResponse) GetApi() string { +func (x *SetLootMethodResponse) GetApi() string { if x != nil { return x.Api } return "" } -func (x *SetRaidDifficultyResponse) GetStatus() SetRaidDifficultyResponse_Status { - if x != nil { - return x.Status - } - return SetRaidDifficultyResponse_Ok -} - -type GetGroupResponse_GroupMember struct { +type SetDungeonDifficultyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - IsOnline bool `protobuf:"varint,4,opt,name=isOnline,proto3" json:"isOnline,omitempty"` - SubGroup uint32 `protobuf:"varint,5,opt,name=subGroup,proto3" json:"subGroup,omitempty"` - Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` } -func (x *GetGroupResponse_GroupMember) Reset() { - *x = GetGroupResponse_GroupMember{} +func (x *SetDungeonDifficultyRequest) Reset() { + *x = SetDungeonDifficultyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[29] + mi := &file_group_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupResponse_GroupMember) String() string { +func (x *SetDungeonDifficultyRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupResponse_GroupMember) ProtoMessage() {} +func (*SetDungeonDifficultyRequest) ProtoMessage() {} -func (x *GetGroupResponse_GroupMember) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[29] +func (x *SetDungeonDifficultyRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2088,581 +2254,3582 @@ func (x *GetGroupResponse_GroupMember) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupResponse_GroupMember.ProtoReflect.Descriptor instead. -func (*GetGroupResponse_GroupMember) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{5, 0} +// Deprecated: Use SetDungeonDifficultyRequest.ProtoReflect.Descriptor instead. +func (*SetDungeonDifficultyRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{30} } -func (x *GetGroupResponse_GroupMember) GetGuid() uint64 { +func (x *SetDungeonDifficultyRequest) GetApi() string { if x != nil { - return x.Guid + return x.Api } - return 0 + return "" } -func (x *GetGroupResponse_GroupMember) GetFlags() uint32 { +func (x *SetDungeonDifficultyRequest) GetRealmID() uint32 { if x != nil { - return x.Flags + return x.RealmID } return 0 } -func (x *GetGroupResponse_GroupMember) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *GetGroupResponse_GroupMember) GetIsOnline() bool { +func (x *SetDungeonDifficultyRequest) GetPlayerGUID() uint64 { if x != nil { - return x.IsOnline + return x.PlayerGUID } - return false + return 0 } -func (x *GetGroupResponse_GroupMember) GetSubGroup() uint32 { +func (x *SetDungeonDifficultyRequest) GetDifficulty() uint32 { if x != nil { - return x.SubGroup + return x.Difficulty } return 0 } -func (x *GetGroupResponse_GroupMember) GetRoles() uint32 { - if x != nil { - return x.Roles - } +type SetDungeonDifficultyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SetDungeonDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetDungeonDifficultyResponse_Status" json:"status,omitempty"` +} + +func (x *SetDungeonDifficultyResponse) Reset() { + *x = SetDungeonDifficultyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDungeonDifficultyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDungeonDifficultyResponse) ProtoMessage() {} + +func (x *SetDungeonDifficultyResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[31] + 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 SetDungeonDifficultyResponse.ProtoReflect.Descriptor instead. +func (*SetDungeonDifficultyResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{31} +} + +func (x *SetDungeonDifficultyResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetDungeonDifficultyResponse) GetStatus() SetDungeonDifficultyResponse_Status { + if x != nil { + return x.Status + } + return SetDungeonDifficultyResponse_Ok +} + +type SetRaidDifficultyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Difficulty uint32 `protobuf:"varint,4,opt,name=difficulty,proto3" json:"difficulty,omitempty"` +} + +func (x *SetRaidDifficultyRequest) Reset() { + *x = SetRaidDifficultyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetRaidDifficultyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetRaidDifficultyRequest) ProtoMessage() {} + +func (x *SetRaidDifficultyRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[32] + 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 SetRaidDifficultyRequest.ProtoReflect.Descriptor instead. +func (*SetRaidDifficultyRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{32} +} + +func (x *SetRaidDifficultyRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetRaidDifficultyRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } return 0 } -type GetGroupResponse_Group struct { +func (x *SetRaidDifficultyRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetRaidDifficultyRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +type SetRaidDifficultyResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Leader uint64 `protobuf:"varint,2,opt,name=leader,proto3" json:"leader,omitempty"` - LootMethod uint32 `protobuf:"varint,3,opt,name=lootMethod,proto3" json:"lootMethod,omitempty"` - Looter uint64 `protobuf:"varint,4,opt,name=looter,proto3" json:"looter,omitempty"` - LootThreshold uint32 `protobuf:"varint,5,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` - GroupType uint32 `protobuf:"varint,6,opt,name=groupType,proto3" json:"groupType,omitempty"` - Difficulty uint32 `protobuf:"varint,7,opt,name=difficulty,proto3" json:"difficulty,omitempty"` - RaidDifficulty uint32 `protobuf:"varint,8,opt,name=raidDifficulty,proto3" json:"raidDifficulty,omitempty"` - MasterLooter uint64 `protobuf:"varint,9,opt,name=masterLooter,proto3" json:"masterLooter,omitempty"` - TargetIconsList []uint64 `protobuf:"varint,10,rep,packed,name=targetIconsList,proto3" json:"targetIconsList,omitempty"` - Members []*GetGroupResponse_GroupMember `protobuf:"bytes,11,rep,name=members,proto3" json:"members,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SetRaidDifficultyResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetRaidDifficultyResponse_Status" json:"status,omitempty"` } -func (x *GetGroupResponse_Group) Reset() { - *x = GetGroupResponse_Group{} +func (x *SetRaidDifficultyResponse) Reset() { + *x = SetRaidDifficultyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_group_proto_msgTypes[30] + mi := &file_group_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupResponse_Group) String() string { +func (x *SetRaidDifficultyResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupResponse_Group) ProtoMessage() {} +func (*SetRaidDifficultyResponse) ProtoMessage() {} -func (x *GetGroupResponse_Group) ProtoReflect() protoreflect.Message { - mi := &file_group_proto_msgTypes[30] +func (x *SetRaidDifficultyResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[33] + 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 SetRaidDifficultyResponse.ProtoReflect.Descriptor instead. +func (*SetRaidDifficultyResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{33} +} + +func (x *SetRaidDifficultyResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetRaidDifficultyResponse) GetStatus() SetRaidDifficultyResponse_Status { + if x != nil { + return x.Status + } + return SetRaidDifficultyResponse_Ok +} + +type StartReadyCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,3,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + DurationMs uint32 `protobuf:"varint,4,opt,name=durationMs,proto3" json:"durationMs,omitempty"` +} + +func (x *StartReadyCheckRequest) Reset() { + *x = StartReadyCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartReadyCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartReadyCheckRequest) ProtoMessage() {} + +func (x *StartReadyCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[34] + 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 StartReadyCheckRequest.ProtoReflect.Descriptor instead. +func (*StartReadyCheckRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{34} +} + +func (x *StartReadyCheckRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *StartReadyCheckRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *StartReadyCheckRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *StartReadyCheckRequest) GetDurationMs() uint32 { + if x != nil { + return x.DurationMs + } + return 0 +} + +type StartReadyCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *StartReadyCheckResponse) Reset() { + *x = StartReadyCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartReadyCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartReadyCheckResponse) ProtoMessage() {} + +func (x *StartReadyCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[35] 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 GetGroupResponse_Group.ProtoReflect.Descriptor instead. -func (*GetGroupResponse_Group) Descriptor() ([]byte, []int) { - return file_group_proto_rawDescGZIP(), []int{5, 1} -} - -func (x *GetGroupResponse_Group) GetId() uint32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLeader() uint64 { - if x != nil { - return x.Leader - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLootMethod() uint32 { - if x != nil { - return x.LootMethod - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLooter() uint64 { - if x != nil { - return x.Looter - } - return 0 -} - -func (x *GetGroupResponse_Group) GetLootThreshold() uint32 { - if x != nil { - return x.LootThreshold - } - return 0 -} - -func (x *GetGroupResponse_Group) GetGroupType() uint32 { - if x != nil { - return x.GroupType - } - return 0 -} - -func (x *GetGroupResponse_Group) GetDifficulty() uint32 { - if x != nil { - return x.Difficulty - } - return 0 -} - -func (x *GetGroupResponse_Group) GetRaidDifficulty() uint32 { - if x != nil { - return x.RaidDifficulty - } - return 0 -} - -func (x *GetGroupResponse_Group) GetMasterLooter() uint64 { - if x != nil { - return x.MasterLooter - } - return 0 -} - -func (x *GetGroupResponse_Group) GetTargetIconsList() []uint64 { - if x != nil { - return x.TargetIconsList - } - return nil -} - -func (x *GetGroupResponse_Group) GetMembers() []*GetGroupResponse_GroupMember { - if x != nil { - return x.Members - } - return nil -} - -var File_group_proto protoreflect.FileDescriptor - -var file_group_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, - 0x31, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, - 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x58, 0x0a, 0x12, 0x41, 0x63, - 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x09, - 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x22, 0xf2, 0x04, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x99, 0x01, 0x0a, 0x0b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, - 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, - 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x1a, 0xfd, 0x02, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, - 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, - 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, - 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x74, 0x65, - 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, - 0x6c, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, - 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, - 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x22, 0x0a, - 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, - 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x5d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x16, - 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x76, - 0x0a, 0x10, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, - 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x26, - 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, - 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x77, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xbc, - 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, - 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x9f, 0x01, 0x0a, 0x19, - 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x22, 0x2e, 0x0a, - 0x1a, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, - 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, - 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, - 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x29, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x9a, 0x01, 0x0a, - 0x1c, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, - 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, - 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, - 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x10, 0x01, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x53, 0x65, - 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, - 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, - 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x24, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, - 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, - 0x52, 0x61, 0x69, 0x64, 0x10, 0x01, 0x32, 0xd8, 0x07, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, - 0x6f, 0x52, 0x61, 0x69, 0x64, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x41, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x53, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, - 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x53, - 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, - 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, - 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, - 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, - 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, - 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, - 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x0e, 0x5a, 0x0c, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x70, - 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_group_proto_rawDescOnce sync.Once - file_group_proto_rawDescData = file_group_proto_rawDesc -) - -func file_group_proto_rawDescGZIP() []byte { - file_group_proto_rawDescOnce.Do(func() { - file_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_proto_rawDescData) - }) - return file_group_proto_rawDescData -} - -var file_group_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_group_proto_msgTypes = make([]protoimpl.MessageInfo, 31) -var file_group_proto_goTypes = []interface{}{ - (InviteResponse_Status)(0), // 0: v1.InviteResponse.Status - (AcceptInviteResponse_Status)(0), // 1: v1.AcceptInviteResponse.Status - (UninviteResponse_Status)(0), // 2: v1.UninviteResponse.Status - (SetDungeonDifficultyResponse_Status)(0), // 3: v1.SetDungeonDifficultyResponse.Status - (SetRaidDifficultyResponse_Status)(0), // 4: v1.SetRaidDifficultyResponse.Status - (*InviteParams)(nil), // 5: v1.InviteParams - (*InviteResponse)(nil), // 6: v1.InviteResponse - (*AcceptInviteParams)(nil), // 7: v1.AcceptInviteParams - (*AcceptInviteResponse)(nil), // 8: v1.AcceptInviteResponse - (*GetGroupRequest)(nil), // 9: v1.GetGroupRequest - (*GetGroupResponse)(nil), // 10: v1.GetGroupResponse - (*GetGroupByMemberRequest)(nil), // 11: v1.GetGroupByMemberRequest - (*GetGroupIDByPlayerRequest)(nil), // 12: v1.GetGroupIDByPlayerRequest - (*GetGroupIDByPlayerResponse)(nil), // 13: v1.GetGroupIDByPlayerResponse - (*UninviteParams)(nil), // 14: v1.UninviteParams - (*UninviteResponse)(nil), // 15: v1.UninviteResponse - (*GroupLeaveParams)(nil), // 16: v1.GroupLeaveParams - (*GroupLeaveResponse)(nil), // 17: v1.GroupLeaveResponse - (*ConvertToRaidParams)(nil), // 18: v1.ConvertToRaidParams - (*ConvertToRaidResponse)(nil), // 19: v1.ConvertToRaidResponse - (*ChangeLeaderParams)(nil), // 20: v1.ChangeLeaderParams - (*ChangeLeaderResponse)(nil), // 21: v1.ChangeLeaderResponse - (*SendGroupMessageParams)(nil), // 22: v1.SendGroupMessageParams - (*SendGroupMessageResponse)(nil), // 23: v1.SendGroupMessageResponse - (*SetGroupTargetIconRequest)(nil), // 24: v1.SetGroupTargetIconRequest - (*SetGroupTargetIconResponse)(nil), // 25: v1.SetGroupTargetIconResponse - (*GetGroupTargetIconsRequest)(nil), // 26: v1.GetGroupTargetIconsRequest - (*GetGroupTargetIconsResponse)(nil), // 27: v1.GetGroupTargetIconsResponse - (*SetLootMethodRequest)(nil), // 28: v1.SetLootMethodRequest - (*SetLootMethodResponse)(nil), // 29: v1.SetLootMethodResponse - (*SetDungeonDifficultyRequest)(nil), // 30: v1.SetDungeonDifficultyRequest - (*SetDungeonDifficultyResponse)(nil), // 31: v1.SetDungeonDifficultyResponse - (*SetRaidDifficultyRequest)(nil), // 32: v1.SetRaidDifficultyRequest - (*SetRaidDifficultyResponse)(nil), // 33: v1.SetRaidDifficultyResponse - (*GetGroupResponse_GroupMember)(nil), // 34: v1.GetGroupResponse.GroupMember - (*GetGroupResponse_Group)(nil), // 35: v1.GetGroupResponse.Group -} -var file_group_proto_depIdxs = []int32{ - 0, // 0: v1.InviteResponse.status:type_name -> v1.InviteResponse.Status - 1, // 1: v1.AcceptInviteResponse.status:type_name -> v1.AcceptInviteResponse.Status - 35, // 2: v1.GetGroupResponse.group:type_name -> v1.GetGroupResponse.Group - 2, // 3: v1.UninviteResponse.status:type_name -> v1.UninviteResponse.Status - 3, // 4: v1.SetDungeonDifficultyResponse.status:type_name -> v1.SetDungeonDifficultyResponse.Status - 4, // 5: v1.SetRaidDifficultyResponse.status:type_name -> v1.SetRaidDifficultyResponse.Status - 34, // 6: v1.GetGroupResponse.Group.members:type_name -> v1.GetGroupResponse.GroupMember - 5, // 7: v1.GroupService.Invite:input_type -> v1.InviteParams - 14, // 8: v1.GroupService.Uninvite:input_type -> v1.UninviteParams - 16, // 9: v1.GroupService.Leave:input_type -> v1.GroupLeaveParams - 18, // 10: v1.GroupService.ConvertToRaid:input_type -> v1.ConvertToRaidParams - 20, // 11: v1.GroupService.ChangeLeader:input_type -> v1.ChangeLeaderParams - 7, // 12: v1.GroupService.AcceptInvite:input_type -> v1.AcceptInviteParams - 9, // 13: v1.GroupService.GetGroup:input_type -> v1.GetGroupRequest - 11, // 14: v1.GroupService.GetGroupByMember:input_type -> v1.GetGroupByMemberRequest - 12, // 15: v1.GroupService.GetGroupIDByPlayer:input_type -> v1.GetGroupIDByPlayerRequest - 24, // 16: v1.GroupService.SetGroupTargetIcon:input_type -> v1.SetGroupTargetIconRequest - 28, // 17: v1.GroupService.SetLootMethod:input_type -> v1.SetLootMethodRequest - 30, // 18: v1.GroupService.SetDungeonDifficulty:input_type -> v1.SetDungeonDifficultyRequest - 32, // 19: v1.GroupService.SetRaidDifficulty:input_type -> v1.SetRaidDifficultyRequest - 22, // 20: v1.GroupService.SendMessage:input_type -> v1.SendGroupMessageParams - 6, // 21: v1.GroupService.Invite:output_type -> v1.InviteResponse - 15, // 22: v1.GroupService.Uninvite:output_type -> v1.UninviteResponse - 17, // 23: v1.GroupService.Leave:output_type -> v1.GroupLeaveResponse - 19, // 24: v1.GroupService.ConvertToRaid:output_type -> v1.ConvertToRaidResponse - 21, // 25: v1.GroupService.ChangeLeader:output_type -> v1.ChangeLeaderResponse - 8, // 26: v1.GroupService.AcceptInvite:output_type -> v1.AcceptInviteResponse - 10, // 27: v1.GroupService.GetGroup:output_type -> v1.GetGroupResponse - 10, // 28: v1.GroupService.GetGroupByMember:output_type -> v1.GetGroupResponse - 13, // 29: v1.GroupService.GetGroupIDByPlayer:output_type -> v1.GetGroupIDByPlayerResponse - 25, // 30: v1.GroupService.SetGroupTargetIcon:output_type -> v1.SetGroupTargetIconResponse - 29, // 31: v1.GroupService.SetLootMethod:output_type -> v1.SetLootMethodResponse - 31, // 32: v1.GroupService.SetDungeonDifficulty:output_type -> v1.SetDungeonDifficultyResponse - 33, // 33: v1.GroupService.SetRaidDifficulty:output_type -> v1.SetRaidDifficultyResponse - 23, // 34: v1.GroupService.SendMessage:output_type -> v1.SendGroupMessageResponse - 21, // [21:35] is the sub-list for method output_type - 7, // [7:21] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name -} - -func init() { file_group_proto_init() } -func file_group_proto_init() { - if File_group_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteParams); i { + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StartReadyCheckResponse.ProtoReflect.Descriptor instead. +func (*StartReadyCheckResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{35} +} + +func (x *StartReadyCheckResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetReadyCheckMemberStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MemberGUID uint64 `protobuf:"varint,3,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + State uint32 `protobuf:"varint,4,opt,name=state,proto3" json:"state,omitempty"` +} + +func (x *SetReadyCheckMemberStateRequest) Reset() { + *x = SetReadyCheckMemberStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetReadyCheckMemberStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetReadyCheckMemberStateRequest) ProtoMessage() {} + +func (x *SetReadyCheckMemberStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[36] + 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 SetReadyCheckMemberStateRequest.ProtoReflect.Descriptor instead. +func (*SetReadyCheckMemberStateRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{36} +} + +func (x *SetReadyCheckMemberStateRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetReadyCheckMemberStateRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetReadyCheckMemberStateRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *SetReadyCheckMemberStateRequest) GetState() uint32 { + if x != nil { + return x.State + } + return 0 +} + +type SetReadyCheckMemberStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetReadyCheckMemberStateResponse) Reset() { + *x = SetReadyCheckMemberStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetReadyCheckMemberStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetReadyCheckMemberStateResponse) ProtoMessage() {} + +func (x *SetReadyCheckMemberStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[37] + 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 SetReadyCheckMemberStateResponse.ProtoReflect.Descriptor instead. +func (*SetReadyCheckMemberStateResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{37} +} + +func (x *SetReadyCheckMemberStateResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type FinishReadyCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *FinishReadyCheckRequest) Reset() { + *x = FinishReadyCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishReadyCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishReadyCheckRequest) ProtoMessage() {} + +func (x *FinishReadyCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[38] + 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 FinishReadyCheckRequest.ProtoReflect.Descriptor instead. +func (*FinishReadyCheckRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{38} +} + +func (x *FinishReadyCheckRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *FinishReadyCheckRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *FinishReadyCheckRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type FinishReadyCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *FinishReadyCheckResponse) Reset() { + *x = FinishReadyCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishReadyCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishReadyCheckResponse) ProtoMessage() {} + +func (x *FinishReadyCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[39] + 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 FinishReadyCheckResponse.ProtoReflect.Descriptor instead. +func (*FinishReadyCheckResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{39} +} + +func (x *FinishReadyCheckResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type ChangeMemberSubGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + UpdaterGUID uint64 `protobuf:"varint,3,opt,name=updaterGUID,proto3" json:"updaterGUID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + SubGroup uint32 `protobuf:"varint,5,opt,name=subGroup,proto3" json:"subGroup,omitempty"` +} + +func (x *ChangeMemberSubGroupRequest) Reset() { + *x = ChangeMemberSubGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeMemberSubGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeMemberSubGroupRequest) ProtoMessage() {} + +func (x *ChangeMemberSubGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[40] + 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 ChangeMemberSubGroupRequest.ProtoReflect.Descriptor instead. +func (*ChangeMemberSubGroupRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{40} +} + +func (x *ChangeMemberSubGroupRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ChangeMemberSubGroupRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ChangeMemberSubGroupRequest) GetUpdaterGUID() uint64 { + if x != nil { + return x.UpdaterGUID + } + return 0 +} + +func (x *ChangeMemberSubGroupRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *ChangeMemberSubGroupRequest) GetSubGroup() uint32 { + if x != nil { + return x.SubGroup + } + return 0 +} + +type ChangeMemberSubGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *ChangeMemberSubGroupResponse) Reset() { + *x = ChangeMemberSubGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ChangeMemberSubGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChangeMemberSubGroupResponse) ProtoMessage() {} + +func (x *ChangeMemberSubGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[41] + 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 ChangeMemberSubGroupResponse.ProtoReflect.Descriptor instead. +func (*ChangeMemberSubGroupResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{41} +} + +func (x *ChangeMemberSubGroupResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetMemberFlagsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + UpdaterGUID uint64 `protobuf:"varint,3,opt,name=updaterGUID,proto3" json:"updaterGUID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Flags uint32 `protobuf:"varint,5,opt,name=flags,proto3" json:"flags,omitempty"` + Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` +} + +func (x *SetMemberFlagsRequest) Reset() { + *x = SetMemberFlagsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMemberFlagsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMemberFlagsRequest) ProtoMessage() {} + +func (x *SetMemberFlagsRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[42] + 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 SetMemberFlagsRequest.ProtoReflect.Descriptor instead. +func (*SetMemberFlagsRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{42} +} + +func (x *SetMemberFlagsRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetMemberFlagsRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetUpdaterGUID() uint64 { + if x != nil { + return x.UpdaterGUID + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *SetMemberFlagsRequest) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +type SetMemberFlagsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetMemberFlagsResponse) Reset() { + *x = SetMemberFlagsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMemberFlagsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMemberFlagsResponse) ProtoMessage() {} + +func (x *SetMemberFlagsResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[43] + 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 SetMemberFlagsResponse.ProtoReflect.Descriptor instead. +func (*SetMemberFlagsResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{43} +} + +func (x *SetMemberFlagsResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type AcceptedLfgGroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + SelectedRoles uint32 `protobuf:"varint,3,opt,name=selectedRoles,proto3" json:"selectedRoles,omitempty"` + AssignedRole uint32 `protobuf:"varint,4,opt,name=assignedRole,proto3" json:"assignedRole,omitempty"` + QueueLeaderRealmID uint32 `protobuf:"varint,5,opt,name=queueLeaderRealmID,proto3" json:"queueLeaderRealmID,omitempty"` + QueueLeaderGUID uint64 `protobuf:"varint,6,opt,name=queueLeaderGUID,proto3" json:"queueLeaderGUID,omitempty"` +} + +func (x *AcceptedLfgGroupMember) Reset() { + *x = AcceptedLfgGroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcceptedLfgGroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptedLfgGroupMember) ProtoMessage() {} + +func (x *AcceptedLfgGroupMember) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[44] + 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 AcceptedLfgGroupMember.ProtoReflect.Descriptor instead. +func (*AcceptedLfgGroupMember) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{44} +} + +func (x *AcceptedLfgGroupMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetSelectedRoles() uint32 { + if x != nil { + return x.SelectedRoles + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetAssignedRole() uint32 { + if x != nil { + return x.AssignedRole + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetQueueLeaderRealmID() uint32 { + if x != nil { + return x.QueueLeaderRealmID + } + return 0 +} + +func (x *AcceptedLfgGroupMember) GetQueueLeaderGUID() uint64 { + if x != nil { + return x.QueueLeaderGUID + } + return 0 +} + +type RegisterAcceptedLfgGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ProposalID uint32 `protobuf:"varint,3,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + LeaderRealmID uint32 `protobuf:"varint,5,opt,name=leaderRealmID,proto3" json:"leaderRealmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,6,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + CrossRealm bool `protobuf:"varint,7,opt,name=crossRealm,proto3" json:"crossRealm,omitempty"` + Members []*AcceptedLfgGroupMember `protobuf:"bytes,8,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *RegisterAcceptedLfgGroupRequest) Reset() { + *x = RegisterAcceptedLfgGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterAcceptedLfgGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterAcceptedLfgGroupRequest) ProtoMessage() {} + +func (x *RegisterAcceptedLfgGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[45] + 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 RegisterAcceptedLfgGroupRequest.ProtoReflect.Descriptor instead. +func (*RegisterAcceptedLfgGroupRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{45} +} + +func (x *RegisterAcceptedLfgGroupRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterAcceptedLfgGroupRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetLeaderRealmID() uint32 { + if x != nil { + return x.LeaderRealmID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *RegisterAcceptedLfgGroupRequest) GetCrossRealm() bool { + if x != nil { + return x.CrossRealm + } + return false +} + +func (x *RegisterAcceptedLfgGroupRequest) GetMembers() []*AcceptedLfgGroupMember { + if x != nil { + return x.Members + } + return nil +} + +type RegisterAcceptedLfgGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GroupID uint32 `protobuf:"varint,2,opt,name=groupID,proto3" json:"groupID,omitempty"` +} + +func (x *RegisterAcceptedLfgGroupResponse) Reset() { + *x = RegisterAcceptedLfgGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterAcceptedLfgGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterAcceptedLfgGroupResponse) ProtoMessage() {} + +func (x *RegisterAcceptedLfgGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[46] + 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 RegisterAcceptedLfgGroupResponse.ProtoReflect.Descriptor instead. +func (*RegisterAcceptedLfgGroupResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{46} +} + +func (x *RegisterAcceptedLfgGroupResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterAcceptedLfgGroupResponse) GetGroupID() uint32 { + if x != nil { + return x.GroupID + } + return 0 +} + +type MaterializedLfgGroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + IsOnline bool `protobuf:"varint,4,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + Flags uint32 `protobuf:"varint,5,opt,name=flags,proto3" json:"flags,omitempty"` + Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` + SubGroup uint32 `protobuf:"varint,7,opt,name=subGroup,proto3" json:"subGroup,omitempty"` +} + +func (x *MaterializedLfgGroupMember) Reset() { + *x = MaterializedLfgGroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializedLfgGroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializedLfgGroupMember) ProtoMessage() {} + +func (x *MaterializedLfgGroupMember) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[47] + 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 MaterializedLfgGroupMember.ProtoReflect.Descriptor instead. +func (*MaterializedLfgGroupMember) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{47} +} + +func (x *MaterializedLfgGroupMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MaterializedLfgGroupMember) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *MaterializedLfgGroupMember) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +func (x *MaterializedLfgGroupMember) GetSubGroup() uint32 { + if x != nil { + return x.SubGroup + } + return 0 +} + +type RegisterMaterializedLfgGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GroupID uint32 `protobuf:"varint,3,opt,name=groupID,proto3" json:"groupID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,4,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + GroupType uint32 `protobuf:"varint,5,opt,name=groupType,proto3" json:"groupType,omitempty"` + Difficulty uint32 `protobuf:"varint,6,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + RaidDifficulty uint32 `protobuf:"varint,7,opt,name=raidDifficulty,proto3" json:"raidDifficulty,omitempty"` + Members []*MaterializedLfgGroupMember `protobuf:"bytes,8,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *RegisterMaterializedLfgGroupRequest) Reset() { + *x = RegisterMaterializedLfgGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterMaterializedLfgGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMaterializedLfgGroupRequest) ProtoMessage() {} + +func (x *RegisterMaterializedLfgGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[48] + 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 RegisterMaterializedLfgGroupRequest.ProtoReflect.Descriptor instead. +func (*RegisterMaterializedLfgGroupRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{48} +} + +func (x *RegisterMaterializedLfgGroupRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterMaterializedLfgGroupRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetGroupID() uint32 { + if x != nil { + return x.GroupID + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetGroupType() uint32 { + if x != nil { + return x.GroupType + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetRaidDifficulty() uint32 { + if x != nil { + return x.RaidDifficulty + } + return 0 +} + +func (x *RegisterMaterializedLfgGroupRequest) GetMembers() []*MaterializedLfgGroupMember { + if x != nil { + return x.Members + } + return nil +} + +type RegisterMaterializedLfgGroupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *RegisterMaterializedLfgGroupResponse) Reset() { + *x = RegisterMaterializedLfgGroupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterMaterializedLfgGroupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMaterializedLfgGroupResponse) ProtoMessage() {} + +func (x *RegisterMaterializedLfgGroupResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[49] + 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 RegisterMaterializedLfgGroupResponse.ProtoReflect.Descriptor instead. +func (*RegisterMaterializedLfgGroupResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{49} +} + +func (x *RegisterMaterializedLfgGroupResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type UpdateMemberStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MemberGUID uint64 `protobuf:"varint,3,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Online bool `protobuf:"varint,4,opt,name=online,proto3" json:"online,omitempty"` + Level uint32 `protobuf:"varint,5,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + ZoneID uint32 `protobuf:"varint,7,opt,name=zoneID,proto3" json:"zoneID,omitempty"` + MapID uint32 `protobuf:"varint,8,opt,name=mapID,proto3" json:"mapID,omitempty"` + Health uint32 `protobuf:"varint,9,opt,name=health,proto3" json:"health,omitempty"` + MaxHealth uint32 `protobuf:"varint,10,opt,name=maxHealth,proto3" json:"maxHealth,omitempty"` + PowerType uint32 `protobuf:"varint,11,opt,name=powerType,proto3" json:"powerType,omitempty"` + Power uint32 `protobuf:"varint,12,opt,name=power,proto3" json:"power,omitempty"` + MaxPower uint32 `protobuf:"varint,13,opt,name=maxPower,proto3" json:"maxPower,omitempty"` + InstanceID *uint32 `protobuf:"varint,14,opt,name=instanceID,proto3,oneof" json:"instanceID,omitempty"` +} + +func (x *UpdateMemberStateRequest) Reset() { + *x = UpdateMemberStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMemberStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMemberStateRequest) ProtoMessage() {} + +func (x *UpdateMemberStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[50] + 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 UpdateMemberStateRequest.ProtoReflect.Descriptor instead. +func (*UpdateMemberStateRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{50} +} + +func (x *UpdateMemberStateRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *UpdateMemberStateRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetOnline() bool { + if x != nil { + return x.Online + } + return false +} + +func (x *UpdateMemberStateRequest) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetZoneID() uint32 { + if x != nil { + return x.ZoneID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetHealth() uint32 { + if x != nil { + return x.Health + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMaxHealth() uint32 { + if x != nil { + return x.MaxHealth + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetPowerType() uint32 { + if x != nil { + return x.PowerType + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetPower() uint32 { + if x != nil { + return x.Power + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetMaxPower() uint32 { + if x != nil { + return x.MaxPower + } + return 0 +} + +func (x *UpdateMemberStateRequest) GetInstanceID() uint32 { + if x != nil && x.InstanceID != nil { + return *x.InstanceID + } + return 0 +} + +type UpdateMemberStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *UpdateMemberStateResponse) Reset() { + *x = UpdateMemberStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateMemberStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMemberStateResponse) ProtoMessage() {} + +func (x *UpdateMemberStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[51] + 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 UpdateMemberStateResponse.ProtoReflect.Descriptor instead. +func (*UpdateMemberStateResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{51} +} + +func (x *UpdateMemberStateResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type PlayerStateSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberGUID uint64 `protobuf:"varint,1,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Online bool `protobuf:"varint,2,opt,name=online,proto3" json:"online,omitempty"` + Level uint32 `protobuf:"varint,3,opt,name=level,proto3" json:"level,omitempty"` + ClassID uint32 `protobuf:"varint,4,opt,name=classID,proto3" json:"classID,omitempty"` + ZoneID uint32 `protobuf:"varint,5,opt,name=zoneID,proto3" json:"zoneID,omitempty"` + MapID uint32 `protobuf:"varint,6,opt,name=mapID,proto3" json:"mapID,omitempty"` + Health uint32 `protobuf:"varint,7,opt,name=health,proto3" json:"health,omitempty"` + MaxHealth uint32 `protobuf:"varint,8,opt,name=maxHealth,proto3" json:"maxHealth,omitempty"` + PowerType uint32 `protobuf:"varint,9,opt,name=powerType,proto3" json:"powerType,omitempty"` + Power uint32 `protobuf:"varint,10,opt,name=power,proto3" json:"power,omitempty"` + MaxPower uint32 `protobuf:"varint,11,opt,name=maxPower,proto3" json:"maxPower,omitempty"` + TimestampMs uint64 `protobuf:"varint,12,opt,name=timestampMs,proto3" json:"timestampMs,omitempty"` + AurasKnown bool `protobuf:"varint,13,opt,name=aurasKnown,proto3" json:"aurasKnown,omitempty"` + Auras []*PlayerAuraSnapshot `protobuf:"bytes,14,rep,name=auras,proto3" json:"auras,omitempty"` + InstanceID *uint32 `protobuf:"varint,15,opt,name=instanceID,proto3,oneof" json:"instanceID,omitempty"` + Dead *bool `protobuf:"varint,16,opt,name=dead,proto3,oneof" json:"dead,omitempty"` + Ghost *bool `protobuf:"varint,17,opt,name=ghost,proto3,oneof" json:"ghost,omitempty"` +} + +func (x *PlayerStateSnapshot) Reset() { + *x = PlayerStateSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerStateSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerStateSnapshot) ProtoMessage() {} + +func (x *PlayerStateSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[52] + 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 PlayerStateSnapshot.ProtoReflect.Descriptor instead. +func (*PlayerStateSnapshot) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{52} +} + +func (x *PlayerStateSnapshot) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetOnline() bool { + if x != nil { + return x.Online + } + return false +} + +func (x *PlayerStateSnapshot) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +func (x *PlayerStateSnapshot) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetZoneID() uint32 { + if x != nil { + return x.ZoneID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetHealth() uint32 { + if x != nil { + return x.Health + } + return 0 +} + +func (x *PlayerStateSnapshot) GetMaxHealth() uint32 { + if x != nil { + return x.MaxHealth + } + return 0 +} + +func (x *PlayerStateSnapshot) GetPowerType() uint32 { + if x != nil { + return x.PowerType + } + return 0 +} + +func (x *PlayerStateSnapshot) GetPower() uint32 { + if x != nil { + return x.Power + } + return 0 +} + +func (x *PlayerStateSnapshot) GetMaxPower() uint32 { + if x != nil { + return x.MaxPower + } + return 0 +} + +func (x *PlayerStateSnapshot) GetTimestampMs() uint64 { + if x != nil { + return x.TimestampMs + } + return 0 +} + +func (x *PlayerStateSnapshot) GetAurasKnown() bool { + if x != nil { + return x.AurasKnown + } + return false +} + +func (x *PlayerStateSnapshot) GetAuras() []*PlayerAuraSnapshot { + if x != nil { + return x.Auras + } + return nil +} + +func (x *PlayerStateSnapshot) GetInstanceID() uint32 { + if x != nil && x.InstanceID != nil { + return *x.InstanceID + } + return 0 +} + +func (x *PlayerStateSnapshot) GetDead() bool { + if x != nil && x.Dead != nil { + return *x.Dead + } + return false +} + +func (x *PlayerStateSnapshot) GetGhost() bool { + if x != nil && x.Ghost != nil { + return *x.Ghost + } + return false +} + +type PlayerAuraSnapshot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Slot uint32 `protobuf:"varint,1,opt,name=slot,proto3" json:"slot,omitempty"` + SpellID uint32 `protobuf:"varint,2,opt,name=spellID,proto3" json:"spellID,omitempty"` + Flags uint32 `protobuf:"varint,3,opt,name=flags,proto3" json:"flags,omitempty"` +} + +func (x *PlayerAuraSnapshot) Reset() { + *x = PlayerAuraSnapshot{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PlayerAuraSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PlayerAuraSnapshot) ProtoMessage() {} + +func (x *PlayerAuraSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[53] + 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 PlayerAuraSnapshot.ProtoReflect.Descriptor instead. +func (*PlayerAuraSnapshot) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{53} +} + +func (x *PlayerAuraSnapshot) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *PlayerAuraSnapshot) GetSpellID() uint32 { + if x != nil { + return x.SpellID + } + return 0 +} + +func (x *PlayerAuraSnapshot) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +type BulkUpdateMemberStatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SourceGatewayID string `protobuf:"bytes,3,opt,name=sourceGatewayID,proto3" json:"sourceGatewayID,omitempty"` + SourceWorldserverID string `protobuf:"bytes,4,opt,name=sourceWorldserverID,proto3" json:"sourceWorldserverID,omitempty"` + Snapshots []*PlayerStateSnapshot `protobuf:"bytes,5,rep,name=snapshots,proto3" json:"snapshots,omitempty"` +} + +func (x *BulkUpdateMemberStatesRequest) Reset() { + *x = BulkUpdateMemberStatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkUpdateMemberStatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkUpdateMemberStatesRequest) ProtoMessage() {} + +func (x *BulkUpdateMemberStatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[54] + 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 BulkUpdateMemberStatesRequest.ProtoReflect.Descriptor instead. +func (*BulkUpdateMemberStatesRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{54} +} + +func (x *BulkUpdateMemberStatesRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *BulkUpdateMemberStatesRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *BulkUpdateMemberStatesRequest) GetSourceGatewayID() string { + if x != nil { + return x.SourceGatewayID + } + return "" +} + +func (x *BulkUpdateMemberStatesRequest) GetSourceWorldserverID() string { + if x != nil { + return x.SourceWorldserverID + } + return "" +} + +func (x *BulkUpdateMemberStatesRequest) GetSnapshots() []*PlayerStateSnapshot { + if x != nil { + return x.Snapshots + } + return nil +} + +type BulkUpdateMemberStatesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *BulkUpdateMemberStatesResponse) Reset() { + *x = BulkUpdateMemberStatesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BulkUpdateMemberStatesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BulkUpdateMemberStatesResponse) ProtoMessage() {} + +func (x *BulkUpdateMemberStatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[55] + 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 BulkUpdateMemberStatesResponse.ProtoReflect.Descriptor instead. +func (*BulkUpdateMemberStatesResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{55} +} + +func (x *BulkUpdateMemberStatesResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type ResetInstanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` +} + +func (x *ResetInstanceRequest) Reset() { + *x = ResetInstanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResetInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResetInstanceRequest) ProtoMessage() {} + +func (x *ResetInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[56] + 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 ResetInstanceRequest.ProtoReflect.Descriptor instead. +func (*ResetInstanceRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{56} +} + +func (x *ResetInstanceRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *ResetInstanceRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *ResetInstanceRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *ResetInstanceRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *ResetInstanceRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +type ResetInstanceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *ResetInstanceResponse) Reset() { + *x = ResetInstanceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResetInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResetInstanceResponse) ProtoMessage() {} + +func (x *ResetInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[57] + 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 ResetInstanceResponse.ProtoReflect.Descriptor instead. +func (*ResetInstanceResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{57} +} + +func (x *ResetInstanceResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetInstanceBindExtensionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + MapID uint32 `protobuf:"varint,4,opt,name=mapID,proto3" json:"mapID,omitempty"` + Difficulty uint32 `protobuf:"varint,5,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + Extended bool `protobuf:"varint,6,opt,name=extended,proto3" json:"extended,omitempty"` +} + +func (x *SetInstanceBindExtensionRequest) Reset() { + *x = SetInstanceBindExtensionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetInstanceBindExtensionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetInstanceBindExtensionRequest) ProtoMessage() {} + +func (x *SetInstanceBindExtensionRequest) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[58] + 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 SetInstanceBindExtensionRequest.ProtoReflect.Descriptor instead. +func (*SetInstanceBindExtensionRequest) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{58} +} + +func (x *SetInstanceBindExtensionRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetInstanceBindExtensionRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *SetInstanceBindExtensionRequest) GetExtended() bool { + if x != nil { + return x.Extended + } + return false +} + +type SetInstanceBindExtensionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *SetInstanceBindExtensionResponse) Reset() { + *x = SetInstanceBindExtensionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetInstanceBindExtensionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetInstanceBindExtensionResponse) ProtoMessage() {} + +func (x *SetInstanceBindExtensionResponse) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[59] + 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 SetInstanceBindExtensionResponse.ProtoReflect.Descriptor instead. +func (*SetInstanceBindExtensionResponse) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{59} +} + +func (x *SetInstanceBindExtensionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type GetGroupResponse_GroupMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + IsOnline bool `protobuf:"varint,4,opt,name=isOnline,proto3" json:"isOnline,omitempty"` + SubGroup uint32 `protobuf:"varint,5,opt,name=subGroup,proto3" json:"subGroup,omitempty"` + Roles uint32 `protobuf:"varint,6,opt,name=roles,proto3" json:"roles,omitempty"` + RealmID uint32 `protobuf:"varint,7,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetGroupResponse_GroupMember) Reset() { + *x = GetGroupResponse_GroupMember{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupResponse_GroupMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupResponse_GroupMember) ProtoMessage() {} + +func (x *GetGroupResponse_GroupMember) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[60] + 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 GetGroupResponse_GroupMember.ProtoReflect.Descriptor instead. +func (*GetGroupResponse_GroupMember) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *GetGroupResponse_GroupMember) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetGroupResponse_GroupMember) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +func (x *GetGroupResponse_GroupMember) GetSubGroup() uint32 { + if x != nil { + return x.SubGroup + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +func (x *GetGroupResponse_GroupMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type GetGroupResponse_Group struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Leader uint64 `protobuf:"varint,2,opt,name=leader,proto3" json:"leader,omitempty"` + LootMethod uint32 `protobuf:"varint,3,opt,name=lootMethod,proto3" json:"lootMethod,omitempty"` + Looter uint64 `protobuf:"varint,4,opt,name=looter,proto3" json:"looter,omitempty"` + LootThreshold uint32 `protobuf:"varint,5,opt,name=lootThreshold,proto3" json:"lootThreshold,omitempty"` + GroupType uint32 `protobuf:"varint,6,opt,name=groupType,proto3" json:"groupType,omitempty"` + Difficulty uint32 `protobuf:"varint,7,opt,name=difficulty,proto3" json:"difficulty,omitempty"` + RaidDifficulty uint32 `protobuf:"varint,8,opt,name=raidDifficulty,proto3" json:"raidDifficulty,omitempty"` + MasterLooter uint64 `protobuf:"varint,9,opt,name=masterLooter,proto3" json:"masterLooter,omitempty"` + TargetIconsList []uint64 `protobuf:"varint,10,rep,packed,name=targetIconsList,proto3" json:"targetIconsList,omitempty"` + Members []*GetGroupResponse_GroupMember `protobuf:"bytes,11,rep,name=members,proto3" json:"members,omitempty"` + RealmID uint32 `protobuf:"varint,12,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *GetGroupResponse_Group) Reset() { + *x = GetGroupResponse_Group{} + if protoimpl.UnsafeEnabled { + mi := &file_group_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupResponse_Group) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupResponse_Group) ProtoMessage() {} + +func (x *GetGroupResponse_Group) ProtoReflect() protoreflect.Message { + mi := &file_group_proto_msgTypes[61] + 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 GetGroupResponse_Group.ProtoReflect.Descriptor instead. +func (*GetGroupResponse_Group) Descriptor() ([]byte, []int) { + return file_group_proto_rawDescGZIP(), []int{7, 1} +} + +func (x *GetGroupResponse_Group) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLeader() uint64 { + if x != nil { + return x.Leader + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLootMethod() uint32 { + if x != nil { + return x.LootMethod + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLooter() uint64 { + if x != nil { + return x.Looter + } + return 0 +} + +func (x *GetGroupResponse_Group) GetLootThreshold() uint32 { + if x != nil { + return x.LootThreshold + } + return 0 +} + +func (x *GetGroupResponse_Group) GetGroupType() uint32 { + if x != nil { + return x.GroupType + } + return 0 +} + +func (x *GetGroupResponse_Group) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +func (x *GetGroupResponse_Group) GetRaidDifficulty() uint32 { + if x != nil { + return x.RaidDifficulty + } + return 0 +} + +func (x *GetGroupResponse_Group) GetMasterLooter() uint64 { + if x != nil { + return x.MasterLooter + } + return 0 +} + +func (x *GetGroupResponse_Group) GetTargetIconsList() []uint64 { + if x != nil { + return x.TargetIconsList + } + return nil +} + +func (x *GetGroupResponse_Group) GetMembers() []*GetGroupResponse_GroupMember { + if x != nil { + return x.Members + } + return nil +} + +func (x *GetGroupResponse_Group) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +var File_group_proto protoreflect.FileDescriptor + +var file_group_proto_rawDesc = []byte{ + 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, + 0x31, 0x22, 0xb2, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x72, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x58, 0x0a, 0x12, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x14, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x59, 0x0a, 0x13, 0x44, 0x65, 0x63, + 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x22, 0x94, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x38, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x2f, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x57, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x22, 0xa6, 0x05, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x30, 0x0a, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0xb3, 0x01, + 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, + 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, + 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x1a, 0x97, 0x03, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, + 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0c, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, + 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x0a, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, + 0x6f, 0x6e, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x5d, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x19, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x22, 0x6c, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x22, 0x6a, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x73, 0x22, 0xc3, 0x02, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x66, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6c, 0x64, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4b, + 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4d, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x4d, 0x73, 0x22, 0x64, 0x0a, + 0x1b, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x0e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x22, 0x76, 0x0a, 0x10, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x1b, 0x0a, 0x06, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x01, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x22, 0x26, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x13, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x22, 0x29, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, + 0x52, 0x61, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, + 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6e, 0x65, 0x77, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x22, 0xe2, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x2c, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x73, 0x65, 0x74, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x69, 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, + 0x63, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x47, 0x55, 0x49, 0x44, 0x22, 0x2e, 0x0a, 0x1a, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, + 0x49, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x22, 0xc0, 0x01, 0x0a, 0x14, 0x53, + 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x6f, 0x74, 0x4d, + 0x61, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x6f, 0x6f, + 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x74, 0x54, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x6c, 0x6f, 0x6f, 0x74, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x29, 0x0a, + 0x15, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, + 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, + 0x75, 0x6c, 0x74, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, + 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x27, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x10, + 0x01, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, + 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x19, 0x53, + 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x24, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x49, 0x73, 0x49, 0x6e, 0x52, 0x61, 0x69, 0x64, 0x10, 0x01, 0x22, 0x84, + 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x22, 0x2b, 0x0a, 0x17, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x22, 0x83, 0x01, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x65, + 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x2c, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x22, 0xa7, 0x01, 0x0a, 0x1b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x30, 0x0a, + 0x1c, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xb1, 0x01, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, + 0x6c, 0x65, 0x73, 0x22, 0x2a, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xf6, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2e, + 0x0a, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x28, + 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xad, 0x02, 0x0a, 0x1f, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, + 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, + 0x6c, 0x6d, 0x12, 0x34, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, + 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x4e, 0x0a, 0x20, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x4d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x73, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xab, 0x02, 0x0a, 0x23, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, + 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, + 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x38, 0x0a, + 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x38, 0x0a, 0x24, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4c, + 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x22, 0x96, 0x03, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, + 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, + 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x44, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x19, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x9c, 0x04, 0x0a, 0x13, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x7a, 0x6f, 0x6e, + 0x65, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x7a, 0x6f, 0x6e, 0x65, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, + 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4d, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x72, 0x61, 0x73, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x75, 0x72, 0x61, 0x73, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x12, + 0x2c, 0x0a, 0x05, 0x61, 0x75, 0x72, 0x61, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x75, 0x72, 0x61, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x05, 0x61, 0x75, 0x72, 0x61, 0x73, 0x12, 0x23, 0x0a, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x64, 0x65, 0x61, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x04, 0x64, 0x65, 0x61, 0x64, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x67, + 0x68, 0x6f, 0x73, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x67, 0x68, + 0x6f, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x65, 0x61, 0x64, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x12, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x41, 0x75, 0x72, 0x61, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x1d, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x13, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x57, + 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x09, + 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x73, 0x22, 0x32, 0x0a, 0x1e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x98, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x65, + 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, + 0x74, 0x79, 0x22, 0x29, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xbf, 0x01, + 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, + 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, + 0x6c, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x22, + 0x34, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, + 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x32, 0xd5, 0x10, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, + 0x52, 0x61, 0x69, 0x64, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x54, 0x6f, 0x52, 0x61, 0x69, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, + 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x17, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x6c, + 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x35, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x42, 0x79, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, + 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, + 0x6f, 0x6e, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x49, 0x63, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, + 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x44, + 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, + 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x52, 0x61, 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x61, + 0x69, 0x64, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, + 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x0f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4d, 0x0a, 0x10, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x52, 0x65, 0x61, 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, + 0x64, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x59, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x75, 0x62, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x19, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x66, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4c, 0x66, 0x67, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5f, 0x0a, 0x16, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0e, 0x5a, + 0x0c, 0x67, 0x65, 0x6e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_group_proto_rawDescOnce sync.Once + file_group_proto_rawDescData = file_group_proto_rawDesc +) + +func file_group_proto_rawDescGZIP() []byte { + file_group_proto_rawDescOnce.Do(func() { + file_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_proto_rawDescData) + }) + return file_group_proto_rawDescData +} + +var file_group_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_group_proto_msgTypes = make([]protoimpl.MessageInfo, 62) +var file_group_proto_goTypes = []interface{}{ + (InviteResponse_Status)(0), // 0: v1.InviteResponse.Status + (AcceptInviteResponse_Status)(0), // 1: v1.AcceptInviteResponse.Status + (DeclineInviteResponse_Status)(0), // 2: v1.DeclineInviteResponse.Status + (UninviteResponse_Status)(0), // 3: v1.UninviteResponse.Status + (SetDungeonDifficultyResponse_Status)(0), // 4: v1.SetDungeonDifficultyResponse.Status + (SetRaidDifficultyResponse_Status)(0), // 5: v1.SetRaidDifficultyResponse.Status + (*InviteParams)(nil), // 6: v1.InviteParams + (*InviteResponse)(nil), // 7: v1.InviteResponse + (*AcceptInviteParams)(nil), // 8: v1.AcceptInviteParams + (*AcceptInviteResponse)(nil), // 9: v1.AcceptInviteResponse + (*DeclineInviteParams)(nil), // 10: v1.DeclineInviteParams + (*DeclineInviteResponse)(nil), // 11: v1.DeclineInviteResponse + (*GetGroupRequest)(nil), // 12: v1.GetGroupRequest + (*GetGroupResponse)(nil), // 13: v1.GetGroupResponse + (*GetGroupByMemberRequest)(nil), // 14: v1.GetGroupByMemberRequest + (*GetGroupIDByPlayerRequest)(nil), // 15: v1.GetGroupIDByPlayerRequest + (*GetGroupIDByPlayerResponse)(nil), // 16: v1.GetGroupIDByPlayerResponse + (*GetMemberPlacementsRequest)(nil), // 17: v1.GetMemberPlacementsRequest + (*MemberPlacement)(nil), // 18: v1.MemberPlacement + (*GetMemberPlacementsResponse)(nil), // 19: v1.GetMemberPlacementsResponse + (*UninviteParams)(nil), // 20: v1.UninviteParams + (*UninviteResponse)(nil), // 21: v1.UninviteResponse + (*GroupLeaveParams)(nil), // 22: v1.GroupLeaveParams + (*GroupLeaveResponse)(nil), // 23: v1.GroupLeaveResponse + (*ConvertToRaidParams)(nil), // 24: v1.ConvertToRaidParams + (*ConvertToRaidResponse)(nil), // 25: v1.ConvertToRaidResponse + (*ChangeLeaderParams)(nil), // 26: v1.ChangeLeaderParams + (*ChangeLeaderResponse)(nil), // 27: v1.ChangeLeaderResponse + (*SendGroupMessageParams)(nil), // 28: v1.SendGroupMessageParams + (*SendGroupMessageResponse)(nil), // 29: v1.SendGroupMessageResponse + (*SetGroupTargetIconRequest)(nil), // 30: v1.SetGroupTargetIconRequest + (*SetGroupTargetIconResponse)(nil), // 31: v1.SetGroupTargetIconResponse + (*GetGroupTargetIconsRequest)(nil), // 32: v1.GetGroupTargetIconsRequest + (*GetGroupTargetIconsResponse)(nil), // 33: v1.GetGroupTargetIconsResponse + (*SetLootMethodRequest)(nil), // 34: v1.SetLootMethodRequest + (*SetLootMethodResponse)(nil), // 35: v1.SetLootMethodResponse + (*SetDungeonDifficultyRequest)(nil), // 36: v1.SetDungeonDifficultyRequest + (*SetDungeonDifficultyResponse)(nil), // 37: v1.SetDungeonDifficultyResponse + (*SetRaidDifficultyRequest)(nil), // 38: v1.SetRaidDifficultyRequest + (*SetRaidDifficultyResponse)(nil), // 39: v1.SetRaidDifficultyResponse + (*StartReadyCheckRequest)(nil), // 40: v1.StartReadyCheckRequest + (*StartReadyCheckResponse)(nil), // 41: v1.StartReadyCheckResponse + (*SetReadyCheckMemberStateRequest)(nil), // 42: v1.SetReadyCheckMemberStateRequest + (*SetReadyCheckMemberStateResponse)(nil), // 43: v1.SetReadyCheckMemberStateResponse + (*FinishReadyCheckRequest)(nil), // 44: v1.FinishReadyCheckRequest + (*FinishReadyCheckResponse)(nil), // 45: v1.FinishReadyCheckResponse + (*ChangeMemberSubGroupRequest)(nil), // 46: v1.ChangeMemberSubGroupRequest + (*ChangeMemberSubGroupResponse)(nil), // 47: v1.ChangeMemberSubGroupResponse + (*SetMemberFlagsRequest)(nil), // 48: v1.SetMemberFlagsRequest + (*SetMemberFlagsResponse)(nil), // 49: v1.SetMemberFlagsResponse + (*AcceptedLfgGroupMember)(nil), // 50: v1.AcceptedLfgGroupMember + (*RegisterAcceptedLfgGroupRequest)(nil), // 51: v1.RegisterAcceptedLfgGroupRequest + (*RegisterAcceptedLfgGroupResponse)(nil), // 52: v1.RegisterAcceptedLfgGroupResponse + (*MaterializedLfgGroupMember)(nil), // 53: v1.MaterializedLfgGroupMember + (*RegisterMaterializedLfgGroupRequest)(nil), // 54: v1.RegisterMaterializedLfgGroupRequest + (*RegisterMaterializedLfgGroupResponse)(nil), // 55: v1.RegisterMaterializedLfgGroupResponse + (*UpdateMemberStateRequest)(nil), // 56: v1.UpdateMemberStateRequest + (*UpdateMemberStateResponse)(nil), // 57: v1.UpdateMemberStateResponse + (*PlayerStateSnapshot)(nil), // 58: v1.PlayerStateSnapshot + (*PlayerAuraSnapshot)(nil), // 59: v1.PlayerAuraSnapshot + (*BulkUpdateMemberStatesRequest)(nil), // 60: v1.BulkUpdateMemberStatesRequest + (*BulkUpdateMemberStatesResponse)(nil), // 61: v1.BulkUpdateMemberStatesResponse + (*ResetInstanceRequest)(nil), // 62: v1.ResetInstanceRequest + (*ResetInstanceResponse)(nil), // 63: v1.ResetInstanceResponse + (*SetInstanceBindExtensionRequest)(nil), // 64: v1.SetInstanceBindExtensionRequest + (*SetInstanceBindExtensionResponse)(nil), // 65: v1.SetInstanceBindExtensionResponse + (*GetGroupResponse_GroupMember)(nil), // 66: v1.GetGroupResponse.GroupMember + (*GetGroupResponse_Group)(nil), // 67: v1.GetGroupResponse.Group +} +var file_group_proto_depIdxs = []int32{ + 0, // 0: v1.InviteResponse.status:type_name -> v1.InviteResponse.Status + 1, // 1: v1.AcceptInviteResponse.status:type_name -> v1.AcceptInviteResponse.Status + 2, // 2: v1.DeclineInviteResponse.status:type_name -> v1.DeclineInviteResponse.Status + 67, // 3: v1.GetGroupResponse.group:type_name -> v1.GetGroupResponse.Group + 18, // 4: v1.GetMemberPlacementsResponse.placements:type_name -> v1.MemberPlacement + 3, // 5: v1.UninviteResponse.status:type_name -> v1.UninviteResponse.Status + 4, // 6: v1.SetDungeonDifficultyResponse.status:type_name -> v1.SetDungeonDifficultyResponse.Status + 5, // 7: v1.SetRaidDifficultyResponse.status:type_name -> v1.SetRaidDifficultyResponse.Status + 50, // 8: v1.RegisterAcceptedLfgGroupRequest.members:type_name -> v1.AcceptedLfgGroupMember + 53, // 9: v1.RegisterMaterializedLfgGroupRequest.members:type_name -> v1.MaterializedLfgGroupMember + 59, // 10: v1.PlayerStateSnapshot.auras:type_name -> v1.PlayerAuraSnapshot + 58, // 11: v1.BulkUpdateMemberStatesRequest.snapshots:type_name -> v1.PlayerStateSnapshot + 66, // 12: v1.GetGroupResponse.Group.members:type_name -> v1.GetGroupResponse.GroupMember + 6, // 13: v1.GroupService.Invite:input_type -> v1.InviteParams + 20, // 14: v1.GroupService.Uninvite:input_type -> v1.UninviteParams + 22, // 15: v1.GroupService.Leave:input_type -> v1.GroupLeaveParams + 24, // 16: v1.GroupService.ConvertToRaid:input_type -> v1.ConvertToRaidParams + 26, // 17: v1.GroupService.ChangeLeader:input_type -> v1.ChangeLeaderParams + 8, // 18: v1.GroupService.AcceptInvite:input_type -> v1.AcceptInviteParams + 10, // 19: v1.GroupService.DeclineInvite:input_type -> v1.DeclineInviteParams + 12, // 20: v1.GroupService.GetGroup:input_type -> v1.GetGroupRequest + 14, // 21: v1.GroupService.GetGroupByMember:input_type -> v1.GetGroupByMemberRequest + 15, // 22: v1.GroupService.GetGroupIDByPlayer:input_type -> v1.GetGroupIDByPlayerRequest + 17, // 23: v1.GroupService.GetMemberPlacements:input_type -> v1.GetMemberPlacementsRequest + 30, // 24: v1.GroupService.SetGroupTargetIcon:input_type -> v1.SetGroupTargetIconRequest + 34, // 25: v1.GroupService.SetLootMethod:input_type -> v1.SetLootMethodRequest + 36, // 26: v1.GroupService.SetDungeonDifficulty:input_type -> v1.SetDungeonDifficultyRequest + 38, // 27: v1.GroupService.SetRaidDifficulty:input_type -> v1.SetRaidDifficultyRequest + 28, // 28: v1.GroupService.SendMessage:input_type -> v1.SendGroupMessageParams + 40, // 29: v1.GroupService.StartReadyCheck:input_type -> v1.StartReadyCheckRequest + 42, // 30: v1.GroupService.SetReadyCheckMemberState:input_type -> v1.SetReadyCheckMemberStateRequest + 44, // 31: v1.GroupService.FinishReadyCheck:input_type -> v1.FinishReadyCheckRequest + 46, // 32: v1.GroupService.ChangeMemberSubGroup:input_type -> v1.ChangeMemberSubGroupRequest + 48, // 33: v1.GroupService.SetMemberFlags:input_type -> v1.SetMemberFlagsRequest + 51, // 34: v1.GroupService.RegisterAcceptedLfgGroup:input_type -> v1.RegisterAcceptedLfgGroupRequest + 54, // 35: v1.GroupService.RegisterMaterializedLfgGroup:input_type -> v1.RegisterMaterializedLfgGroupRequest + 56, // 36: v1.GroupService.UpdateMemberState:input_type -> v1.UpdateMemberStateRequest + 60, // 37: v1.GroupService.BulkUpdateMemberStates:input_type -> v1.BulkUpdateMemberStatesRequest + 62, // 38: v1.GroupService.ResetInstance:input_type -> v1.ResetInstanceRequest + 64, // 39: v1.GroupService.SetInstanceBindExtension:input_type -> v1.SetInstanceBindExtensionRequest + 7, // 40: v1.GroupService.Invite:output_type -> v1.InviteResponse + 21, // 41: v1.GroupService.Uninvite:output_type -> v1.UninviteResponse + 23, // 42: v1.GroupService.Leave:output_type -> v1.GroupLeaveResponse + 25, // 43: v1.GroupService.ConvertToRaid:output_type -> v1.ConvertToRaidResponse + 27, // 44: v1.GroupService.ChangeLeader:output_type -> v1.ChangeLeaderResponse + 9, // 45: v1.GroupService.AcceptInvite:output_type -> v1.AcceptInviteResponse + 11, // 46: v1.GroupService.DeclineInvite:output_type -> v1.DeclineInviteResponse + 13, // 47: v1.GroupService.GetGroup:output_type -> v1.GetGroupResponse + 13, // 48: v1.GroupService.GetGroupByMember:output_type -> v1.GetGroupResponse + 16, // 49: v1.GroupService.GetGroupIDByPlayer:output_type -> v1.GetGroupIDByPlayerResponse + 19, // 50: v1.GroupService.GetMemberPlacements:output_type -> v1.GetMemberPlacementsResponse + 31, // 51: v1.GroupService.SetGroupTargetIcon:output_type -> v1.SetGroupTargetIconResponse + 35, // 52: v1.GroupService.SetLootMethod:output_type -> v1.SetLootMethodResponse + 37, // 53: v1.GroupService.SetDungeonDifficulty:output_type -> v1.SetDungeonDifficultyResponse + 39, // 54: v1.GroupService.SetRaidDifficulty:output_type -> v1.SetRaidDifficultyResponse + 29, // 55: v1.GroupService.SendMessage:output_type -> v1.SendGroupMessageResponse + 41, // 56: v1.GroupService.StartReadyCheck:output_type -> v1.StartReadyCheckResponse + 43, // 57: v1.GroupService.SetReadyCheckMemberState:output_type -> v1.SetReadyCheckMemberStateResponse + 45, // 58: v1.GroupService.FinishReadyCheck:output_type -> v1.FinishReadyCheckResponse + 47, // 59: v1.GroupService.ChangeMemberSubGroup:output_type -> v1.ChangeMemberSubGroupResponse + 49, // 60: v1.GroupService.SetMemberFlags:output_type -> v1.SetMemberFlagsResponse + 52, // 61: v1.GroupService.RegisterAcceptedLfgGroup:output_type -> v1.RegisterAcceptedLfgGroupResponse + 55, // 62: v1.GroupService.RegisterMaterializedLfgGroup:output_type -> v1.RegisterMaterializedLfgGroupResponse + 57, // 63: v1.GroupService.UpdateMemberState:output_type -> v1.UpdateMemberStateResponse + 61, // 64: v1.GroupService.BulkUpdateMemberStates:output_type -> v1.BulkUpdateMemberStatesResponse + 63, // 65: v1.GroupService.ResetInstance:output_type -> v1.ResetInstanceResponse + 65, // 66: v1.GroupService.SetInstanceBindExtension:output_type -> v1.SetInstanceBindExtensionResponse + 40, // [40:67] is the sub-list for method output_type + 13, // [13:40] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_group_proto_init() } +func file_group_proto_init() { + if File_group_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptInviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptInviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclineInviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeclineInviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupByMemberRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupIDByPlayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupIDByPlayerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMemberPlacementsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberPlacement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMemberPlacementsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninviteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninviteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupLeaveParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupLeaveResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConvertToRaidParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ConvertToRaidResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeLeaderParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeLeaderResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGroupMessageParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGroupMessageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupTargetIconRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupTargetIconResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupTargetIconsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupTargetIconsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLootMethodRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLootMethodResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDungeonDifficultyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDungeonDifficultyResponse); i { case 0: return &v.state case 1: @@ -2673,8 +5840,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteResponse); i { + file_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRaidDifficultyRequest); i { case 0: return &v.state case 1: @@ -2685,8 +5852,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AcceptInviteParams); i { + file_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetRaidDifficultyResponse); i { case 0: return &v.state case 1: @@ -2697,8 +5864,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AcceptInviteResponse); i { + file_group_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartReadyCheckRequest); i { case 0: return &v.state case 1: @@ -2709,8 +5876,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupRequest); i { + file_group_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartReadyCheckResponse); i { case 0: return &v.state case 1: @@ -2721,8 +5888,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupResponse); i { + file_group_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetReadyCheckMemberStateRequest); i { case 0: return &v.state case 1: @@ -2733,8 +5900,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupByMemberRequest); i { + file_group_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetReadyCheckMemberStateResponse); i { case 0: return &v.state case 1: @@ -2745,8 +5912,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupIDByPlayerRequest); i { + file_group_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishReadyCheckRequest); i { case 0: return &v.state case 1: @@ -2757,8 +5924,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupIDByPlayerResponse); i { + file_group_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishReadyCheckResponse); i { case 0: return &v.state case 1: @@ -2769,8 +5936,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UninviteParams); i { + file_group_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeMemberSubGroupRequest); i { case 0: return &v.state case 1: @@ -2781,8 +5948,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UninviteResponse); i { + file_group_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChangeMemberSubGroupResponse); i { case 0: return &v.state case 1: @@ -2793,8 +5960,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupLeaveParams); i { + file_group_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMemberFlagsRequest); i { case 0: return &v.state case 1: @@ -2805,8 +5972,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupLeaveResponse); i { + file_group_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMemberFlagsResponse); i { case 0: return &v.state case 1: @@ -2817,8 +5984,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConvertToRaidParams); i { + file_group_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcceptedLfgGroupMember); i { case 0: return &v.state case 1: @@ -2829,8 +5996,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConvertToRaidResponse); i { + file_group_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterAcceptedLfgGroupRequest); i { case 0: return &v.state case 1: @@ -2841,8 +6008,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeLeaderParams); i { + file_group_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterAcceptedLfgGroupResponse); i { case 0: return &v.state case 1: @@ -2853,8 +6020,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeLeaderResponse); i { + file_group_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializedLfgGroupMember); i { case 0: return &v.state case 1: @@ -2865,8 +6032,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGroupMessageParams); i { + file_group_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterMaterializedLfgGroupRequest); i { case 0: return &v.state case 1: @@ -2877,8 +6044,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGroupMessageResponse); i { + file_group_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterMaterializedLfgGroupResponse); i { case 0: return &v.state case 1: @@ -2889,8 +6056,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupTargetIconRequest); i { + file_group_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMemberStateRequest); i { case 0: return &v.state case 1: @@ -2901,8 +6068,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupTargetIconResponse); i { + file_group_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateMemberStateResponse); i { case 0: return &v.state case 1: @@ -2913,8 +6080,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupTargetIconsRequest); i { + file_group_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerStateSnapshot); i { case 0: return &v.state case 1: @@ -2925,8 +6092,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupTargetIconsResponse); i { + file_group_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PlayerAuraSnapshot); i { case 0: return &v.state case 1: @@ -2937,8 +6104,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLootMethodRequest); i { + file_group_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkUpdateMemberStatesRequest); i { case 0: return &v.state case 1: @@ -2949,8 +6116,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLootMethodResponse); i { + file_group_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BulkUpdateMemberStatesResponse); i { case 0: return &v.state case 1: @@ -2961,8 +6128,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDungeonDifficultyRequest); i { + file_group_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResetInstanceRequest); i { case 0: return &v.state case 1: @@ -2973,8 +6140,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDungeonDifficultyResponse); i { + file_group_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResetInstanceResponse); i { case 0: return &v.state case 1: @@ -2985,8 +6152,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRaidDifficultyRequest); i { + file_group_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetInstanceBindExtensionRequest); i { case 0: return &v.state case 1: @@ -2997,8 +6164,8 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetRaidDifficultyResponse); i { + file_group_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetInstanceBindExtensionResponse); i { case 0: return &v.state case 1: @@ -3009,7 +6176,7 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_group_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupResponse_GroupMember); i { case 0: return &v.state @@ -3021,7 +6188,7 @@ func file_group_proto_init() { return nil } } - file_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_group_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupResponse_Group); i { case 0: return &v.state @@ -3034,13 +6201,15 @@ func file_group_proto_init() { } } } + file_group_proto_msgTypes[50].OneofWrappers = []interface{}{} + file_group_proto_msgTypes[52].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_group_proto_rawDesc, - NumEnums: 5, - NumMessages: 31, + NumEnums: 6, + NumMessages: 62, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/group/pb/group_grpc.pb.go b/gen/group/pb/group_grpc.pb.go index 5142fc3..58a1796 100644 --- a/gen/group/pb/group_grpc.pb.go +++ b/gen/group/pb/group_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: group.proto package pb @@ -19,20 +19,33 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - GroupService_Invite_FullMethodName = "/v1.GroupService/Invite" - GroupService_Uninvite_FullMethodName = "/v1.GroupService/Uninvite" - GroupService_Leave_FullMethodName = "/v1.GroupService/Leave" - GroupService_ConvertToRaid_FullMethodName = "/v1.GroupService/ConvertToRaid" - GroupService_ChangeLeader_FullMethodName = "/v1.GroupService/ChangeLeader" - GroupService_AcceptInvite_FullMethodName = "/v1.GroupService/AcceptInvite" - GroupService_GetGroup_FullMethodName = "/v1.GroupService/GetGroup" - GroupService_GetGroupByMember_FullMethodName = "/v1.GroupService/GetGroupByMember" - GroupService_GetGroupIDByPlayer_FullMethodName = "/v1.GroupService/GetGroupIDByPlayer" - GroupService_SetGroupTargetIcon_FullMethodName = "/v1.GroupService/SetGroupTargetIcon" - GroupService_SetLootMethod_FullMethodName = "/v1.GroupService/SetLootMethod" - GroupService_SetDungeonDifficulty_FullMethodName = "/v1.GroupService/SetDungeonDifficulty" - GroupService_SetRaidDifficulty_FullMethodName = "/v1.GroupService/SetRaidDifficulty" - GroupService_SendMessage_FullMethodName = "/v1.GroupService/SendMessage" + GroupService_Invite_FullMethodName = "/v1.GroupService/Invite" + GroupService_Uninvite_FullMethodName = "/v1.GroupService/Uninvite" + GroupService_Leave_FullMethodName = "/v1.GroupService/Leave" + GroupService_ConvertToRaid_FullMethodName = "/v1.GroupService/ConvertToRaid" + GroupService_ChangeLeader_FullMethodName = "/v1.GroupService/ChangeLeader" + GroupService_AcceptInvite_FullMethodName = "/v1.GroupService/AcceptInvite" + GroupService_DeclineInvite_FullMethodName = "/v1.GroupService/DeclineInvite" + GroupService_GetGroup_FullMethodName = "/v1.GroupService/GetGroup" + GroupService_GetGroupByMember_FullMethodName = "/v1.GroupService/GetGroupByMember" + GroupService_GetGroupIDByPlayer_FullMethodName = "/v1.GroupService/GetGroupIDByPlayer" + GroupService_GetMemberPlacements_FullMethodName = "/v1.GroupService/GetMemberPlacements" + GroupService_SetGroupTargetIcon_FullMethodName = "/v1.GroupService/SetGroupTargetIcon" + GroupService_SetLootMethod_FullMethodName = "/v1.GroupService/SetLootMethod" + GroupService_SetDungeonDifficulty_FullMethodName = "/v1.GroupService/SetDungeonDifficulty" + GroupService_SetRaidDifficulty_FullMethodName = "/v1.GroupService/SetRaidDifficulty" + GroupService_SendMessage_FullMethodName = "/v1.GroupService/SendMessage" + GroupService_StartReadyCheck_FullMethodName = "/v1.GroupService/StartReadyCheck" + GroupService_SetReadyCheckMemberState_FullMethodName = "/v1.GroupService/SetReadyCheckMemberState" + GroupService_FinishReadyCheck_FullMethodName = "/v1.GroupService/FinishReadyCheck" + GroupService_ChangeMemberSubGroup_FullMethodName = "/v1.GroupService/ChangeMemberSubGroup" + GroupService_SetMemberFlags_FullMethodName = "/v1.GroupService/SetMemberFlags" + GroupService_RegisterAcceptedLfgGroup_FullMethodName = "/v1.GroupService/RegisterAcceptedLfgGroup" + GroupService_RegisterMaterializedLfgGroup_FullMethodName = "/v1.GroupService/RegisterMaterializedLfgGroup" + GroupService_UpdateMemberState_FullMethodName = "/v1.GroupService/UpdateMemberState" + GroupService_BulkUpdateMemberStates_FullMethodName = "/v1.GroupService/BulkUpdateMemberStates" + GroupService_ResetInstance_FullMethodName = "/v1.GroupService/ResetInstance" + GroupService_SetInstanceBindExtension_FullMethodName = "/v1.GroupService/SetInstanceBindExtension" ) // GroupServiceClient is the client API for GroupService service. @@ -45,14 +58,27 @@ type GroupServiceClient interface { ConvertToRaid(ctx context.Context, in *ConvertToRaidParams, opts ...grpc.CallOption) (*ConvertToRaidResponse, error) ChangeLeader(ctx context.Context, in *ChangeLeaderParams, opts ...grpc.CallOption) (*ChangeLeaderResponse, error) AcceptInvite(ctx context.Context, in *AcceptInviteParams, opts ...grpc.CallOption) (*AcceptInviteResponse, error) + DeclineInvite(ctx context.Context, in *DeclineInviteParams, opts ...grpc.CallOption) (*DeclineInviteResponse, error) GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*GetGroupResponse, error) GetGroupByMember(ctx context.Context, in *GetGroupByMemberRequest, opts ...grpc.CallOption) (*GetGroupResponse, error) GetGroupIDByPlayer(ctx context.Context, in *GetGroupIDByPlayerRequest, opts ...grpc.CallOption) (*GetGroupIDByPlayerResponse, error) + GetMemberPlacements(ctx context.Context, in *GetMemberPlacementsRequest, opts ...grpc.CallOption) (*GetMemberPlacementsResponse, error) SetGroupTargetIcon(ctx context.Context, in *SetGroupTargetIconRequest, opts ...grpc.CallOption) (*SetGroupTargetIconResponse, error) SetLootMethod(ctx context.Context, in *SetLootMethodRequest, opts ...grpc.CallOption) (*SetLootMethodResponse, error) SetDungeonDifficulty(ctx context.Context, in *SetDungeonDifficultyRequest, opts ...grpc.CallOption) (*SetDungeonDifficultyResponse, error) SetRaidDifficulty(ctx context.Context, in *SetRaidDifficultyRequest, opts ...grpc.CallOption) (*SetRaidDifficultyResponse, error) SendMessage(ctx context.Context, in *SendGroupMessageParams, opts ...grpc.CallOption) (*SendGroupMessageResponse, error) + StartReadyCheck(ctx context.Context, in *StartReadyCheckRequest, opts ...grpc.CallOption) (*StartReadyCheckResponse, error) + SetReadyCheckMemberState(ctx context.Context, in *SetReadyCheckMemberStateRequest, opts ...grpc.CallOption) (*SetReadyCheckMemberStateResponse, error) + FinishReadyCheck(ctx context.Context, in *FinishReadyCheckRequest, opts ...grpc.CallOption) (*FinishReadyCheckResponse, error) + ChangeMemberSubGroup(ctx context.Context, in *ChangeMemberSubGroupRequest, opts ...grpc.CallOption) (*ChangeMemberSubGroupResponse, error) + SetMemberFlags(ctx context.Context, in *SetMemberFlagsRequest, opts ...grpc.CallOption) (*SetMemberFlagsResponse, error) + RegisterAcceptedLfgGroup(ctx context.Context, in *RegisterAcceptedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterAcceptedLfgGroupResponse, error) + RegisterMaterializedLfgGroup(ctx context.Context, in *RegisterMaterializedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterMaterializedLfgGroupResponse, error) + UpdateMemberState(ctx context.Context, in *UpdateMemberStateRequest, opts ...grpc.CallOption) (*UpdateMemberStateResponse, error) + BulkUpdateMemberStates(ctx context.Context, in *BulkUpdateMemberStatesRequest, opts ...grpc.CallOption) (*BulkUpdateMemberStatesResponse, error) + ResetInstance(ctx context.Context, in *ResetInstanceRequest, opts ...grpc.CallOption) (*ResetInstanceResponse, error) + SetInstanceBindExtension(ctx context.Context, in *SetInstanceBindExtensionRequest, opts ...grpc.CallOption) (*SetInstanceBindExtensionResponse, error) } type groupServiceClient struct { @@ -117,6 +143,15 @@ func (c *groupServiceClient) AcceptInvite(ctx context.Context, in *AcceptInviteP return out, nil } +func (c *groupServiceClient) DeclineInvite(ctx context.Context, in *DeclineInviteParams, opts ...grpc.CallOption) (*DeclineInviteResponse, error) { + out := new(DeclineInviteResponse) + err := c.cc.Invoke(ctx, GroupService_DeclineInvite_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *groupServiceClient) GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*GetGroupResponse, error) { out := new(GetGroupResponse) err := c.cc.Invoke(ctx, GroupService_GetGroup_FullMethodName, in, out, opts...) @@ -144,6 +179,15 @@ func (c *groupServiceClient) GetGroupIDByPlayer(ctx context.Context, in *GetGrou return out, nil } +func (c *groupServiceClient) GetMemberPlacements(ctx context.Context, in *GetMemberPlacementsRequest, opts ...grpc.CallOption) (*GetMemberPlacementsResponse, error) { + out := new(GetMemberPlacementsResponse) + err := c.cc.Invoke(ctx, GroupService_GetMemberPlacements_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *groupServiceClient) SetGroupTargetIcon(ctx context.Context, in *SetGroupTargetIconRequest, opts ...grpc.CallOption) (*SetGroupTargetIconResponse, error) { out := new(SetGroupTargetIconResponse) err := c.cc.Invoke(ctx, GroupService_SetGroupTargetIcon_FullMethodName, in, out, opts...) @@ -189,6 +233,105 @@ func (c *groupServiceClient) SendMessage(ctx context.Context, in *SendGroupMessa return out, nil } +func (c *groupServiceClient) StartReadyCheck(ctx context.Context, in *StartReadyCheckRequest, opts ...grpc.CallOption) (*StartReadyCheckResponse, error) { + out := new(StartReadyCheckResponse) + err := c.cc.Invoke(ctx, GroupService_StartReadyCheck_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) SetReadyCheckMemberState(ctx context.Context, in *SetReadyCheckMemberStateRequest, opts ...grpc.CallOption) (*SetReadyCheckMemberStateResponse, error) { + out := new(SetReadyCheckMemberStateResponse) + err := c.cc.Invoke(ctx, GroupService_SetReadyCheckMemberState_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) FinishReadyCheck(ctx context.Context, in *FinishReadyCheckRequest, opts ...grpc.CallOption) (*FinishReadyCheckResponse, error) { + out := new(FinishReadyCheckResponse) + err := c.cc.Invoke(ctx, GroupService_FinishReadyCheck_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) ChangeMemberSubGroup(ctx context.Context, in *ChangeMemberSubGroupRequest, opts ...grpc.CallOption) (*ChangeMemberSubGroupResponse, error) { + out := new(ChangeMemberSubGroupResponse) + err := c.cc.Invoke(ctx, GroupService_ChangeMemberSubGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) SetMemberFlags(ctx context.Context, in *SetMemberFlagsRequest, opts ...grpc.CallOption) (*SetMemberFlagsResponse, error) { + out := new(SetMemberFlagsResponse) + err := c.cc.Invoke(ctx, GroupService_SetMemberFlags_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) RegisterAcceptedLfgGroup(ctx context.Context, in *RegisterAcceptedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterAcceptedLfgGroupResponse, error) { + out := new(RegisterAcceptedLfgGroupResponse) + err := c.cc.Invoke(ctx, GroupService_RegisterAcceptedLfgGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) RegisterMaterializedLfgGroup(ctx context.Context, in *RegisterMaterializedLfgGroupRequest, opts ...grpc.CallOption) (*RegisterMaterializedLfgGroupResponse, error) { + out := new(RegisterMaterializedLfgGroupResponse) + err := c.cc.Invoke(ctx, GroupService_RegisterMaterializedLfgGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) UpdateMemberState(ctx context.Context, in *UpdateMemberStateRequest, opts ...grpc.CallOption) (*UpdateMemberStateResponse, error) { + out := new(UpdateMemberStateResponse) + err := c.cc.Invoke(ctx, GroupService_UpdateMemberState_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) BulkUpdateMemberStates(ctx context.Context, in *BulkUpdateMemberStatesRequest, opts ...grpc.CallOption) (*BulkUpdateMemberStatesResponse, error) { + out := new(BulkUpdateMemberStatesResponse) + err := c.cc.Invoke(ctx, GroupService_BulkUpdateMemberStates_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) ResetInstance(ctx context.Context, in *ResetInstanceRequest, opts ...grpc.CallOption) (*ResetInstanceResponse, error) { + out := new(ResetInstanceResponse) + err := c.cc.Invoke(ctx, GroupService_ResetInstance_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupServiceClient) SetInstanceBindExtension(ctx context.Context, in *SetInstanceBindExtensionRequest, opts ...grpc.CallOption) (*SetInstanceBindExtensionResponse, error) { + out := new(SetInstanceBindExtensionResponse) + err := c.cc.Invoke(ctx, GroupService_SetInstanceBindExtension_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GroupServiceServer is the server API for GroupService service. // All implementations must embed UnimplementedGroupServiceServer // for forward compatibility @@ -199,14 +342,27 @@ type GroupServiceServer interface { ConvertToRaid(context.Context, *ConvertToRaidParams) (*ConvertToRaidResponse, error) ChangeLeader(context.Context, *ChangeLeaderParams) (*ChangeLeaderResponse, error) AcceptInvite(context.Context, *AcceptInviteParams) (*AcceptInviteResponse, error) + DeclineInvite(context.Context, *DeclineInviteParams) (*DeclineInviteResponse, error) GetGroup(context.Context, *GetGroupRequest) (*GetGroupResponse, error) GetGroupByMember(context.Context, *GetGroupByMemberRequest) (*GetGroupResponse, error) GetGroupIDByPlayer(context.Context, *GetGroupIDByPlayerRequest) (*GetGroupIDByPlayerResponse, error) + GetMemberPlacements(context.Context, *GetMemberPlacementsRequest) (*GetMemberPlacementsResponse, error) SetGroupTargetIcon(context.Context, *SetGroupTargetIconRequest) (*SetGroupTargetIconResponse, error) SetLootMethod(context.Context, *SetLootMethodRequest) (*SetLootMethodResponse, error) SetDungeonDifficulty(context.Context, *SetDungeonDifficultyRequest) (*SetDungeonDifficultyResponse, error) SetRaidDifficulty(context.Context, *SetRaidDifficultyRequest) (*SetRaidDifficultyResponse, error) SendMessage(context.Context, *SendGroupMessageParams) (*SendGroupMessageResponse, error) + StartReadyCheck(context.Context, *StartReadyCheckRequest) (*StartReadyCheckResponse, error) + SetReadyCheckMemberState(context.Context, *SetReadyCheckMemberStateRequest) (*SetReadyCheckMemberStateResponse, error) + FinishReadyCheck(context.Context, *FinishReadyCheckRequest) (*FinishReadyCheckResponse, error) + ChangeMemberSubGroup(context.Context, *ChangeMemberSubGroupRequest) (*ChangeMemberSubGroupResponse, error) + SetMemberFlags(context.Context, *SetMemberFlagsRequest) (*SetMemberFlagsResponse, error) + RegisterAcceptedLfgGroup(context.Context, *RegisterAcceptedLfgGroupRequest) (*RegisterAcceptedLfgGroupResponse, error) + RegisterMaterializedLfgGroup(context.Context, *RegisterMaterializedLfgGroupRequest) (*RegisterMaterializedLfgGroupResponse, error) + UpdateMemberState(context.Context, *UpdateMemberStateRequest) (*UpdateMemberStateResponse, error) + BulkUpdateMemberStates(context.Context, *BulkUpdateMemberStatesRequest) (*BulkUpdateMemberStatesResponse, error) + ResetInstance(context.Context, *ResetInstanceRequest) (*ResetInstanceResponse, error) + SetInstanceBindExtension(context.Context, *SetInstanceBindExtensionRequest) (*SetInstanceBindExtensionResponse, error) mustEmbedUnimplementedGroupServiceServer() } @@ -232,6 +388,9 @@ func (UnimplementedGroupServiceServer) ChangeLeader(context.Context, *ChangeLead func (UnimplementedGroupServiceServer) AcceptInvite(context.Context, *AcceptInviteParams) (*AcceptInviteResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method AcceptInvite not implemented") } +func (UnimplementedGroupServiceServer) DeclineInvite(context.Context, *DeclineInviteParams) (*DeclineInviteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeclineInvite not implemented") +} func (UnimplementedGroupServiceServer) GetGroup(context.Context, *GetGroupRequest) (*GetGroupResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") } @@ -241,6 +400,9 @@ func (UnimplementedGroupServiceServer) GetGroupByMember(context.Context, *GetGro func (UnimplementedGroupServiceServer) GetGroupIDByPlayer(context.Context, *GetGroupIDByPlayerRequest) (*GetGroupIDByPlayerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroupIDByPlayer not implemented") } +func (UnimplementedGroupServiceServer) GetMemberPlacements(context.Context, *GetMemberPlacementsRequest) (*GetMemberPlacementsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMemberPlacements not implemented") +} func (UnimplementedGroupServiceServer) SetGroupTargetIcon(context.Context, *SetGroupTargetIconRequest) (*SetGroupTargetIconResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetGroupTargetIcon not implemented") } @@ -256,6 +418,39 @@ func (UnimplementedGroupServiceServer) SetRaidDifficulty(context.Context, *SetRa func (UnimplementedGroupServiceServer) SendMessage(context.Context, *SendGroupMessageParams) (*SendGroupMessageResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented") } +func (UnimplementedGroupServiceServer) StartReadyCheck(context.Context, *StartReadyCheckRequest) (*StartReadyCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method StartReadyCheck not implemented") +} +func (UnimplementedGroupServiceServer) SetReadyCheckMemberState(context.Context, *SetReadyCheckMemberStateRequest) (*SetReadyCheckMemberStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetReadyCheckMemberState not implemented") +} +func (UnimplementedGroupServiceServer) FinishReadyCheck(context.Context, *FinishReadyCheckRequest) (*FinishReadyCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinishReadyCheck not implemented") +} +func (UnimplementedGroupServiceServer) ChangeMemberSubGroup(context.Context, *ChangeMemberSubGroupRequest) (*ChangeMemberSubGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ChangeMemberSubGroup not implemented") +} +func (UnimplementedGroupServiceServer) SetMemberFlags(context.Context, *SetMemberFlagsRequest) (*SetMemberFlagsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMemberFlags not implemented") +} +func (UnimplementedGroupServiceServer) RegisterAcceptedLfgGroup(context.Context, *RegisterAcceptedLfgGroupRequest) (*RegisterAcceptedLfgGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterAcceptedLfgGroup not implemented") +} +func (UnimplementedGroupServiceServer) RegisterMaterializedLfgGroup(context.Context, *RegisterMaterializedLfgGroupRequest) (*RegisterMaterializedLfgGroupResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterMaterializedLfgGroup not implemented") +} +func (UnimplementedGroupServiceServer) UpdateMemberState(context.Context, *UpdateMemberStateRequest) (*UpdateMemberStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateMemberState not implemented") +} +func (UnimplementedGroupServiceServer) BulkUpdateMemberStates(context.Context, *BulkUpdateMemberStatesRequest) (*BulkUpdateMemberStatesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BulkUpdateMemberStates not implemented") +} +func (UnimplementedGroupServiceServer) ResetInstance(context.Context, *ResetInstanceRequest) (*ResetInstanceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResetInstance not implemented") +} +func (UnimplementedGroupServiceServer) SetInstanceBindExtension(context.Context, *SetInstanceBindExtensionRequest) (*SetInstanceBindExtensionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetInstanceBindExtension not implemented") +} func (UnimplementedGroupServiceServer) mustEmbedUnimplementedGroupServiceServer() {} // UnsafeGroupServiceServer may be embedded to opt out of forward compatibility for this service. @@ -377,6 +572,24 @@ func _GroupService_AcceptInvite_Handler(srv interface{}, ctx context.Context, de return interceptor(ctx, in, info, handler) } +func _GroupService_DeclineInvite_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeclineInviteParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).DeclineInvite(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_DeclineInvite_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).DeclineInvite(ctx, req.(*DeclineInviteParams)) + } + return interceptor(ctx, in, info, handler) +} + func _GroupService_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetGroupRequest) if err := dec(in); err != nil { @@ -431,6 +644,24 @@ func _GroupService_GetGroupIDByPlayer_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _GroupService_GetMemberPlacements_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMemberPlacementsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).GetMemberPlacements(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_GetMemberPlacements_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).GetMemberPlacements(ctx, req.(*GetMemberPlacementsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _GroupService_SetGroupTargetIcon_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetGroupTargetIconRequest) if err := dec(in); err != nil { @@ -521,6 +752,204 @@ func _GroupService_SendMessage_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _GroupService_StartReadyCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(StartReadyCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).StartReadyCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_StartReadyCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).StartReadyCheck(ctx, req.(*StartReadyCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_SetReadyCheckMemberState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetReadyCheckMemberStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).SetReadyCheckMemberState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_SetReadyCheckMemberState_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).SetReadyCheckMemberState(ctx, req.(*SetReadyCheckMemberStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_FinishReadyCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FinishReadyCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).FinishReadyCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_FinishReadyCheck_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).FinishReadyCheck(ctx, req.(*FinishReadyCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_ChangeMemberSubGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ChangeMemberSubGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).ChangeMemberSubGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_ChangeMemberSubGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).ChangeMemberSubGroup(ctx, req.(*ChangeMemberSubGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_SetMemberFlags_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetMemberFlagsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).SetMemberFlags(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_SetMemberFlags_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).SetMemberFlags(ctx, req.(*SetMemberFlagsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_RegisterAcceptedLfgGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterAcceptedLfgGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).RegisterAcceptedLfgGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_RegisterAcceptedLfgGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).RegisterAcceptedLfgGroup(ctx, req.(*RegisterAcceptedLfgGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_RegisterMaterializedLfgGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterMaterializedLfgGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).RegisterMaterializedLfgGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_RegisterMaterializedLfgGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).RegisterMaterializedLfgGroup(ctx, req.(*RegisterMaterializedLfgGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_UpdateMemberState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateMemberStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).UpdateMemberState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_UpdateMemberState_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).UpdateMemberState(ctx, req.(*UpdateMemberStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_BulkUpdateMemberStates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BulkUpdateMemberStatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).BulkUpdateMemberStates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_BulkUpdateMemberStates_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).BulkUpdateMemberStates(ctx, req.(*BulkUpdateMemberStatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_ResetInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResetInstanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).ResetInstance(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_ResetInstance_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).ResetInstance(ctx, req.(*ResetInstanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupService_SetInstanceBindExtension_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetInstanceBindExtensionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServiceServer).SetInstanceBindExtension(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GroupService_SetInstanceBindExtension_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServiceServer).SetInstanceBindExtension(ctx, req.(*SetInstanceBindExtensionRequest)) + } + return interceptor(ctx, in, info, handler) +} + // GroupService_ServiceDesc is the grpc.ServiceDesc for GroupService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -552,6 +981,10 @@ var GroupService_ServiceDesc = grpc.ServiceDesc{ MethodName: "AcceptInvite", Handler: _GroupService_AcceptInvite_Handler, }, + { + MethodName: "DeclineInvite", + Handler: _GroupService_DeclineInvite_Handler, + }, { MethodName: "GetGroup", Handler: _GroupService_GetGroup_Handler, @@ -564,6 +997,10 @@ var GroupService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetGroupIDByPlayer", Handler: _GroupService_GetGroupIDByPlayer_Handler, }, + { + MethodName: "GetMemberPlacements", + Handler: _GroupService_GetMemberPlacements_Handler, + }, { MethodName: "SetGroupTargetIcon", Handler: _GroupService_SetGroupTargetIcon_Handler, @@ -584,6 +1021,50 @@ var GroupService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SendMessage", Handler: _GroupService_SendMessage_Handler, }, + { + MethodName: "StartReadyCheck", + Handler: _GroupService_StartReadyCheck_Handler, + }, + { + MethodName: "SetReadyCheckMemberState", + Handler: _GroupService_SetReadyCheckMemberState_Handler, + }, + { + MethodName: "FinishReadyCheck", + Handler: _GroupService_FinishReadyCheck_Handler, + }, + { + MethodName: "ChangeMemberSubGroup", + Handler: _GroupService_ChangeMemberSubGroup_Handler, + }, + { + MethodName: "SetMemberFlags", + Handler: _GroupService_SetMemberFlags_Handler, + }, + { + MethodName: "RegisterAcceptedLfgGroup", + Handler: _GroupService_RegisterAcceptedLfgGroup_Handler, + }, + { + MethodName: "RegisterMaterializedLfgGroup", + Handler: _GroupService_RegisterMaterializedLfgGroup_Handler, + }, + { + MethodName: "UpdateMemberState", + Handler: _GroupService_UpdateMemberState_Handler, + }, + { + MethodName: "BulkUpdateMemberStates", + Handler: _GroupService_BulkUpdateMemberStates_Handler, + }, + { + MethodName: "ResetInstance", + Handler: _GroupService_ResetInstance_Handler, + }, + { + MethodName: "SetInstanceBindExtension", + Handler: _GroupService_SetInstanceBindExtension_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group.proto", diff --git a/gen/guid/pb/guid.pb.go b/gen/guid/pb/guid.pb.go index d3d48c1..18512b5 100644 --- a/gen/guid/pb/guid.pb.go +++ b/gen/guid/pb/guid.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: guid.proto package pb diff --git a/gen/guid/pb/guid_grpc.pb.go b/gen/guid/pb/guid_grpc.pb.go index e27c655..7b71658 100644 --- a/gen/guid/pb/guid_grpc.pb.go +++ b/gen/guid/pb/guid_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: guid.proto package pb diff --git a/gen/guilds/pb/guilds.pb.go b/gen/guilds/pb/guilds.pb.go index 6f96a24..9c456e6 100644 --- a/gen/guilds/pb/guilds.pb.go +++ b/gen/guilds/pb/guilds.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: guilds.proto package pb @@ -66,6 +66,207 @@ func (InviteMemberResponse_Status) EnumDescriptor() ([]byte, []int) { return file_guilds_proto_rawDescGZIP(), []int{5, 0} } +type OfferGuildPetitionResponse_Status int32 + +const ( + OfferGuildPetitionResponse_Ok OfferGuildPetitionResponse_Status = 0 + OfferGuildPetitionResponse_NotFound OfferGuildPetitionResponse_Status = 1 + OfferGuildPetitionResponse_NotOwner OfferGuildPetitionResponse_Status = 2 + OfferGuildPetitionResponse_TargetNotFound OfferGuildPetitionResponse_Status = 3 + OfferGuildPetitionResponse_TargetAlreadyInGuild OfferGuildPetitionResponse_Status = 4 + OfferGuildPetitionResponse_TargetAlreadyInvited OfferGuildPetitionResponse_Status = 5 + OfferGuildPetitionResponse_Failed OfferGuildPetitionResponse_Status = 6 +) + +// Enum value maps for OfferGuildPetitionResponse_Status. +var ( + OfferGuildPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "NotFound", + 2: "NotOwner", + 3: "TargetNotFound", + 4: "TargetAlreadyInGuild", + 5: "TargetAlreadyInvited", + 6: "Failed", + } + OfferGuildPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "NotFound": 1, + "NotOwner": 2, + "TargetNotFound": 3, + "TargetAlreadyInGuild": 4, + "TargetAlreadyInvited": 5, + "Failed": 6, + } +) + +func (x OfferGuildPetitionResponse_Status) Enum() *OfferGuildPetitionResponse_Status { + p := new(OfferGuildPetitionResponse_Status) + *p = x + return p +} + +func (x OfferGuildPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (OfferGuildPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_guilds_proto_enumTypes[1].Descriptor() +} + +func (OfferGuildPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_guilds_proto_enumTypes[1] +} + +func (x OfferGuildPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use OfferGuildPetitionResponse_Status.Descriptor instead. +func (OfferGuildPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{33, 0} +} + +type SignGuildPetitionResponse_Status int32 + +const ( + SignGuildPetitionResponse_Ok SignGuildPetitionResponse_Status = 0 + SignGuildPetitionResponse_AlreadySigned SignGuildPetitionResponse_Status = 1 + SignGuildPetitionResponse_AlreadyInGuild SignGuildPetitionResponse_Status = 2 + SignGuildPetitionResponse_CantSignOwn SignGuildPetitionResponse_Status = 3 + SignGuildPetitionResponse_NotServer SignGuildPetitionResponse_Status = 4 + SignGuildPetitionResponse_NotFound SignGuildPetitionResponse_Status = 5 + SignGuildPetitionResponse_Full SignGuildPetitionResponse_Status = 6 + SignGuildPetitionResponse_Failed SignGuildPetitionResponse_Status = 7 + SignGuildPetitionResponse_AlreadyInvited SignGuildPetitionResponse_Status = 8 +) + +// Enum value maps for SignGuildPetitionResponse_Status. +var ( + SignGuildPetitionResponse_Status_name = map[int32]string{ + 0: "Ok", + 1: "AlreadySigned", + 2: "AlreadyInGuild", + 3: "CantSignOwn", + 4: "NotServer", + 5: "NotFound", + 6: "Full", + 7: "Failed", + 8: "AlreadyInvited", + } + SignGuildPetitionResponse_Status_value = map[string]int32{ + "Ok": 0, + "AlreadySigned": 1, + "AlreadyInGuild": 2, + "CantSignOwn": 3, + "NotServer": 4, + "NotFound": 5, + "Full": 6, + "Failed": 7, + "AlreadyInvited": 8, + } +) + +func (x SignGuildPetitionResponse_Status) Enum() *SignGuildPetitionResponse_Status { + p := new(SignGuildPetitionResponse_Status) + *p = x + return p +} + +func (x SignGuildPetitionResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SignGuildPetitionResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_guilds_proto_enumTypes[2].Descriptor() +} + +func (SignGuildPetitionResponse_Status) Type() protoreflect.EnumType { + return &file_guilds_proto_enumTypes[2] +} + +func (x SignGuildPetitionResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SignGuildPetitionResponse_Status.Descriptor instead. +func (SignGuildPetitionResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{35, 0} +} + +type GuildBankStatus_Status int32 + +const ( + GuildBankStatus_Ok GuildBankStatus_Status = 0 + GuildBankStatus_Failed GuildBankStatus_Status = 1 + GuildBankStatus_GuildNotFound GuildBankStatus_Status = 2 + GuildBankStatus_NotInGuild GuildBankStatus_Status = 3 + GuildBankStatus_NotEnoughRights GuildBankStatus_Status = 4 + GuildBankStatus_InvalidTab GuildBankStatus_Status = 5 + GuildBankStatus_InvalidSlot GuildBankStatus_Status = 6 + GuildBankStatus_NotEnoughMoney GuildBankStatus_Status = 7 + GuildBankStatus_BankFull GuildBankStatus_Status = 8 + GuildBankStatus_WithdrawLimit GuildBankStatus_Status = 9 + GuildBankStatus_ItemNotFound GuildBankStatus_Status = 10 +) + +// Enum value maps for GuildBankStatus_Status. +var ( + GuildBankStatus_Status_name = map[int32]string{ + 0: "Ok", + 1: "Failed", + 2: "GuildNotFound", + 3: "NotInGuild", + 4: "NotEnoughRights", + 5: "InvalidTab", + 6: "InvalidSlot", + 7: "NotEnoughMoney", + 8: "BankFull", + 9: "WithdrawLimit", + 10: "ItemNotFound", + } + GuildBankStatus_Status_value = map[string]int32{ + "Ok": 0, + "Failed": 1, + "GuildNotFound": 2, + "NotInGuild": 3, + "NotEnoughRights": 4, + "InvalidTab": 5, + "InvalidSlot": 6, + "NotEnoughMoney": 7, + "BankFull": 8, + "WithdrawLimit": 9, + "ItemNotFound": 10, + } +) + +func (x GuildBankStatus_Status) Enum() *GuildBankStatus_Status { + p := new(GuildBankStatus_Status) + *p = x + return p +} + +func (x GuildBankStatus_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GuildBankStatus_Status) Descriptor() protoreflect.EnumDescriptor { + return file_guilds_proto_enumTypes[3].Descriptor() +} + +func (GuildBankStatus_Status) Type() protoreflect.EnumType { + return &file_guilds_proto_enumTypes[3] +} + +func (x GuildBankStatus_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GuildBankStatus_Status.Descriptor instead. +func (GuildBankStatus_Status) EnumDescriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{39, 0} +} + type GetInfoParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -363,11 +564,13 @@ type InviteMemberParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Inviter uint64 `protobuf:"varint,3,opt,name=inviter,proto3" json:"inviter,omitempty"` - Invitee uint64 `protobuf:"varint,4,opt,name=invitee,proto3" json:"invitee,omitempty"` - InviteeName string `protobuf:"bytes,5,opt,name=inviteeName,proto3" json:"inviteeName,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Inviter uint64 `protobuf:"varint,3,opt,name=inviter,proto3" json:"inviter,omitempty"` + Invitee uint64 `protobuf:"varint,4,opt,name=invitee,proto3" json:"invitee,omitempty"` + InviteeName string `protobuf:"bytes,5,opt,name=inviteeName,proto3" json:"inviteeName,omitempty"` + InviteeRace uint32 `protobuf:"varint,6,opt,name=inviteeRace,proto3" json:"inviteeRace,omitempty"` + AllowCrossFaction bool `protobuf:"varint,7,opt,name=allowCrossFaction,proto3" json:"allowCrossFaction,omitempty"` } func (x *InviteMemberParams) Reset() { @@ -437,6 +640,20 @@ func (x *InviteMemberParams) GetInviteeName() string { return "" } +func (x *InviteMemberParams) GetInviteeRace() uint32 { + if x != nil { + return x.InviteeRace + } + return 0 +} + +func (x *InviteMemberParams) GetAllowCrossFaction() bool { + if x != nil { + return x.AllowCrossFaction + } + return false +} + type InviteMemberResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -489,9 +706,10 @@ type InviteAcceptedParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - Character *InviteAcceptedParams_Character `protobuf:"bytes,3,opt,name=character,proto3" json:"character,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + Character *InviteAcceptedParams_Character `protobuf:"bytes,3,opt,name=character,proto3" json:"character,omitempty"` + AllowCrossFaction bool `protobuf:"varint,4,opt,name=allowCrossFaction,proto3" json:"allowCrossFaction,omitempty"` } func (x *InviteAcceptedParams) Reset() { @@ -547,6 +765,13 @@ func (x *InviteAcceptedParams) GetCharacter() *InviteAcceptedParams_Character { return nil } +func (x *InviteAcceptedParams) GetAllowCrossFaction() bool { + if x != nil { + return x.AllowCrossFaction + } + return false +} + type InviteAcceptedResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1197,13 +1422,14 @@ type RankUpdateParams struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - ChangerGUID uint64 `protobuf:"varint,3,opt,name=changerGUID,proto3" json:"changerGUID,omitempty"` - Rank uint32 `protobuf:"varint,4,opt,name=rank,proto3" json:"rank,omitempty"` - RankName string `protobuf:"bytes,5,opt,name=rankName,proto3" json:"rankName,omitempty"` - Rights uint32 `protobuf:"varint,6,opt,name=rights,proto3" json:"rights,omitempty"` - MoneyPerDay uint32 `protobuf:"varint,7,opt,name=moneyPerDay,proto3" json:"moneyPerDay,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ChangerGUID uint64 `protobuf:"varint,3,opt,name=changerGUID,proto3" json:"changerGUID,omitempty"` + Rank uint32 `protobuf:"varint,4,opt,name=rank,proto3" json:"rank,omitempty"` + RankName string `protobuf:"bytes,5,opt,name=rankName,proto3" json:"rankName,omitempty"` + Rights uint32 `protobuf:"varint,6,opt,name=rights,proto3" json:"rights,omitempty"` + MoneyPerDay uint32 `protobuf:"varint,7,opt,name=moneyPerDay,proto3" json:"moneyPerDay,omitempty"` + BankTabRights []*RankUpdateParams_BankTabRight `protobuf:"bytes,8,rep,name=bankTabRights,proto3" json:"bankTabRights,omitempty"` } func (x *RankUpdateParams) Reset() { @@ -1287,6 +1513,13 @@ func (x *RankUpdateParams) GetMoneyPerDay() uint32 { return 0 } +func (x *RankUpdateParams) GetBankTabRights() []*RankUpdateParams_BankTabRight { + if x != nil { + return x.BankTabRights + } + return nil +} + type RankUpdateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1691,6 +1924,7 @@ type SendGuildMessageParams struct { IsOfficerMessage bool `protobuf:"varint,4,opt,name=isOfficerMessage,proto3" json:"isOfficerMessage,omitempty"` Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"` Language uint32 `protobuf:"varint,6,opt,name=language,proto3" json:"language,omitempty"` + SenderChatTag uint32 `protobuf:"varint,7,opt,name=senderChatTag,proto3" json:"senderChatTag,omitempty"` } func (x *SendGuildMessageParams) Reset() { @@ -1767,6 +2001,13 @@ func (x *SendGuildMessageParams) GetLanguage() uint32 { return 0 } +func (x *SendGuildMessageParams) GetSenderChatTag() uint32 { + if x != nil { + return x.SenderChatTag + } + return 0 +} + type SendGuildMessageResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1814,26 +2055,17 @@ func (x *SendGuildMessageResponse) GetApi() string { return "" } -type GetRosterInfoResponse_Member struct { +type GuildPetitionSignature struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` - RankID uint32 `protobuf:"varint,4,opt,name=rankID,proto3" json:"rankID,omitempty"` - Lvl uint32 `protobuf:"varint,5,opt,name=lvl,proto3" json:"lvl,omitempty"` - ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` - Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` - AreaID uint32 `protobuf:"varint,8,opt,name=areaID,proto3" json:"areaID,omitempty"` - LogoutTime int64 `protobuf:"varint,9,opt,name=logoutTime,proto3" json:"logoutTime,omitempty"` - Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"` - OfficerNote string `protobuf:"bytes,11,opt,name=officerNote,proto3" json:"officerNote,omitempty"` + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PlayerAccount uint32 `protobuf:"varint,2,opt,name=playerAccount,proto3" json:"playerAccount,omitempty"` } -func (x *GetRosterInfoResponse_Member) Reset() { - *x = GetRosterInfoResponse_Member{} +func (x *GuildPetitionSignature) Reset() { + *x = GuildPetitionSignature{} if protoimpl.UnsafeEnabled { mi := &file_guilds_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1841,13 +2073,13 @@ func (x *GetRosterInfoResponse_Member) Reset() { } } -func (x *GetRosterInfoResponse_Member) String() string { +func (x *GuildPetitionSignature) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRosterInfoResponse_Member) ProtoMessage() {} +func (*GuildPetitionSignature) ProtoMessage() {} -func (x *GetRosterInfoResponse_Member) ProtoReflect() protoreflect.Message { +func (x *GuildPetitionSignature) ProtoReflect() protoreflect.Message { mi := &file_guilds_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1859,115 +2091,139 @@ func (x *GetRosterInfoResponse_Member) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRosterInfoResponse_Member.ProtoReflect.Descriptor instead. -func (*GetRosterInfoResponse_Member) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{3, 0} +// Deprecated: Use GuildPetitionSignature.ProtoReflect.Descriptor instead. +func (*GuildPetitionSignature) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{28} } -func (x *GetRosterInfoResponse_Member) GetGuid() uint64 { +func (x *GuildPetitionSignature) GetPlayerGUID() uint64 { if x != nil { - return x.Guid + return x.PlayerGUID } return 0 } -func (x *GetRosterInfoResponse_Member) GetName() string { +func (x *GuildPetitionSignature) GetPlayerAccount() uint32 { if x != nil { - return x.Name + return x.PlayerAccount } - return "" + return 0 } -func (x *GetRosterInfoResponse_Member) GetStatus() uint32 { - if x != nil { - return x.Status - } - return 0 +type GuildPetition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PetitionGUID uint64 `protobuf:"varint,1,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` + PetitionID uint32 `protobuf:"varint,2,opt,name=petitionID,proto3" json:"petitionID,omitempty"` + OwnerGUID uint64 `protobuf:"varint,3,opt,name=ownerGUID,proto3" json:"ownerGUID,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Type uint32 `protobuf:"varint,5,opt,name=type,proto3" json:"type,omitempty"` + Signatures []*GuildPetitionSignature `protobuf:"bytes,6,rep,name=signatures,proto3" json:"signatures,omitempty"` } -func (x *GetRosterInfoResponse_Member) GetRankID() uint32 { - if x != nil { - return x.RankID +func (x *GuildPetition) Reset() { + *x = GuildPetition{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *GetRosterInfoResponse_Member) GetLvl() uint32 { - if x != nil { - return x.Lvl +func (x *GuildPetition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildPetition) ProtoMessage() {} + +func (x *GuildPetition) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *GetRosterInfoResponse_Member) GetClassID() uint32 { +// Deprecated: Use GuildPetition.ProtoReflect.Descriptor instead. +func (*GuildPetition) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{29} +} + +func (x *GuildPetition) GetPetitionGUID() uint64 { if x != nil { - return x.ClassID + return x.PetitionGUID } return 0 } -func (x *GetRosterInfoResponse_Member) GetGender() uint32 { +func (x *GuildPetition) GetPetitionID() uint32 { if x != nil { - return x.Gender + return x.PetitionID } return 0 } -func (x *GetRosterInfoResponse_Member) GetAreaID() uint32 { +func (x *GuildPetition) GetOwnerGUID() uint64 { if x != nil { - return x.AreaID + return x.OwnerGUID } return 0 } -func (x *GetRosterInfoResponse_Member) GetLogoutTime() int64 { +func (x *GuildPetition) GetName() string { if x != nil { - return x.LogoutTime + return x.Name } - return 0 + return "" } -func (x *GetRosterInfoResponse_Member) GetNote() string { +func (x *GuildPetition) GetType() uint32 { if x != nil { - return x.Note + return x.Type } - return "" + return 0 } -func (x *GetRosterInfoResponse_Member) GetOfficerNote() string { +func (x *GuildPetition) GetSignatures() []*GuildPetitionSignature { if x != nil { - return x.OfficerNote + return x.Signatures } - return "" + return nil } -type GetRosterInfoResponse_Rank struct { +type GetGuildPetitionParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` - GoldLimit uint32 `protobuf:"varint,3,opt,name=goldLimit,proto3" json:"goldLimit,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,3,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` } -func (x *GetRosterInfoResponse_Rank) Reset() { - *x = GetRosterInfoResponse_Rank{} +func (x *GetGuildPetitionParams) Reset() { + *x = GetGuildPetitionParams{} if protoimpl.UnsafeEnabled { - mi := &file_guilds_proto_msgTypes[29] + mi := &file_guilds_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRosterInfoResponse_Rank) String() string { +func (x *GetGuildPetitionParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRosterInfoResponse_Rank) ProtoMessage() {} +func (*GetGuildPetitionParams) ProtoMessage() {} -func (x *GetRosterInfoResponse_Rank) ProtoReflect() protoreflect.Message { - mi := &file_guilds_proto_msgTypes[29] +func (x *GetGuildPetitionParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1978,61 +2234,58 @@ func (x *GetRosterInfoResponse_Rank) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRosterInfoResponse_Rank.ProtoReflect.Descriptor instead. -func (*GetRosterInfoResponse_Rank) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{3, 1} +// Deprecated: Use GetGuildPetitionParams.ProtoReflect.Descriptor instead. +func (*GetGuildPetitionParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{30} } -func (x *GetRosterInfoResponse_Rank) GetId() uint32 { +func (x *GetGuildPetitionParams) GetApi() string { if x != nil { - return x.Id + return x.Api } - return 0 + return "" } -func (x *GetRosterInfoResponse_Rank) GetFlags() uint32 { +func (x *GetGuildPetitionParams) GetRealmID() uint32 { if x != nil { - return x.Flags + return x.RealmID } return 0 } -func (x *GetRosterInfoResponse_Rank) GetGoldLimit() uint32 { +func (x *GetGuildPetitionParams) GetPetitionGUID() uint64 { if x != nil { - return x.GoldLimit + return x.PetitionGUID } return 0 } -type GetRosterInfoResponse_Guild struct { +type GetGuildPetitionResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - WelcomeText string `protobuf:"bytes,2,opt,name=welcomeText,proto3" json:"welcomeText,omitempty"` - InfoText string `protobuf:"bytes,3,opt,name=infoText,proto3" json:"infoText,omitempty"` - Members []*GetRosterInfoResponse_Member `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` - Ranks []*GetRosterInfoResponse_Rank `protobuf:"bytes,5,rep,name=ranks,proto3" json:"ranks,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Petition *GuildPetition `protobuf:"bytes,2,opt,name=petition,proto3" json:"petition,omitempty"` } -func (x *GetRosterInfoResponse_Guild) Reset() { - *x = GetRosterInfoResponse_Guild{} +func (x *GetGuildPetitionResponse) Reset() { + *x = GetGuildPetitionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_guilds_proto_msgTypes[30] + mi := &file_guilds_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetRosterInfoResponse_Guild) String() string { +func (x *GetGuildPetitionResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetRosterInfoResponse_Guild) ProtoMessage() {} +func (*GetGuildPetitionResponse) ProtoMessage() {} -func (x *GetRosterInfoResponse_Guild) ProtoReflect() protoreflect.Message { - mi := &file_guilds_proto_msgTypes[30] +func (x *GetGuildPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2043,78 +2296,55 @@ func (x *GetRosterInfoResponse_Guild) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetRosterInfoResponse_Guild.ProtoReflect.Descriptor instead. -func (*GetRosterInfoResponse_Guild) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{3, 2} -} - -func (x *GetRosterInfoResponse_Guild) GetId() uint64 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *GetRosterInfoResponse_Guild) GetWelcomeText() string { - if x != nil { - return x.WelcomeText - } - return "" +// Deprecated: Use GetGuildPetitionResponse.ProtoReflect.Descriptor instead. +func (*GetGuildPetitionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{31} } -func (x *GetRosterInfoResponse_Guild) GetInfoText() string { +func (x *GetGuildPetitionResponse) GetApi() string { if x != nil { - return x.InfoText + return x.Api } return "" } -func (x *GetRosterInfoResponse_Guild) GetMembers() []*GetRosterInfoResponse_Member { - if x != nil { - return x.Members - } - return nil -} - -func (x *GetRosterInfoResponse_Guild) GetRanks() []*GetRosterInfoResponse_Rank { +func (x *GetGuildPetitionResponse) GetPetition() *GuildPetition { if x != nil { - return x.Ranks + return x.Petition } return nil } -type InviteAcceptedParams_Character struct { +type OfferGuildPetitionParams struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Lvl uint32 `protobuf:"varint,3,opt,name=lvl,proto3" json:"lvl,omitempty"` - Race uint32 `protobuf:"varint,4,opt,name=race,proto3" json:"race,omitempty"` - ClassID uint32 `protobuf:"varint,5,opt,name=classID,proto3" json:"classID,omitempty"` - Gender uint32 `protobuf:"varint,6,opt,name=gender,proto3" json:"gender,omitempty"` - AreaID uint32 `protobuf:"varint,7,opt,name=areaID,proto3" json:"areaID,omitempty"` - AccountID uint64 `protobuf:"varint,8,opt,name=accountID,proto3" json:"accountID,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + OwnerGUID uint64 `protobuf:"varint,3,opt,name=ownerGUID,proto3" json:"ownerGUID,omitempty"` + TargetGUID uint64 `protobuf:"varint,4,opt,name=targetGUID,proto3" json:"targetGUID,omitempty"` + TargetName string `protobuf:"bytes,5,opt,name=targetName,proto3" json:"targetName,omitempty"` + PetitionGUID uint64 `protobuf:"varint,6,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` } -func (x *InviteAcceptedParams_Character) Reset() { - *x = InviteAcceptedParams_Character{} +func (x *OfferGuildPetitionParams) Reset() { + *x = OfferGuildPetitionParams{} if protoimpl.UnsafeEnabled { - mi := &file_guilds_proto_msgTypes[31] + mi := &file_guilds_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *InviteAcceptedParams_Character) String() string { +func (x *OfferGuildPetitionParams) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InviteAcceptedParams_Character) ProtoMessage() {} +func (*OfferGuildPetitionParams) ProtoMessage() {} -func (x *InviteAcceptedParams_Character) ProtoReflect() protoreflect.Message { - mi := &file_guilds_proto_msgTypes[31] +func (x *OfferGuildPetitionParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2125,12 +2355,2685 @@ func (x *InviteAcceptedParams_Character) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InviteAcceptedParams_Character.ProtoReflect.Descriptor instead. -func (*InviteAcceptedParams_Character) Descriptor() ([]byte, []int) { - return file_guilds_proto_rawDescGZIP(), []int{6, 0} +// Deprecated: Use OfferGuildPetitionParams.ProtoReflect.Descriptor instead. +func (*OfferGuildPetitionParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{32} } -func (x *InviteAcceptedParams_Character) GetGuid() uint64 { +func (x *OfferGuildPetitionParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *OfferGuildPetitionParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *OfferGuildPetitionParams) GetOwnerGUID() uint64 { + if x != nil { + return x.OwnerGUID + } + return 0 +} + +func (x *OfferGuildPetitionParams) GetTargetGUID() uint64 { + if x != nil { + return x.TargetGUID + } + return 0 +} + +func (x *OfferGuildPetitionParams) GetTargetName() string { + if x != nil { + return x.TargetName + } + return "" +} + +func (x *OfferGuildPetitionParams) GetPetitionGUID() uint64 { + if x != nil { + return x.PetitionGUID + } + return 0 +} + +type OfferGuildPetitionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status OfferGuildPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.OfferGuildPetitionResponse_Status" json:"status,omitempty"` +} + +func (x *OfferGuildPetitionResponse) Reset() { + *x = OfferGuildPetitionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OfferGuildPetitionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OfferGuildPetitionResponse) ProtoMessage() {} + +func (x *OfferGuildPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[33] + 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 OfferGuildPetitionResponse.ProtoReflect.Descriptor instead. +func (*OfferGuildPetitionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{33} +} + +func (x *OfferGuildPetitionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *OfferGuildPetitionResponse) GetStatus() OfferGuildPetitionResponse_Status { + if x != nil { + return x.Status + } + return OfferGuildPetitionResponse_Ok +} + +type SignGuildPetitionParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + SignerGUID uint64 `protobuf:"varint,3,opt,name=signerGUID,proto3" json:"signerGUID,omitempty"` + SignerName string `protobuf:"bytes,4,opt,name=signerName,proto3" json:"signerName,omitempty"` + SignerAccountID uint32 `protobuf:"varint,5,opt,name=signerAccountID,proto3" json:"signerAccountID,omitempty"` + SignerGuildID uint32 `protobuf:"varint,6,opt,name=signerGuildID,proto3" json:"signerGuildID,omitempty"` + PetitionGUID uint64 `protobuf:"varint,7,opt,name=petitionGUID,proto3" json:"petitionGUID,omitempty"` +} + +func (x *SignGuildPetitionParams) Reset() { + *x = SignGuildPetitionParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignGuildPetitionParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignGuildPetitionParams) ProtoMessage() {} + +func (x *SignGuildPetitionParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[34] + 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 SignGuildPetitionParams.ProtoReflect.Descriptor instead. +func (*SignGuildPetitionParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{34} +} + +func (x *SignGuildPetitionParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SignGuildPetitionParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetSignerGUID() uint64 { + if x != nil { + return x.SignerGUID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetSignerName() string { + if x != nil { + return x.SignerName + } + return "" +} + +func (x *SignGuildPetitionParams) GetSignerAccountID() uint32 { + if x != nil { + return x.SignerAccountID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetSignerGuildID() uint32 { + if x != nil { + return x.SignerGuildID + } + return 0 +} + +func (x *SignGuildPetitionParams) GetPetitionGUID() uint64 { + if x != nil { + return x.PetitionGUID + } + return 0 +} + +type SignGuildPetitionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SignGuildPetitionResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SignGuildPetitionResponse_Status" json:"status,omitempty"` +} + +func (x *SignGuildPetitionResponse) Reset() { + *x = SignGuildPetitionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SignGuildPetitionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SignGuildPetitionResponse) ProtoMessage() {} + +func (x *SignGuildPetitionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[35] + 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 SignGuildPetitionResponse.ProtoReflect.Descriptor instead. +func (*SignGuildPetitionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{35} +} + +func (x *SignGuildPetitionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SignGuildPetitionResponse) GetStatus() SignGuildPetitionResponse_Status { + if x != nil { + return x.Status + } + return SignGuildPetitionResponse_Ok +} + +type GuildBankSocketEnchant struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SocketIndex uint32 `protobuf:"varint,1,opt,name=socketIndex,proto3" json:"socketIndex,omitempty"` + SocketEnchantID uint32 `protobuf:"varint,2,opt,name=socketEnchantID,proto3" json:"socketEnchantID,omitempty"` +} + +func (x *GuildBankSocketEnchant) Reset() { + *x = GuildBankSocketEnchant{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankSocketEnchant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankSocketEnchant) ProtoMessage() {} + +func (x *GuildBankSocketEnchant) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[36] + 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 GuildBankSocketEnchant.ProtoReflect.Descriptor instead. +func (*GuildBankSocketEnchant) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{36} +} + +func (x *GuildBankSocketEnchant) GetSocketIndex() uint32 { + if x != nil { + return x.SocketIndex + } + return 0 +} + +func (x *GuildBankSocketEnchant) GetSocketEnchantID() uint32 { + if x != nil { + return x.SocketEnchantID + } + return 0 +} + +type GuildBankItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemGUID uint64 `protobuf:"varint,1,opt,name=itemGUID,proto3" json:"itemGUID,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Slot uint32 `protobuf:"varint,3,opt,name=slot,proto3" json:"slot,omitempty"` + Count uint32 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,5,opt,name=flags,proto3" json:"flags,omitempty"` + RandomPropertyID int32 `protobuf:"varint,6,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + RandomPropertySeed int32 `protobuf:"varint,7,opt,name=randomPropertySeed,proto3" json:"randomPropertySeed,omitempty"` + Durability uint32 `protobuf:"varint,8,opt,name=durability,proto3" json:"durability,omitempty"` + EnchantmentID uint32 `protobuf:"varint,9,opt,name=enchantmentID,proto3" json:"enchantmentID,omitempty"` + SocketEnchants []*GuildBankSocketEnchant `protobuf:"bytes,10,rep,name=socketEnchants,proto3" json:"socketEnchants,omitempty"` + Charges uint32 `protobuf:"varint,11,opt,name=charges,proto3" json:"charges,omitempty"` + Text string `protobuf:"bytes,12,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *GuildBankItem) Reset() { + *x = GuildBankItem{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankItem) ProtoMessage() {} + +func (x *GuildBankItem) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[37] + 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 GuildBankItem.ProtoReflect.Descriptor instead. +func (*GuildBankItem) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{37} +} + +func (x *GuildBankItem) GetItemGUID() uint64 { + if x != nil { + return x.ItemGUID + } + return 0 +} + +func (x *GuildBankItem) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *GuildBankItem) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *GuildBankItem) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GuildBankItem) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GuildBankItem) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *GuildBankItem) GetRandomPropertySeed() int32 { + if x != nil { + return x.RandomPropertySeed + } + return 0 +} + +func (x *GuildBankItem) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *GuildBankItem) GetEnchantmentID() uint32 { + if x != nil { + return x.EnchantmentID + } + return 0 +} + +func (x *GuildBankItem) GetSocketEnchants() []*GuildBankSocketEnchant { + if x != nil { + return x.SocketEnchants + } + return nil +} + +func (x *GuildBankItem) GetCharges() uint32 { + if x != nil { + return x.Charges + } + return 0 +} + +func (x *GuildBankItem) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type GuildBankTab struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TabID uint32 `protobuf:"varint,1,opt,name=tabID,proto3" json:"tabID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` + Items []*GuildBankItem `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GuildBankTab) Reset() { + *x = GuildBankTab{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankTab) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankTab) ProtoMessage() {} + +func (x *GuildBankTab) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[38] + 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 GuildBankTab.ProtoReflect.Descriptor instead. +func (*GuildBankTab) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{38} +} + +func (x *GuildBankTab) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GuildBankTab) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GuildBankTab) GetIcon() string { + if x != nil { + return x.Icon + } + return "" +} + +func (x *GuildBankTab) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *GuildBankTab) GetItems() []*GuildBankItem { + if x != nil { + return x.Items + } + return nil +} + +type GuildBankStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GuildBankStatus) Reset() { + *x = GuildBankStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankStatus) ProtoMessage() {} + +func (x *GuildBankStatus) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[39] + 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 GuildBankStatus.ProtoReflect.Descriptor instead. +func (*GuildBankStatus) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{39} +} + +type GetGuildBankParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + FullUpdate bool `protobuf:"varint,6,opt,name=fullUpdate,proto3" json:"fullUpdate,omitempty"` +} + +func (x *GetGuildBankParams) Reset() { + *x = GetGuildBankParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankParams) ProtoMessage() {} + +func (x *GetGuildBankParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[40] + 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 GetGuildBankParams.ProtoReflect.Descriptor instead. +func (*GetGuildBankParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{40} +} + +func (x *GetGuildBankParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetGuildBankParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *GetGuildBankParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *GetGuildBankParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankParams) GetFullUpdate() bool { + if x != nil { + return x.FullUpdate + } + return false +} + +type GetGuildBankResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + Money uint64 `protobuf:"varint,3,opt,name=money,proto3" json:"money,omitempty"` + TabID uint32 `protobuf:"varint,4,opt,name=tabID,proto3" json:"tabID,omitempty"` + WithdrawalsRemaining int32 `protobuf:"varint,5,opt,name=withdrawalsRemaining,proto3" json:"withdrawalsRemaining,omitempty"` + FullUpdate bool `protobuf:"varint,6,opt,name=fullUpdate,proto3" json:"fullUpdate,omitempty"` + Tabs []*GuildBankTab `protobuf:"bytes,7,rep,name=tabs,proto3" json:"tabs,omitempty"` + Items []*GuildBankItem `protobuf:"bytes,8,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GetGuildBankResponse) Reset() { + *x = GetGuildBankResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankResponse) ProtoMessage() {} + +func (x *GetGuildBankResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[41] + 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 GetGuildBankResponse.ProtoReflect.Descriptor instead. +func (*GetGuildBankResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{41} +} + +func (x *GetGuildBankResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GetGuildBankResponse) GetMoney() uint64 { + if x != nil { + return x.Money + } + return 0 +} + +func (x *GetGuildBankResponse) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankResponse) GetWithdrawalsRemaining() int32 { + if x != nil { + return x.WithdrawalsRemaining + } + return 0 +} + +func (x *GetGuildBankResponse) GetFullUpdate() bool { + if x != nil { + return x.FullUpdate + } + return false +} + +func (x *GetGuildBankResponse) GetTabs() []*GuildBankTab { + if x != nil { + return x.Tabs + } + return nil +} + +func (x *GetGuildBankResponse) GetItems() []*GuildBankItem { + if x != nil { + return x.Items + } + return nil +} + +type GetGuildBankLogParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` +} + +func (x *GetGuildBankLogParams) Reset() { + *x = GetGuildBankLogParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankLogParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankLogParams) ProtoMessage() {} + +func (x *GetGuildBankLogParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[42] + 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 GetGuildBankLogParams.ProtoReflect.Descriptor instead. +func (*GetGuildBankLogParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{42} +} + +func (x *GetGuildBankLogParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankLogParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetGuildBankLogParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *GetGuildBankLogParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *GetGuildBankLogParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +type GuildBankLogEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + TimeOffset uint32 `protobuf:"varint,2,opt,name=timeOffset,proto3" json:"timeOffset,omitempty"` + EntryType int32 `protobuf:"varint,3,opt,name=entryType,proto3" json:"entryType,omitempty"` + Money uint32 `protobuf:"varint,4,opt,name=money,proto3" json:"money,omitempty"` + ItemID int32 `protobuf:"varint,5,opt,name=itemID,proto3" json:"itemID,omitempty"` + Count int32 `protobuf:"varint,6,opt,name=count,proto3" json:"count,omitempty"` + OtherTab int32 `protobuf:"varint,7,opt,name=otherTab,proto3" json:"otherTab,omitempty"` +} + +func (x *GuildBankLogEntry) Reset() { + *x = GuildBankLogEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankLogEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankLogEntry) ProtoMessage() {} + +func (x *GuildBankLogEntry) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[43] + 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 GuildBankLogEntry.ProtoReflect.Descriptor instead. +func (*GuildBankLogEntry) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{43} +} + +func (x *GuildBankLogEntry) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *GuildBankLogEntry) GetTimeOffset() uint32 { + if x != nil { + return x.TimeOffset + } + return 0 +} + +func (x *GuildBankLogEntry) GetEntryType() int32 { + if x != nil { + return x.EntryType + } + return 0 +} + +func (x *GuildBankLogEntry) GetMoney() uint32 { + if x != nil { + return x.Money + } + return 0 +} + +func (x *GuildBankLogEntry) GetItemID() int32 { + if x != nil { + return x.ItemID + } + return 0 +} + +func (x *GuildBankLogEntry) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GuildBankLogEntry) GetOtherTab() int32 { + if x != nil { + return x.OtherTab + } + return 0 +} + +type GetGuildBankLogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + TabID uint32 `protobuf:"varint,3,opt,name=tabID,proto3" json:"tabID,omitempty"` + Entries []*GuildBankLogEntry `protobuf:"bytes,4,rep,name=entries,proto3" json:"entries,omitempty"` +} + +func (x *GetGuildBankLogResponse) Reset() { + *x = GetGuildBankLogResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankLogResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankLogResponse) ProtoMessage() {} + +func (x *GetGuildBankLogResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[44] + 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 GetGuildBankLogResponse.ProtoReflect.Descriptor instead. +func (*GetGuildBankLogResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{44} +} + +func (x *GetGuildBankLogResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankLogResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GetGuildBankLogResponse) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankLogResponse) GetEntries() []*GuildBankLogEntry { + if x != nil { + return x.Entries + } + return nil +} + +type GetGuildBankTabTextParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` +} + +func (x *GetGuildBankTabTextParams) Reset() { + *x = GetGuildBankTabTextParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankTabTextParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankTabTextParams) ProtoMessage() {} + +func (x *GetGuildBankTabTextParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[45] + 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 GetGuildBankTabTextParams.ProtoReflect.Descriptor instead. +func (*GetGuildBankTabTextParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{45} +} + +func (x *GetGuildBankTabTextParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankTabTextParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *GetGuildBankTabTextParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *GetGuildBankTabTextParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *GetGuildBankTabTextParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +type GetGuildBankTabTextResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + TabID uint32 `protobuf:"varint,3,opt,name=tabID,proto3" json:"tabID,omitempty"` + Text string `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *GetGuildBankTabTextResponse) Reset() { + *x = GetGuildBankTabTextResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGuildBankTabTextResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGuildBankTabTextResponse) ProtoMessage() {} + +func (x *GetGuildBankTabTextResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[46] + 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 GetGuildBankTabTextResponse.ProtoReflect.Descriptor instead. +func (*GetGuildBankTabTextResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{46} +} + +func (x *GetGuildBankTabTextResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetGuildBankTabTextResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GetGuildBankTabTextResponse) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetGuildBankTabTextResponse) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type UpdateGuildBankTabParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,7,opt,name=icon,proto3" json:"icon,omitempty"` +} + +func (x *UpdateGuildBankTabParams) Reset() { + *x = UpdateGuildBankTabParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateGuildBankTabParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGuildBankTabParams) ProtoMessage() {} + +func (x *UpdateGuildBankTabParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[47] + 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 UpdateGuildBankTabParams.ProtoReflect.Descriptor instead. +func (*UpdateGuildBankTabParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{47} +} + +func (x *UpdateGuildBankTabParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *UpdateGuildBankTabParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *UpdateGuildBankTabParams) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateGuildBankTabParams) GetIcon() string { + if x != nil { + return x.Icon + } + return "" +} + +type SetGuildBankTabTextParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + Text string `protobuf:"bytes,6,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *SetGuildBankTabTextParams) Reset() { + *x = SetGuildBankTabTextParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetGuildBankTabTextParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetGuildBankTabTextParams) ProtoMessage() {} + +func (x *SetGuildBankTabTextParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[48] + 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 SetGuildBankTabTextParams.ProtoReflect.Descriptor instead. +func (*SetGuildBankTabTextParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{48} +} + +func (x *SetGuildBankTabTextParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetGuildBankTabTextParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *SetGuildBankTabTextParams) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type BuyGuildBankTabParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` +} + +func (x *BuyGuildBankTabParams) Reset() { + *x = BuyGuildBankTabParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuyGuildBankTabParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuyGuildBankTabParams) ProtoMessage() {} + +func (x *BuyGuildBankTabParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[49] + 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 BuyGuildBankTabParams.ProtoReflect.Descriptor instead. +func (*BuyGuildBankTabParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{49} +} + +func (x *BuyGuildBankTabParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *BuyGuildBankTabParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *BuyGuildBankTabParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *BuyGuildBankTabParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *BuyGuildBankTabParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +type BuyGuildBankTabResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + TabCost uint32 `protobuf:"varint,3,opt,name=tabCost,proto3" json:"tabCost,omitempty"` +} + +func (x *BuyGuildBankTabResponse) Reset() { + *x = BuyGuildBankTabResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BuyGuildBankTabResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BuyGuildBankTabResponse) ProtoMessage() {} + +func (x *BuyGuildBankTabResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[50] + 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 BuyGuildBankTabResponse.ProtoReflect.Descriptor instead. +func (*BuyGuildBankTabResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{50} +} + +func (x *BuyGuildBankTabResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *BuyGuildBankTabResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *BuyGuildBankTabResponse) GetTabCost() uint32 { + if x != nil { + return x.TabCost + } + return 0 +} + +type DepositGuildBankMoneyParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Amount uint32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` +} + +func (x *DepositGuildBankMoneyParams) Reset() { + *x = DepositGuildBankMoneyParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DepositGuildBankMoneyParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DepositGuildBankMoneyParams) ProtoMessage() {} + +func (x *DepositGuildBankMoneyParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[51] + 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 DepositGuildBankMoneyParams.ProtoReflect.Descriptor instead. +func (*DepositGuildBankMoneyParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{51} +} + +func (x *DepositGuildBankMoneyParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DepositGuildBankMoneyParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *DepositGuildBankMoneyParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *DepositGuildBankMoneyParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *DepositGuildBankMoneyParams) GetAmount() uint32 { + if x != nil { + return x.Amount + } + return 0 +} + +type WithdrawGuildBankMoneyParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Amount uint32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` + Repair bool `protobuf:"varint,6,opt,name=repair,proto3" json:"repair,omitempty"` +} + +func (x *WithdrawGuildBankMoneyParams) Reset() { + *x = WithdrawGuildBankMoneyParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawGuildBankMoneyParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawGuildBankMoneyParams) ProtoMessage() {} + +func (x *WithdrawGuildBankMoneyParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[52] + 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 WithdrawGuildBankMoneyParams.ProtoReflect.Descriptor instead. +func (*WithdrawGuildBankMoneyParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{52} +} + +func (x *WithdrawGuildBankMoneyParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *WithdrawGuildBankMoneyParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetAmount() uint32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *WithdrawGuildBankMoneyParams) GetRepair() bool { + if x != nil { + return x.Repair + } + return false +} + +type RollbackGuildBankMoneyWithdrawParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + Amount uint32 `protobuf:"varint,5,opt,name=amount,proto3" json:"amount,omitempty"` + Repair bool `protobuf:"varint,6,opt,name=repair,proto3" json:"repair,omitempty"` + LogGUID uint32 `protobuf:"varint,7,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *RollbackGuildBankMoneyWithdrawParams) Reset() { + *x = RollbackGuildBankMoneyWithdrawParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RollbackGuildBankMoneyWithdrawParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RollbackGuildBankMoneyWithdrawParams) ProtoMessage() {} + +func (x *RollbackGuildBankMoneyWithdrawParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[53] + 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 RollbackGuildBankMoneyWithdrawParams.ProtoReflect.Descriptor instead. +func (*RollbackGuildBankMoneyWithdrawParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{53} +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetAmount() uint32 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetRepair() bool { + if x != nil { + return x.Repair + } + return false +} + +func (x *RollbackGuildBankMoneyWithdrawParams) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type DepositGuildBankItemParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + SlotID uint32 `protobuf:"varint,6,opt,name=slotID,proto3" json:"slotID,omitempty"` + Item *GuildBankItem `protobuf:"bytes,7,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *DepositGuildBankItemParams) Reset() { + *x = DepositGuildBankItemParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DepositGuildBankItemParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DepositGuildBankItemParams) ProtoMessage() {} + +func (x *DepositGuildBankItemParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[54] + 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 DepositGuildBankItemParams.ProtoReflect.Descriptor instead. +func (*DepositGuildBankItemParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{54} +} + +func (x *DepositGuildBankItemParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *DepositGuildBankItemParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetSlotID() uint32 { + if x != nil { + return x.SlotID + } + return 0 +} + +func (x *DepositGuildBankItemParams) GetItem() *GuildBankItem { + if x != nil { + return x.Item + } + return nil +} + +type WithdrawGuildBankItemParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + SlotID uint32 `protobuf:"varint,6,opt,name=slotID,proto3" json:"slotID,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *WithdrawGuildBankItemParams) Reset() { + *x = WithdrawGuildBankItemParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawGuildBankItemParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawGuildBankItemParams) ProtoMessage() {} + +func (x *WithdrawGuildBankItemParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[55] + 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 WithdrawGuildBankItemParams.ProtoReflect.Descriptor instead. +func (*WithdrawGuildBankItemParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{55} +} + +func (x *WithdrawGuildBankItemParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *WithdrawGuildBankItemParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetSlotID() uint32 { + if x != nil { + return x.SlotID + } + return 0 +} + +func (x *WithdrawGuildBankItemParams) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +type RollbackGuildBankItemWithdrawParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + TabID uint32 `protobuf:"varint,5,opt,name=tabID,proto3" json:"tabID,omitempty"` + SlotID uint32 `protobuf:"varint,6,opt,name=slotID,proto3" json:"slotID,omitempty"` + Item *GuildBankItem `protobuf:"bytes,7,opt,name=item,proto3" json:"item,omitempty"` + LogGUID uint32 `protobuf:"varint,8,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *RollbackGuildBankItemWithdrawParams) Reset() { + *x = RollbackGuildBankItemWithdrawParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RollbackGuildBankItemWithdrawParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RollbackGuildBankItemWithdrawParams) ProtoMessage() {} + +func (x *RollbackGuildBankItemWithdrawParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[56] + 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 RollbackGuildBankItemWithdrawParams.ProtoReflect.Descriptor instead. +func (*RollbackGuildBankItemWithdrawParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{56} +} + +func (x *RollbackGuildBankItemWithdrawParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RollbackGuildBankItemWithdrawParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetSlotID() uint32 { + if x != nil { + return x.SlotID + } + return 0 +} + +func (x *RollbackGuildBankItemWithdrawParams) GetItem() *GuildBankItem { + if x != nil { + return x.Item + } + return nil +} + +func (x *RollbackGuildBankItemWithdrawParams) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type MoveGuildBankItemParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + GuildID uint64 `protobuf:"varint,3,opt,name=guildID,proto3" json:"guildID,omitempty"` + MemberGUID uint64 `protobuf:"varint,4,opt,name=memberGUID,proto3" json:"memberGUID,omitempty"` + SourceTabID uint32 `protobuf:"varint,5,opt,name=sourceTabID,proto3" json:"sourceTabID,omitempty"` + SourceSlotID uint32 `protobuf:"varint,6,opt,name=sourceSlotID,proto3" json:"sourceSlotID,omitempty"` + DestinationTabID uint32 `protobuf:"varint,7,opt,name=destinationTabID,proto3" json:"destinationTabID,omitempty"` + DestinationSlotID uint32 `protobuf:"varint,8,opt,name=destinationSlotID,proto3" json:"destinationSlotID,omitempty"` + Count uint32 `protobuf:"varint,9,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *MoveGuildBankItemParams) Reset() { + *x = MoveGuildBankItemParams{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MoveGuildBankItemParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MoveGuildBankItemParams) ProtoMessage() {} + +func (x *MoveGuildBankItemParams) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[57] + 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 MoveGuildBankItemParams.ProtoReflect.Descriptor instead. +func (*MoveGuildBankItemParams) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{57} +} + +func (x *MoveGuildBankItemParams) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *MoveGuildBankItemParams) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetGuildID() uint64 { + if x != nil { + return x.GuildID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetMemberGUID() uint64 { + if x != nil { + return x.MemberGUID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetSourceTabID() uint32 { + if x != nil { + return x.SourceTabID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetSourceSlotID() uint32 { + if x != nil { + return x.SourceSlotID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetDestinationTabID() uint32 { + if x != nil { + return x.DestinationTabID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetDestinationSlotID() uint32 { + if x != nil { + return x.DestinationSlotID + } + return 0 +} + +func (x *MoveGuildBankItemParams) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +type GuildBankActionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + LogGUID uint32 `protobuf:"varint,3,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *GuildBankActionResponse) Reset() { + *x = GuildBankActionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankActionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankActionResponse) ProtoMessage() {} + +func (x *GuildBankActionResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[58] + 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 GuildBankActionResponse.ProtoReflect.Descriptor instead. +func (*GuildBankActionResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{58} +} + +func (x *GuildBankActionResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GuildBankActionResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GuildBankActionResponse) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type GuildBankItemMutationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GuildBankStatus_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GuildBankStatus_Status" json:"status,omitempty"` + Item *GuildBankItem `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` + ChangedSlots []uint32 `protobuf:"varint,4,rep,packed,name=changedSlots,proto3" json:"changedSlots,omitempty"` + LogGUID uint32 `protobuf:"varint,5,opt,name=logGUID,proto3" json:"logGUID,omitempty"` +} + +func (x *GuildBankItemMutationResponse) Reset() { + *x = GuildBankItemMutationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GuildBankItemMutationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GuildBankItemMutationResponse) ProtoMessage() {} + +func (x *GuildBankItemMutationResponse) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[59] + 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 GuildBankItemMutationResponse.ProtoReflect.Descriptor instead. +func (*GuildBankItemMutationResponse) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{59} +} + +func (x *GuildBankItemMutationResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GuildBankItemMutationResponse) GetStatus() GuildBankStatus_Status { + if x != nil { + return x.Status + } + return GuildBankStatus_Ok +} + +func (x *GuildBankItemMutationResponse) GetItem() *GuildBankItem { + if x != nil { + return x.Item + } + return nil +} + +func (x *GuildBankItemMutationResponse) GetChangedSlots() []uint32 { + if x != nil { + return x.ChangedSlots + } + return nil +} + +func (x *GuildBankItemMutationResponse) GetLogGUID() uint32 { + if x != nil { + return x.LogGUID + } + return 0 +} + +type GetRosterInfoResponse_Member struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Status uint32 `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"` + RankID uint32 `protobuf:"varint,4,opt,name=rankID,proto3" json:"rankID,omitempty"` + Lvl uint32 `protobuf:"varint,5,opt,name=lvl,proto3" json:"lvl,omitempty"` + ClassID uint32 `protobuf:"varint,6,opt,name=classID,proto3" json:"classID,omitempty"` + Gender uint32 `protobuf:"varint,7,opt,name=gender,proto3" json:"gender,omitempty"` + AreaID uint32 `protobuf:"varint,8,opt,name=areaID,proto3" json:"areaID,omitempty"` + LogoutTime int64 `protobuf:"varint,9,opt,name=logoutTime,proto3" json:"logoutTime,omitempty"` + Note string `protobuf:"bytes,10,opt,name=note,proto3" json:"note,omitempty"` + OfficerNote string `protobuf:"bytes,11,opt,name=officerNote,proto3" json:"officerNote,omitempty"` + BankWithdraw []uint32 `protobuf:"varint,12,rep,packed,name=bankWithdraw,proto3" json:"bankWithdraw,omitempty"` +} + +func (x *GetRosterInfoResponse_Member) Reset() { + *x = GetRosterInfoResponse_Member{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Member) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Member) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Member) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[60] + 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 GetRosterInfoResponse_Member.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Member) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *GetRosterInfoResponse_Member) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GetRosterInfoResponse_Member) GetStatus() uint32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetRankID() uint32 { + if x != nil { + return x.RankID + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetLvl() uint32 { + if x != nil { + return x.Lvl + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetClassID() uint32 { + if x != nil { + return x.ClassID + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetGender() uint32 { + if x != nil { + return x.Gender + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetAreaID() uint32 { + if x != nil { + return x.AreaID + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetLogoutTime() int64 { + if x != nil { + return x.LogoutTime + } + return 0 +} + +func (x *GetRosterInfoResponse_Member) GetNote() string { + if x != nil { + return x.Note + } + return "" +} + +func (x *GetRosterInfoResponse_Member) GetOfficerNote() string { + if x != nil { + return x.OfficerNote + } + return "" +} + +func (x *GetRosterInfoResponse_Member) GetBankWithdraw() []uint32 { + if x != nil { + return x.BankWithdraw + } + return nil +} + +type GetRosterInfoResponse_Rank struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + GoldLimit uint32 `protobuf:"varint,3,opt,name=goldLimit,proto3" json:"goldLimit,omitempty"` + BankTabRights []*GetRosterInfoResponse_Rank_BankTabRight `protobuf:"bytes,4,rep,name=bankTabRights,proto3" json:"bankTabRights,omitempty"` +} + +func (x *GetRosterInfoResponse_Rank) Reset() { + *x = GetRosterInfoResponse_Rank{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Rank) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Rank) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Rank) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[61] + 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 GetRosterInfoResponse_Rank.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Rank) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *GetRosterInfoResponse_Rank) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank) GetGoldLimit() uint32 { + if x != nil { + return x.GoldLimit + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank) GetBankTabRights() []*GetRosterInfoResponse_Rank_BankTabRight { + if x != nil { + return x.BankTabRights + } + return nil +} + +type GetRosterInfoResponse_Guild struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + WelcomeText string `protobuf:"bytes,2,opt,name=welcomeText,proto3" json:"welcomeText,omitempty"` + InfoText string `protobuf:"bytes,3,opt,name=infoText,proto3" json:"infoText,omitempty"` + Members []*GetRosterInfoResponse_Member `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` + Ranks []*GetRosterInfoResponse_Rank `protobuf:"bytes,5,rep,name=ranks,proto3" json:"ranks,omitempty"` + PurchasedBankTabs uint32 `protobuf:"varint,6,opt,name=purchasedBankTabs,proto3" json:"purchasedBankTabs,omitempty"` +} + +func (x *GetRosterInfoResponse_Guild) Reset() { + *x = GetRosterInfoResponse_Guild{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Guild) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Guild) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Guild) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[62] + 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 GetRosterInfoResponse_Guild.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Guild) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 2} +} + +func (x *GetRosterInfoResponse_Guild) GetId() uint64 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GetRosterInfoResponse_Guild) GetWelcomeText() string { + if x != nil { + return x.WelcomeText + } + return "" +} + +func (x *GetRosterInfoResponse_Guild) GetInfoText() string { + if x != nil { + return x.InfoText + } + return "" +} + +func (x *GetRosterInfoResponse_Guild) GetMembers() []*GetRosterInfoResponse_Member { + if x != nil { + return x.Members + } + return nil +} + +func (x *GetRosterInfoResponse_Guild) GetRanks() []*GetRosterInfoResponse_Rank { + if x != nil { + return x.Ranks + } + return nil +} + +func (x *GetRosterInfoResponse_Guild) GetPurchasedBankTabs() uint32 { + if x != nil { + return x.PurchasedBankTabs + } + return 0 +} + +type GetRosterInfoResponse_Rank_BankTabRight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TabID uint32 `protobuf:"varint,1,opt,name=tabID,proto3" json:"tabID,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + WithdrawItemLimit uint32 `protobuf:"varint,3,opt,name=withdrawItemLimit,proto3" json:"withdrawItemLimit,omitempty"` +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) Reset() { + *x = GetRosterInfoResponse_Rank_BankTabRight{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRosterInfoResponse_Rank_BankTabRight) ProtoMessage() {} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[63] + 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 GetRosterInfoResponse_Rank_BankTabRight.ProtoReflect.Descriptor instead. +func (*GetRosterInfoResponse_Rank_BankTabRight) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{3, 1, 0} +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) GetTabID() uint32 { + if x != nil { + return x.TabID + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetRosterInfoResponse_Rank_BankTabRight) GetWithdrawItemLimit() uint32 { + if x != nil { + return x.WithdrawItemLimit + } + return 0 +} + +type InviteAcceptedParams_Character struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Lvl uint32 `protobuf:"varint,3,opt,name=lvl,proto3" json:"lvl,omitempty"` + Race uint32 `protobuf:"varint,4,opt,name=race,proto3" json:"race,omitempty"` + ClassID uint32 `protobuf:"varint,5,opt,name=classID,proto3" json:"classID,omitempty"` + Gender uint32 `protobuf:"varint,6,opt,name=gender,proto3" json:"gender,omitempty"` + AreaID uint32 `protobuf:"varint,7,opt,name=areaID,proto3" json:"areaID,omitempty"` + AccountID uint64 `protobuf:"varint,8,opt,name=accountID,proto3" json:"accountID,omitempty"` +} + +func (x *InviteAcceptedParams_Character) Reset() { + *x = InviteAcceptedParams_Character{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InviteAcceptedParams_Character) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InviteAcceptedParams_Character) ProtoMessage() {} + +func (x *InviteAcceptedParams_Character) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[64] + 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 InviteAcceptedParams_Character.ProtoReflect.Descriptor instead. +func (*InviteAcceptedParams_Character) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *InviteAcceptedParams_Character) GetGuid() uint64 { if x != nil { return x.Guid } @@ -2167,21 +5070,84 @@ func (x *InviteAcceptedParams_Character) GetClassID() uint32 { func (x *InviteAcceptedParams_Character) GetGender() uint32 { if x != nil { - return x.Gender + return x.Gender + } + return 0 +} + +func (x *InviteAcceptedParams_Character) GetAreaID() uint32 { + if x != nil { + return x.AreaID + } + return 0 +} + +func (x *InviteAcceptedParams_Character) GetAccountID() uint64 { + if x != nil { + return x.AccountID + } + return 0 +} + +type RankUpdateParams_BankTabRight struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TabID uint32 `protobuf:"varint,1,opt,name=tabID,proto3" json:"tabID,omitempty"` + Flags uint32 `protobuf:"varint,2,opt,name=flags,proto3" json:"flags,omitempty"` + WithdrawItemLimit uint32 `protobuf:"varint,3,opt,name=withdrawItemLimit,proto3" json:"withdrawItemLimit,omitempty"` +} + +func (x *RankUpdateParams_BankTabRight) Reset() { + *x = RankUpdateParams_BankTabRight{} + if protoimpl.UnsafeEnabled { + mi := &file_guilds_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RankUpdateParams_BankTabRight) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RankUpdateParams_BankTabRight) ProtoMessage() {} + +func (x *RankUpdateParams_BankTabRight) ProtoReflect() protoreflect.Message { + mi := &file_guilds_proto_msgTypes[65] + 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 RankUpdateParams_BankTabRight.ProtoReflect.Descriptor instead. +func (*RankUpdateParams_BankTabRight) Descriptor() ([]byte, []int) { + return file_guilds_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *RankUpdateParams_BankTabRight) GetTabID() uint32 { + if x != nil { + return x.TabID } return 0 } -func (x *InviteAcceptedParams_Character) GetAreaID() uint32 { +func (x *RankUpdateParams_BankTabRight) GetFlags() uint32 { if x != nil { - return x.AreaID + return x.Flags } return 0 } -func (x *InviteAcceptedParams_Character) GetAccountID() uint64 { +func (x *RankUpdateParams_BankTabRight) GetWithdrawItemLimit() uint32 { if x != nil { - return x.AccountID + return x.WithdrawItemLimit } return 0 } @@ -2220,13 +5186,13 @@ var file_guilds_proto_rawDesc = []byte{ 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x44, 0x22, 0x8b, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, + 0x6c, 0x64, 0x49, 0x44, 0x22, 0x9b, 0x07, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x35, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, - 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x1a, 0x92, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x62, + 0x52, 0x05, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x1a, 0xb6, 0x02, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, @@ -2243,25 +5209,42 @@ var file_guilds_proto_rawDesc = []byte{ 0x75, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x1a, 0x4a, 0x0a, 0x04, - 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x6f, - 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67, - 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0xc7, 0x01, 0x0a, 0x05, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x54, 0x65, 0x78, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, - 0x54, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x78, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, 0x78, 0x74, - 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x05, - 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, 0x61, 0x6e, - 0x6b, 0x73, 0x22, 0x96, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, + 0x0b, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x62, 0x61, 0x6e, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0d, 0x52, 0x0c, 0x62, 0x61, 0x6e, 0x6b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x1a, 0x87, 0x02, 0x0a, 0x04, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x67, 0x6f, 0x6c, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x51, 0x0a, + 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x52, 0x61, 0x6e, 0x6b, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x52, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, + 0x1a, 0x68, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0xf5, 0x01, 0x0a, 0x05, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, 0x6d, 0x65, 0x54, + 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x6c, 0x63, 0x6f, + 0x6d, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, + 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x66, 0x6f, 0x54, 0x65, + 0x78, 0x74, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, + 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x6b, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x05, 0x72, + 0x61, 0x6e, 0x6b, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x70, 0x75, 0x72, 0x63, 0x68, 0x61, 0x73, 0x65, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, + 0x62, 0x73, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, @@ -2270,12 +5253,17 @@ var file_guilds_proto_rawDesc = []byte{ 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x14, 0x49, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x52, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x52, 0x61, 0x63, 0x65, 0x12, 0x2c, 0x0a, + 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, + 0x72, 0x6f, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x1c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x10, 0x01, 0x22, 0xc8, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, + 0x64, 0x10, 0x01, 0x22, 0xf6, 0x02, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, @@ -2283,201 +5271,688 @@ var file_guilds_proto_rawDesc = []byte{ 0x61, 0x63, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x52, - 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x1a, 0xc1, 0x01, 0x0a, 0x09, 0x43, - 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, - 0x76, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x72, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, - 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, - 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x44, - 0x0a, 0x16, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, - 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x44, 0x22, 0x51, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x0d, 0x4c, 0x65, 0x61, 0x76, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, 0x0a, 0x4b, 0x69, - 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x92, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, - 0x65, 0x44, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x22, 0x2e, 0x0a, 0x1a, 0x53, - 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, 0x53, - 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x09, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x43, 0x72, 0x6f, 0x73, + 0x73, 0x46, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xc1, 0x01, 0x0a, 0x09, 0x43, 0x68, 0x61, + 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x76, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6c, 0x76, 0x6c, + 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, + 0x72, 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x72, 0x65, 0x61, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x09, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x44, 0x0a, 0x16, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x44, 0x22, 0x51, 0x0a, 0x0b, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, + 0x65, 0x61, 0x76, 0x65, 0x72, 0x22, 0x21, 0x0a, 0x0d, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x68, 0x0a, 0x0a, 0x4b, 0x69, 0x63, 0x6b, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x06, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x22, 0x20, 0x0a, 0x0c, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x22, 0x92, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, - 0x12, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x91, 0x01, - 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, + 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x22, 0x2e, 0x0a, 0x1a, 0x53, 0x65, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, 0x53, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, - 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xca, 0x01, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x6b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, - 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, 0x44, 0x61, 0x79, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, - 0x44, 0x61, 0x79, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x79, 0x0a, 0x0d, 0x41, - 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, - 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x61, - 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x64, 0x0a, 0x14, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, - 0x44, 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, - 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x83, 0x01, - 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, + 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x22, 0x28, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x91, 0x01, 0x0a, 0x0d, + 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x6f, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x22, + 0x23, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x22, 0xfd, 0x02, 0x0a, 0x10, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, + 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, 0x44, 0x61, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x65, 0x72, 0x44, 0x61, + 0x79, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, + 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x42, + 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x52, 0x0d, 0x62, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x1a, 0x68, 0x0a, 0x0c, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x49, 0x74, 0x65, 0x6d, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x22, 0x26, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x79, 0x0a, 0x0d, + 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x64, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x22, 0x2a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x83, + 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x47, 0x55, 0x49, 0x44, 0x22, 0x29, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xec, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x43, 0x68, 0x61, 0x74, 0x54, 0x61, 0x67, 0x22, 0x2c, + 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x5e, 0x0a, 0x16, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd5, 0x01, 0x0a, + 0x0d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0x5b, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x2d, 0x0a, 0x08, + 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x08, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x18, + 0x4f, 0x66, 0x66, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0xf0, 0x01, 0x0a, 0x1a, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, + 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x80, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, + 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x6f, 0x74, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, + 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x10, 0x05, 0x12, 0x0a, 0x0a, + 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x06, 0x22, 0xf9, 0x01, 0x0a, 0x17, 0x53, 0x69, + 0x67, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x55, 0x49, - 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, - 0x55, 0x49, 0x44, 0x22, 0x29, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xc6, - 0x01, 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x72, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x47, 0x55, 0x49, 0x44, 0x22, 0xfd, 0x01, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, + 0x79, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x6c, 0x72, + 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x10, 0x02, 0x12, 0x0f, 0x0a, + 0x0b, 0x43, 0x61, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x77, 0x6e, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x4e, 0x6f, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x10, 0x04, 0x12, 0x0c, 0x0a, + 0x08, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x46, + 0x75, 0x6c, 0x6c, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, + 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x64, 0x10, 0x08, 0x22, 0x64, 0x0a, 0x16, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x12, + 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, + 0x6e, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x49, 0x44, 0x22, 0x95, 0x03, 0x0a, 0x0d, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, + 0x08, 0x69, 0x74, 0x65, 0x6d, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x08, 0x69, 0x74, 0x65, 0x6d, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, + 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x72, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x65, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x53, 0x65, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, + 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x65, + 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x65, 0x6e, 0x63, 0x68, 0x61, 0x6e, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x49, + 0x44, 0x12, 0x42, 0x0a, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, 0x68, 0x61, + 0x6e, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, + 0x63, 0x68, 0x61, 0x6e, 0x74, 0x52, 0x0e, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x6e, 0x63, + 0x68, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, + 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, + 0xd0, 0x01, 0x0a, 0x0f, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0xbc, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x06, + 0x0a, 0x02, 0x4f, 0x6b, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, + 0x67, 0x68, 0x52, 0x69, 0x67, 0x68, 0x74, 0x73, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x61, 0x62, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x6e, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x4e, + 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x10, 0x07, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x61, 0x6e, 0x6b, 0x46, 0x75, 0x6c, 0x6c, 0x10, 0x08, 0x12, 0x11, 0x0a, + 0x0d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0x09, + 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, + 0x10, 0x0a, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x47, - 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, 0x63, - 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x69, 0x73, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x2c, 0x0a, 0x18, 0x53, 0x65, 0x6e, 0x64, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x32, 0x8f, 0x08, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, - 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, - 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, - 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x12, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, - 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x4b, 0x69, - 0x63, 0x6b, 0x12, 0x0e, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x1a, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, - 0x61, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x47, - 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x13, 0x53, 0x65, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4e, 0x6f, 0x74, - 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x14, 0x53, 0x65, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, - 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, - 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, - 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x43, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x53, 0x65, 0x6e, - 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x67, 0x65, 0x6e, 0x2f, 0x67, - 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0xab, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, + 0x12, 0x32, 0x0a, 0x14, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x75, 0x6c, 0x6c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x04, 0x74, 0x61, 0x62, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x52, 0x04, 0x74, 0x61, 0x62, 0x73, 0x12, 0x27, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x93, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, + 0x6e, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x61, 0x62, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x54, 0x61, 0x62, 0x22, 0xa6, 0x01, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x2f, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, + 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, + 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, + 0x22, 0x8d, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, + 0x22, 0xbe, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, + 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x19, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, + 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x93, 0x01, 0x0a, 0x15, 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x74, 0x61, 0x62, 0x49, 0x44, 0x22, 0x79, 0x0a, 0x17, 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x62, 0x43, 0x6f, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x43, 0x6f, 0x73, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, + 0x01, 0x0a, 0x1c, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, + 0x65, 0x70, 0x61, 0x69, 0x72, 0x22, 0xd6, 0x01, 0x0a, 0x24, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, + 0x70, 0x61, 0x69, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x22, 0xd7, + 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x6f, + 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, + 0x44, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0xc7, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, + 0x61, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xfa, 0x01, 0x0a, 0x23, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x74, 0x61, 0x62, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x73, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x12, 0x25, + 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x22, + 0xb5, 0x02, 0x0a, 0x17, 0x4d, 0x6f, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, 0x62, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x61, + 0x62, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x6c, 0x6f, + 0x74, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x62, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, + 0x62, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x49, + 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x17, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, + 0x49, 0x44, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x04, 0x69, 0x74, + 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, 0x65, + 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x6c, 0x6f, 0x74, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x47, 0x55, 0x49, 0x44, 0x32, + 0xe8, 0x12, 0x0a, 0x0c, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x36, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, + 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, + 0x0c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x46, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, + 0x64, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x76, 0x65, + 0x12, 0x0f, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x4b, 0x69, 0x63, 0x6b, 0x12, 0x0e, 0x2e, 0x76, + 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x10, 0x2e, 0x76, + 0x31, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, + 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, + 0x65, 0x44, 0x61, 0x79, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x44, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x61, 0x6e, + 0x6b, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, + 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x31, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x13, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x52, 0x61, 0x6e, 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x61, + 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0d, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, + 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x52, 0x0a, 0x12, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, + 0x67, 0x6e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x47, + 0x75, 0x69, 0x6c, 0x64, 0x50, 0x65, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x18, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x55, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x12, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x13, 0x53, 0x65, 0x74, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, + 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x54, 0x65, 0x78, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, + 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0f, + 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x12, + 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x54, 0x61, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x75, 0x79, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x54, 0x61, 0x62, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x15, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, + 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, + 0x0a, 0x16, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, + 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, + 0x6f, 0x6e, 0x65, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x1e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x4d, 0x6f, 0x6e, 0x65, + 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, + 0x6e, 0x6b, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x59, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, + 0x65, 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x15, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1d, 0x52, 0x6f, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, + 0x49, 0x74, 0x65, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, + 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x11, 0x4d, 0x6f, 0x76, 0x65, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x6f, 0x76, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, + 0x6d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x75, 0x69, + 0x6c, 0x64, 0x42, 0x61, 0x6e, 0x6b, 0x49, 0x74, 0x65, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x67, 0x65, + 0x6e, 0x2f, 0x67, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2492,85 +5967,174 @@ func file_guilds_proto_rawDescGZIP() []byte { return file_guilds_proto_rawDescData } -var file_guilds_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_guilds_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_guilds_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_guilds_proto_msgTypes = make([]protoimpl.MessageInfo, 66) var file_guilds_proto_goTypes = []interface{}{ - (InviteMemberResponse_Status)(0), // 0: v1.InviteMemberResponse.Status - (*GetInfoParams)(nil), // 1: v1.GetInfoParams - (*GetInfoResponse)(nil), // 2: v1.GetInfoResponse - (*GetRosterInfoParams)(nil), // 3: v1.GetRosterInfoParams - (*GetRosterInfoResponse)(nil), // 4: v1.GetRosterInfoResponse - (*InviteMemberParams)(nil), // 5: v1.InviteMemberParams - (*InviteMemberResponse)(nil), // 6: v1.InviteMemberResponse - (*InviteAcceptedParams)(nil), // 7: v1.InviteAcceptedParams - (*InviteAcceptedResponse)(nil), // 8: v1.InviteAcceptedResponse - (*LeaveParams)(nil), // 9: v1.LeaveParams - (*LeaveResponse)(nil), // 10: v1.LeaveResponse - (*KickParams)(nil), // 11: v1.KickParams - (*KickResponse)(nil), // 12: v1.KickResponse - (*SetMessageOfTheDayParams)(nil), // 13: v1.SetMessageOfTheDayParams - (*SetMessageOfTheDayResponse)(nil), // 14: v1.SetMessageOfTheDayResponse - (*SetGuildInfoParams)(nil), // 15: v1.SetGuildInfoParams - (*SetGuildInfoResponse)(nil), // 16: v1.SetGuildInfoResponse - (*SetNoteParams)(nil), // 17: v1.SetNoteParams - (*SetNoteResponse)(nil), // 18: v1.SetNoteResponse - (*RankUpdateParams)(nil), // 19: v1.RankUpdateParams - (*RankUpdateResponse)(nil), // 20: v1.RankUpdateResponse - (*AddRankParams)(nil), // 21: v1.AddRankParams - (*AddRankResponse)(nil), // 22: v1.AddRankResponse - (*DeleteLastRankParams)(nil), // 23: v1.DeleteLastRankParams - (*DeleteLastRankResponse)(nil), // 24: v1.DeleteLastRankResponse - (*PromoteDemoteParams)(nil), // 25: v1.PromoteDemoteParams - (*PromoteDemoteResponse)(nil), // 26: v1.PromoteDemoteResponse - (*SendGuildMessageParams)(nil), // 27: v1.SendGuildMessageParams - (*SendGuildMessageResponse)(nil), // 28: v1.SendGuildMessageResponse - (*GetRosterInfoResponse_Member)(nil), // 29: v1.GetRosterInfoResponse.Member - (*GetRosterInfoResponse_Rank)(nil), // 30: v1.GetRosterInfoResponse.Rank - (*GetRosterInfoResponse_Guild)(nil), // 31: v1.GetRosterInfoResponse.Guild - (*InviteAcceptedParams_Character)(nil), // 32: v1.InviteAcceptedParams.Character + (InviteMemberResponse_Status)(0), // 0: v1.InviteMemberResponse.Status + (OfferGuildPetitionResponse_Status)(0), // 1: v1.OfferGuildPetitionResponse.Status + (SignGuildPetitionResponse_Status)(0), // 2: v1.SignGuildPetitionResponse.Status + (GuildBankStatus_Status)(0), // 3: v1.GuildBankStatus.Status + (*GetInfoParams)(nil), // 4: v1.GetInfoParams + (*GetInfoResponse)(nil), // 5: v1.GetInfoResponse + (*GetRosterInfoParams)(nil), // 6: v1.GetRosterInfoParams + (*GetRosterInfoResponse)(nil), // 7: v1.GetRosterInfoResponse + (*InviteMemberParams)(nil), // 8: v1.InviteMemberParams + (*InviteMemberResponse)(nil), // 9: v1.InviteMemberResponse + (*InviteAcceptedParams)(nil), // 10: v1.InviteAcceptedParams + (*InviteAcceptedResponse)(nil), // 11: v1.InviteAcceptedResponse + (*LeaveParams)(nil), // 12: v1.LeaveParams + (*LeaveResponse)(nil), // 13: v1.LeaveResponse + (*KickParams)(nil), // 14: v1.KickParams + (*KickResponse)(nil), // 15: v1.KickResponse + (*SetMessageOfTheDayParams)(nil), // 16: v1.SetMessageOfTheDayParams + (*SetMessageOfTheDayResponse)(nil), // 17: v1.SetMessageOfTheDayResponse + (*SetGuildInfoParams)(nil), // 18: v1.SetGuildInfoParams + (*SetGuildInfoResponse)(nil), // 19: v1.SetGuildInfoResponse + (*SetNoteParams)(nil), // 20: v1.SetNoteParams + (*SetNoteResponse)(nil), // 21: v1.SetNoteResponse + (*RankUpdateParams)(nil), // 22: v1.RankUpdateParams + (*RankUpdateResponse)(nil), // 23: v1.RankUpdateResponse + (*AddRankParams)(nil), // 24: v1.AddRankParams + (*AddRankResponse)(nil), // 25: v1.AddRankResponse + (*DeleteLastRankParams)(nil), // 26: v1.DeleteLastRankParams + (*DeleteLastRankResponse)(nil), // 27: v1.DeleteLastRankResponse + (*PromoteDemoteParams)(nil), // 28: v1.PromoteDemoteParams + (*PromoteDemoteResponse)(nil), // 29: v1.PromoteDemoteResponse + (*SendGuildMessageParams)(nil), // 30: v1.SendGuildMessageParams + (*SendGuildMessageResponse)(nil), // 31: v1.SendGuildMessageResponse + (*GuildPetitionSignature)(nil), // 32: v1.GuildPetitionSignature + (*GuildPetition)(nil), // 33: v1.GuildPetition + (*GetGuildPetitionParams)(nil), // 34: v1.GetGuildPetitionParams + (*GetGuildPetitionResponse)(nil), // 35: v1.GetGuildPetitionResponse + (*OfferGuildPetitionParams)(nil), // 36: v1.OfferGuildPetitionParams + (*OfferGuildPetitionResponse)(nil), // 37: v1.OfferGuildPetitionResponse + (*SignGuildPetitionParams)(nil), // 38: v1.SignGuildPetitionParams + (*SignGuildPetitionResponse)(nil), // 39: v1.SignGuildPetitionResponse + (*GuildBankSocketEnchant)(nil), // 40: v1.GuildBankSocketEnchant + (*GuildBankItem)(nil), // 41: v1.GuildBankItem + (*GuildBankTab)(nil), // 42: v1.GuildBankTab + (*GuildBankStatus)(nil), // 43: v1.GuildBankStatus + (*GetGuildBankParams)(nil), // 44: v1.GetGuildBankParams + (*GetGuildBankResponse)(nil), // 45: v1.GetGuildBankResponse + (*GetGuildBankLogParams)(nil), // 46: v1.GetGuildBankLogParams + (*GuildBankLogEntry)(nil), // 47: v1.GuildBankLogEntry + (*GetGuildBankLogResponse)(nil), // 48: v1.GetGuildBankLogResponse + (*GetGuildBankTabTextParams)(nil), // 49: v1.GetGuildBankTabTextParams + (*GetGuildBankTabTextResponse)(nil), // 50: v1.GetGuildBankTabTextResponse + (*UpdateGuildBankTabParams)(nil), // 51: v1.UpdateGuildBankTabParams + (*SetGuildBankTabTextParams)(nil), // 52: v1.SetGuildBankTabTextParams + (*BuyGuildBankTabParams)(nil), // 53: v1.BuyGuildBankTabParams + (*BuyGuildBankTabResponse)(nil), // 54: v1.BuyGuildBankTabResponse + (*DepositGuildBankMoneyParams)(nil), // 55: v1.DepositGuildBankMoneyParams + (*WithdrawGuildBankMoneyParams)(nil), // 56: v1.WithdrawGuildBankMoneyParams + (*RollbackGuildBankMoneyWithdrawParams)(nil), // 57: v1.RollbackGuildBankMoneyWithdrawParams + (*DepositGuildBankItemParams)(nil), // 58: v1.DepositGuildBankItemParams + (*WithdrawGuildBankItemParams)(nil), // 59: v1.WithdrawGuildBankItemParams + (*RollbackGuildBankItemWithdrawParams)(nil), // 60: v1.RollbackGuildBankItemWithdrawParams + (*MoveGuildBankItemParams)(nil), // 61: v1.MoveGuildBankItemParams + (*GuildBankActionResponse)(nil), // 62: v1.GuildBankActionResponse + (*GuildBankItemMutationResponse)(nil), // 63: v1.GuildBankItemMutationResponse + (*GetRosterInfoResponse_Member)(nil), // 64: v1.GetRosterInfoResponse.Member + (*GetRosterInfoResponse_Rank)(nil), // 65: v1.GetRosterInfoResponse.Rank + (*GetRosterInfoResponse_Guild)(nil), // 66: v1.GetRosterInfoResponse.Guild + (*GetRosterInfoResponse_Rank_BankTabRight)(nil), // 67: v1.GetRosterInfoResponse.Rank.BankTabRight + (*InviteAcceptedParams_Character)(nil), // 68: v1.InviteAcceptedParams.Character + (*RankUpdateParams_BankTabRight)(nil), // 69: v1.RankUpdateParams.BankTabRight } var file_guilds_proto_depIdxs = []int32{ - 31, // 0: v1.GetRosterInfoResponse.guild:type_name -> v1.GetRosterInfoResponse.Guild - 32, // 1: v1.InviteAcceptedParams.character:type_name -> v1.InviteAcceptedParams.Character - 29, // 2: v1.GetRosterInfoResponse.Guild.members:type_name -> v1.GetRosterInfoResponse.Member - 30, // 3: v1.GetRosterInfoResponse.Guild.ranks:type_name -> v1.GetRosterInfoResponse.Rank - 1, // 4: v1.GuildService.GetGuildInfo:input_type -> v1.GetInfoParams - 3, // 5: v1.GuildService.GetRosterInfo:input_type -> v1.GetRosterInfoParams - 5, // 6: v1.GuildService.InviteMember:input_type -> v1.InviteMemberParams - 7, // 7: v1.GuildService.InviteAccepted:input_type -> v1.InviteAcceptedParams - 9, // 8: v1.GuildService.Leave:input_type -> v1.LeaveParams - 11, // 9: v1.GuildService.Kick:input_type -> v1.KickParams - 13, // 10: v1.GuildService.SetMessageOfTheDay:input_type -> v1.SetMessageOfTheDayParams - 15, // 11: v1.GuildService.SetGuildInfo:input_type -> v1.SetGuildInfoParams - 17, // 12: v1.GuildService.SetMemberPublicNote:input_type -> v1.SetNoteParams - 17, // 13: v1.GuildService.SetMemberOfficerNote:input_type -> v1.SetNoteParams - 19, // 14: v1.GuildService.UpdateRank:input_type -> v1.RankUpdateParams - 21, // 15: v1.GuildService.AddRank:input_type -> v1.AddRankParams - 23, // 16: v1.GuildService.DeleteLastRank:input_type -> v1.DeleteLastRankParams - 25, // 17: v1.GuildService.PromoteMember:input_type -> v1.PromoteDemoteParams - 25, // 18: v1.GuildService.DemoteMember:input_type -> v1.PromoteDemoteParams - 27, // 19: v1.GuildService.SendGuildMessage:input_type -> v1.SendGuildMessageParams - 2, // 20: v1.GuildService.GetGuildInfo:output_type -> v1.GetInfoResponse - 4, // 21: v1.GuildService.GetRosterInfo:output_type -> v1.GetRosterInfoResponse - 6, // 22: v1.GuildService.InviteMember:output_type -> v1.InviteMemberResponse - 8, // 23: v1.GuildService.InviteAccepted:output_type -> v1.InviteAcceptedResponse - 10, // 24: v1.GuildService.Leave:output_type -> v1.LeaveResponse - 12, // 25: v1.GuildService.Kick:output_type -> v1.KickResponse - 14, // 26: v1.GuildService.SetMessageOfTheDay:output_type -> v1.SetMessageOfTheDayResponse - 16, // 27: v1.GuildService.SetGuildInfo:output_type -> v1.SetGuildInfoResponse - 18, // 28: v1.GuildService.SetMemberPublicNote:output_type -> v1.SetNoteResponse - 18, // 29: v1.GuildService.SetMemberOfficerNote:output_type -> v1.SetNoteResponse - 20, // 30: v1.GuildService.UpdateRank:output_type -> v1.RankUpdateResponse - 22, // 31: v1.GuildService.AddRank:output_type -> v1.AddRankResponse - 24, // 32: v1.GuildService.DeleteLastRank:output_type -> v1.DeleteLastRankResponse - 26, // 33: v1.GuildService.PromoteMember:output_type -> v1.PromoteDemoteResponse - 26, // 34: v1.GuildService.DemoteMember:output_type -> v1.PromoteDemoteResponse - 28, // 35: v1.GuildService.SendGuildMessage:output_type -> v1.SendGuildMessageResponse - 20, // [20:36] is the sub-list for method output_type - 4, // [4:20] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 66, // 0: v1.GetRosterInfoResponse.guild:type_name -> v1.GetRosterInfoResponse.Guild + 68, // 1: v1.InviteAcceptedParams.character:type_name -> v1.InviteAcceptedParams.Character + 69, // 2: v1.RankUpdateParams.bankTabRights:type_name -> v1.RankUpdateParams.BankTabRight + 32, // 3: v1.GuildPetition.signatures:type_name -> v1.GuildPetitionSignature + 33, // 4: v1.GetGuildPetitionResponse.petition:type_name -> v1.GuildPetition + 1, // 5: v1.OfferGuildPetitionResponse.status:type_name -> v1.OfferGuildPetitionResponse.Status + 2, // 6: v1.SignGuildPetitionResponse.status:type_name -> v1.SignGuildPetitionResponse.Status + 40, // 7: v1.GuildBankItem.socketEnchants:type_name -> v1.GuildBankSocketEnchant + 41, // 8: v1.GuildBankTab.items:type_name -> v1.GuildBankItem + 3, // 9: v1.GetGuildBankResponse.status:type_name -> v1.GuildBankStatus.Status + 42, // 10: v1.GetGuildBankResponse.tabs:type_name -> v1.GuildBankTab + 41, // 11: v1.GetGuildBankResponse.items:type_name -> v1.GuildBankItem + 3, // 12: v1.GetGuildBankLogResponse.status:type_name -> v1.GuildBankStatus.Status + 47, // 13: v1.GetGuildBankLogResponse.entries:type_name -> v1.GuildBankLogEntry + 3, // 14: v1.GetGuildBankTabTextResponse.status:type_name -> v1.GuildBankStatus.Status + 3, // 15: v1.BuyGuildBankTabResponse.status:type_name -> v1.GuildBankStatus.Status + 41, // 16: v1.DepositGuildBankItemParams.item:type_name -> v1.GuildBankItem + 41, // 17: v1.RollbackGuildBankItemWithdrawParams.item:type_name -> v1.GuildBankItem + 3, // 18: v1.GuildBankActionResponse.status:type_name -> v1.GuildBankStatus.Status + 3, // 19: v1.GuildBankItemMutationResponse.status:type_name -> v1.GuildBankStatus.Status + 41, // 20: v1.GuildBankItemMutationResponse.item:type_name -> v1.GuildBankItem + 67, // 21: v1.GetRosterInfoResponse.Rank.bankTabRights:type_name -> v1.GetRosterInfoResponse.Rank.BankTabRight + 64, // 22: v1.GetRosterInfoResponse.Guild.members:type_name -> v1.GetRosterInfoResponse.Member + 65, // 23: v1.GetRosterInfoResponse.Guild.ranks:type_name -> v1.GetRosterInfoResponse.Rank + 4, // 24: v1.GuildService.GetGuildInfo:input_type -> v1.GetInfoParams + 6, // 25: v1.GuildService.GetRosterInfo:input_type -> v1.GetRosterInfoParams + 8, // 26: v1.GuildService.InviteMember:input_type -> v1.InviteMemberParams + 10, // 27: v1.GuildService.InviteAccepted:input_type -> v1.InviteAcceptedParams + 12, // 28: v1.GuildService.Leave:input_type -> v1.LeaveParams + 14, // 29: v1.GuildService.Kick:input_type -> v1.KickParams + 16, // 30: v1.GuildService.SetMessageOfTheDay:input_type -> v1.SetMessageOfTheDayParams + 18, // 31: v1.GuildService.SetGuildInfo:input_type -> v1.SetGuildInfoParams + 20, // 32: v1.GuildService.SetMemberPublicNote:input_type -> v1.SetNoteParams + 20, // 33: v1.GuildService.SetMemberOfficerNote:input_type -> v1.SetNoteParams + 22, // 34: v1.GuildService.UpdateRank:input_type -> v1.RankUpdateParams + 24, // 35: v1.GuildService.AddRank:input_type -> v1.AddRankParams + 26, // 36: v1.GuildService.DeleteLastRank:input_type -> v1.DeleteLastRankParams + 28, // 37: v1.GuildService.PromoteMember:input_type -> v1.PromoteDemoteParams + 28, // 38: v1.GuildService.DemoteMember:input_type -> v1.PromoteDemoteParams + 30, // 39: v1.GuildService.SendGuildMessage:input_type -> v1.SendGuildMessageParams + 34, // 40: v1.GuildService.GetGuildPetition:input_type -> v1.GetGuildPetitionParams + 36, // 41: v1.GuildService.OfferGuildPetition:input_type -> v1.OfferGuildPetitionParams + 38, // 42: v1.GuildService.SignGuildPetition:input_type -> v1.SignGuildPetitionParams + 44, // 43: v1.GuildService.GetGuildBank:input_type -> v1.GetGuildBankParams + 46, // 44: v1.GuildService.GetGuildBankLog:input_type -> v1.GetGuildBankLogParams + 49, // 45: v1.GuildService.GetGuildBankTabText:input_type -> v1.GetGuildBankTabTextParams + 51, // 46: v1.GuildService.UpdateGuildBankTab:input_type -> v1.UpdateGuildBankTabParams + 52, // 47: v1.GuildService.SetGuildBankTabText:input_type -> v1.SetGuildBankTabTextParams + 53, // 48: v1.GuildService.BuyGuildBankTab:input_type -> v1.BuyGuildBankTabParams + 55, // 49: v1.GuildService.DepositGuildBankMoney:input_type -> v1.DepositGuildBankMoneyParams + 56, // 50: v1.GuildService.WithdrawGuildBankMoney:input_type -> v1.WithdrawGuildBankMoneyParams + 57, // 51: v1.GuildService.RollbackGuildBankMoneyWithdraw:input_type -> v1.RollbackGuildBankMoneyWithdrawParams + 58, // 52: v1.GuildService.DepositGuildBankItem:input_type -> v1.DepositGuildBankItemParams + 59, // 53: v1.GuildService.WithdrawGuildBankItem:input_type -> v1.WithdrawGuildBankItemParams + 60, // 54: v1.GuildService.RollbackGuildBankItemWithdraw:input_type -> v1.RollbackGuildBankItemWithdrawParams + 61, // 55: v1.GuildService.MoveGuildBankItem:input_type -> v1.MoveGuildBankItemParams + 5, // 56: v1.GuildService.GetGuildInfo:output_type -> v1.GetInfoResponse + 7, // 57: v1.GuildService.GetRosterInfo:output_type -> v1.GetRosterInfoResponse + 9, // 58: v1.GuildService.InviteMember:output_type -> v1.InviteMemberResponse + 11, // 59: v1.GuildService.InviteAccepted:output_type -> v1.InviteAcceptedResponse + 13, // 60: v1.GuildService.Leave:output_type -> v1.LeaveResponse + 15, // 61: v1.GuildService.Kick:output_type -> v1.KickResponse + 17, // 62: v1.GuildService.SetMessageOfTheDay:output_type -> v1.SetMessageOfTheDayResponse + 19, // 63: v1.GuildService.SetGuildInfo:output_type -> v1.SetGuildInfoResponse + 21, // 64: v1.GuildService.SetMemberPublicNote:output_type -> v1.SetNoteResponse + 21, // 65: v1.GuildService.SetMemberOfficerNote:output_type -> v1.SetNoteResponse + 23, // 66: v1.GuildService.UpdateRank:output_type -> v1.RankUpdateResponse + 25, // 67: v1.GuildService.AddRank:output_type -> v1.AddRankResponse + 27, // 68: v1.GuildService.DeleteLastRank:output_type -> v1.DeleteLastRankResponse + 29, // 69: v1.GuildService.PromoteMember:output_type -> v1.PromoteDemoteResponse + 29, // 70: v1.GuildService.DemoteMember:output_type -> v1.PromoteDemoteResponse + 31, // 71: v1.GuildService.SendGuildMessage:output_type -> v1.SendGuildMessageResponse + 35, // 72: v1.GuildService.GetGuildPetition:output_type -> v1.GetGuildPetitionResponse + 37, // 73: v1.GuildService.OfferGuildPetition:output_type -> v1.OfferGuildPetitionResponse + 39, // 74: v1.GuildService.SignGuildPetition:output_type -> v1.SignGuildPetitionResponse + 45, // 75: v1.GuildService.GetGuildBank:output_type -> v1.GetGuildBankResponse + 48, // 76: v1.GuildService.GetGuildBankLog:output_type -> v1.GetGuildBankLogResponse + 50, // 77: v1.GuildService.GetGuildBankTabText:output_type -> v1.GetGuildBankTabTextResponse + 62, // 78: v1.GuildService.UpdateGuildBankTab:output_type -> v1.GuildBankActionResponse + 62, // 79: v1.GuildService.SetGuildBankTabText:output_type -> v1.GuildBankActionResponse + 54, // 80: v1.GuildService.BuyGuildBankTab:output_type -> v1.BuyGuildBankTabResponse + 62, // 81: v1.GuildService.DepositGuildBankMoney:output_type -> v1.GuildBankActionResponse + 62, // 82: v1.GuildService.WithdrawGuildBankMoney:output_type -> v1.GuildBankActionResponse + 62, // 83: v1.GuildService.RollbackGuildBankMoneyWithdraw:output_type -> v1.GuildBankActionResponse + 63, // 84: v1.GuildService.DepositGuildBankItem:output_type -> v1.GuildBankItemMutationResponse + 63, // 85: v1.GuildService.WithdrawGuildBankItem:output_type -> v1.GuildBankItemMutationResponse + 63, // 86: v1.GuildService.RollbackGuildBankItemWithdraw:output_type -> v1.GuildBankItemMutationResponse + 63, // 87: v1.GuildService.MoveGuildBankItem:output_type -> v1.GuildBankItemMutationResponse + 56, // [56:88] is the sub-list for method output_type + 24, // [24:56] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_guilds_proto_init() } @@ -2591,8 +6155,212 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetInfoResponse); i { + file_guilds_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRosterInfoParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRosterInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteMemberParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteMemberResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteAcceptedParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteAcceptedResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMessageOfTheDayParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMessageOfTheDayResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGuildInfoParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGuildInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetNoteParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetNoteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankUpdateParams); i { case 0: return &v.state case 1: @@ -2603,8 +6371,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRosterInfoParams); i { + file_guilds_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankUpdateResponse); i { case 0: return &v.state case 1: @@ -2615,8 +6383,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRosterInfoResponse); i { + file_guilds_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRankParams); i { case 0: return &v.state case 1: @@ -2627,8 +6395,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteMemberParams); i { + file_guilds_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddRankResponse); i { case 0: return &v.state case 1: @@ -2639,8 +6407,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteMemberResponse); i { + file_guilds_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteLastRankParams); i { case 0: return &v.state case 1: @@ -2651,8 +6419,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteAcceptedParams); i { + file_guilds_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteLastRankResponse); i { case 0: return &v.state case 1: @@ -2663,8 +6431,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteAcceptedResponse); i { + file_guilds_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PromoteDemoteParams); i { case 0: return &v.state case 1: @@ -2675,8 +6443,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveParams); i { + file_guilds_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PromoteDemoteResponse); i { case 0: return &v.state case 1: @@ -2687,8 +6455,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LeaveResponse); i { + file_guilds_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGuildMessageParams); i { case 0: return &v.state case 1: @@ -2699,8 +6467,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickParams); i { + file_guilds_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendGuildMessageResponse); i { case 0: return &v.state case 1: @@ -2711,8 +6479,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickResponse); i { + file_guilds_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildPetitionSignature); i { case 0: return &v.state case 1: @@ -2723,8 +6491,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMessageOfTheDayParams); i { + file_guilds_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildPetition); i { case 0: return &v.state case 1: @@ -2735,8 +6503,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMessageOfTheDayResponse); i { + file_guilds_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildPetitionParams); i { case 0: return &v.state case 1: @@ -2747,8 +6515,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGuildInfoParams); i { + file_guilds_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildPetitionResponse); i { case 0: return &v.state case 1: @@ -2759,8 +6527,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGuildInfoResponse); i { + file_guilds_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfferGuildPetitionParams); i { case 0: return &v.state case 1: @@ -2771,8 +6539,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetNoteParams); i { + file_guilds_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfferGuildPetitionResponse); i { case 0: return &v.state case 1: @@ -2783,8 +6551,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetNoteResponse); i { + file_guilds_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignGuildPetitionParams); i { case 0: return &v.state case 1: @@ -2795,8 +6563,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankUpdateParams); i { + file_guilds_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignGuildPetitionResponse); i { case 0: return &v.state case 1: @@ -2807,8 +6575,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RankUpdateResponse); i { + file_guilds_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankSocketEnchant); i { case 0: return &v.state case 1: @@ -2819,8 +6587,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRankParams); i { + file_guilds_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankItem); i { case 0: return &v.state case 1: @@ -2831,8 +6599,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddRankResponse); i { + file_guilds_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankTab); i { case 0: return &v.state case 1: @@ -2843,8 +6611,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteLastRankParams); i { + file_guilds_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankStatus); i { case 0: return &v.state case 1: @@ -2855,8 +6623,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteLastRankResponse); i { + file_guilds_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankParams); i { case 0: return &v.state case 1: @@ -2867,8 +6635,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PromoteDemoteParams); i { + file_guilds_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankResponse); i { case 0: return &v.state case 1: @@ -2879,8 +6647,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PromoteDemoteResponse); i { + file_guilds_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankLogParams); i { case 0: return &v.state case 1: @@ -2891,8 +6659,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGuildMessageParams); i { + file_guilds_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankLogEntry); i { case 0: return &v.state case 1: @@ -2903,8 +6671,8 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SendGuildMessageResponse); i { + file_guilds_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankLogResponse); i { case 0: return &v.state case 1: @@ -2915,7 +6683,187 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankTabTextParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGuildBankTabTextResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateGuildBankTabParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGuildBankTabTextParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuyGuildBankTabParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BuyGuildBankTabResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DepositGuildBankMoneyParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawGuildBankMoneyParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RollbackGuildBankMoneyWithdrawParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DepositGuildBankItemParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawGuildBankItemParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RollbackGuildBankItemWithdrawParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MoveGuildBankItemParams); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankActionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GuildBankItemMutationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRosterInfoResponse_Member); i { case 0: return &v.state @@ -2927,7 +6875,7 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRosterInfoResponse_Rank); i { case 0: return &v.state @@ -2939,7 +6887,7 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRosterInfoResponse_Guild); i { case 0: return &v.state @@ -2951,7 +6899,19 @@ func file_guilds_proto_init() { return nil } } - file_guilds_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_guilds_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetRosterInfoResponse_Rank_BankTabRight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_guilds_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InviteAcceptedParams_Character); i { case 0: return &v.state @@ -2963,14 +6923,26 @@ func file_guilds_proto_init() { return nil } } + file_guilds_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RankUpdateParams_BankTabRight); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_guilds_proto_rawDesc, - NumEnums: 1, - NumMessages: 32, + NumEnums: 4, + NumMessages: 66, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/guilds/pb/guilds_grpc.pb.go b/gen/guilds/pb/guilds_grpc.pb.go index 98ef71c..066506c 100644 --- a/gen/guilds/pb/guilds_grpc.pb.go +++ b/gen/guilds/pb/guilds_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: guilds.proto package pb @@ -19,22 +19,38 @@ import ( const _ = grpc.SupportPackageIsVersion7 const ( - GuildService_GetGuildInfo_FullMethodName = "/v1.GuildService/GetGuildInfo" - GuildService_GetRosterInfo_FullMethodName = "/v1.GuildService/GetRosterInfo" - GuildService_InviteMember_FullMethodName = "/v1.GuildService/InviteMember" - GuildService_InviteAccepted_FullMethodName = "/v1.GuildService/InviteAccepted" - GuildService_Leave_FullMethodName = "/v1.GuildService/Leave" - GuildService_Kick_FullMethodName = "/v1.GuildService/Kick" - GuildService_SetMessageOfTheDay_FullMethodName = "/v1.GuildService/SetMessageOfTheDay" - GuildService_SetGuildInfo_FullMethodName = "/v1.GuildService/SetGuildInfo" - GuildService_SetMemberPublicNote_FullMethodName = "/v1.GuildService/SetMemberPublicNote" - GuildService_SetMemberOfficerNote_FullMethodName = "/v1.GuildService/SetMemberOfficerNote" - GuildService_UpdateRank_FullMethodName = "/v1.GuildService/UpdateRank" - GuildService_AddRank_FullMethodName = "/v1.GuildService/AddRank" - GuildService_DeleteLastRank_FullMethodName = "/v1.GuildService/DeleteLastRank" - GuildService_PromoteMember_FullMethodName = "/v1.GuildService/PromoteMember" - GuildService_DemoteMember_FullMethodName = "/v1.GuildService/DemoteMember" - GuildService_SendGuildMessage_FullMethodName = "/v1.GuildService/SendGuildMessage" + GuildService_GetGuildInfo_FullMethodName = "/v1.GuildService/GetGuildInfo" + GuildService_GetRosterInfo_FullMethodName = "/v1.GuildService/GetRosterInfo" + GuildService_InviteMember_FullMethodName = "/v1.GuildService/InviteMember" + GuildService_InviteAccepted_FullMethodName = "/v1.GuildService/InviteAccepted" + GuildService_Leave_FullMethodName = "/v1.GuildService/Leave" + GuildService_Kick_FullMethodName = "/v1.GuildService/Kick" + GuildService_SetMessageOfTheDay_FullMethodName = "/v1.GuildService/SetMessageOfTheDay" + GuildService_SetGuildInfo_FullMethodName = "/v1.GuildService/SetGuildInfo" + GuildService_SetMemberPublicNote_FullMethodName = "/v1.GuildService/SetMemberPublicNote" + GuildService_SetMemberOfficerNote_FullMethodName = "/v1.GuildService/SetMemberOfficerNote" + GuildService_UpdateRank_FullMethodName = "/v1.GuildService/UpdateRank" + GuildService_AddRank_FullMethodName = "/v1.GuildService/AddRank" + GuildService_DeleteLastRank_FullMethodName = "/v1.GuildService/DeleteLastRank" + GuildService_PromoteMember_FullMethodName = "/v1.GuildService/PromoteMember" + GuildService_DemoteMember_FullMethodName = "/v1.GuildService/DemoteMember" + GuildService_SendGuildMessage_FullMethodName = "/v1.GuildService/SendGuildMessage" + GuildService_GetGuildPetition_FullMethodName = "/v1.GuildService/GetGuildPetition" + GuildService_OfferGuildPetition_FullMethodName = "/v1.GuildService/OfferGuildPetition" + GuildService_SignGuildPetition_FullMethodName = "/v1.GuildService/SignGuildPetition" + GuildService_GetGuildBank_FullMethodName = "/v1.GuildService/GetGuildBank" + GuildService_GetGuildBankLog_FullMethodName = "/v1.GuildService/GetGuildBankLog" + GuildService_GetGuildBankTabText_FullMethodName = "/v1.GuildService/GetGuildBankTabText" + GuildService_UpdateGuildBankTab_FullMethodName = "/v1.GuildService/UpdateGuildBankTab" + GuildService_SetGuildBankTabText_FullMethodName = "/v1.GuildService/SetGuildBankTabText" + GuildService_BuyGuildBankTab_FullMethodName = "/v1.GuildService/BuyGuildBankTab" + GuildService_DepositGuildBankMoney_FullMethodName = "/v1.GuildService/DepositGuildBankMoney" + GuildService_WithdrawGuildBankMoney_FullMethodName = "/v1.GuildService/WithdrawGuildBankMoney" + GuildService_RollbackGuildBankMoneyWithdraw_FullMethodName = "/v1.GuildService/RollbackGuildBankMoneyWithdraw" + GuildService_DepositGuildBankItem_FullMethodName = "/v1.GuildService/DepositGuildBankItem" + GuildService_WithdrawGuildBankItem_FullMethodName = "/v1.GuildService/WithdrawGuildBankItem" + GuildService_RollbackGuildBankItemWithdraw_FullMethodName = "/v1.GuildService/RollbackGuildBankItemWithdraw" + GuildService_MoveGuildBankItem_FullMethodName = "/v1.GuildService/MoveGuildBankItem" ) // GuildServiceClient is the client API for GuildService service. @@ -57,6 +73,22 @@ type GuildServiceClient interface { PromoteMember(ctx context.Context, in *PromoteDemoteParams, opts ...grpc.CallOption) (*PromoteDemoteResponse, error) DemoteMember(ctx context.Context, in *PromoteDemoteParams, opts ...grpc.CallOption) (*PromoteDemoteResponse, error) SendGuildMessage(ctx context.Context, in *SendGuildMessageParams, opts ...grpc.CallOption) (*SendGuildMessageResponse, error) + GetGuildPetition(ctx context.Context, in *GetGuildPetitionParams, opts ...grpc.CallOption) (*GetGuildPetitionResponse, error) + OfferGuildPetition(ctx context.Context, in *OfferGuildPetitionParams, opts ...grpc.CallOption) (*OfferGuildPetitionResponse, error) + SignGuildPetition(ctx context.Context, in *SignGuildPetitionParams, opts ...grpc.CallOption) (*SignGuildPetitionResponse, error) + GetGuildBank(ctx context.Context, in *GetGuildBankParams, opts ...grpc.CallOption) (*GetGuildBankResponse, error) + GetGuildBankLog(ctx context.Context, in *GetGuildBankLogParams, opts ...grpc.CallOption) (*GetGuildBankLogResponse, error) + GetGuildBankTabText(ctx context.Context, in *GetGuildBankTabTextParams, opts ...grpc.CallOption) (*GetGuildBankTabTextResponse, error) + UpdateGuildBankTab(ctx context.Context, in *UpdateGuildBankTabParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + SetGuildBankTabText(ctx context.Context, in *SetGuildBankTabTextParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + BuyGuildBankTab(ctx context.Context, in *BuyGuildBankTabParams, opts ...grpc.CallOption) (*BuyGuildBankTabResponse, error) + DepositGuildBankMoney(ctx context.Context, in *DepositGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + WithdrawGuildBankMoney(ctx context.Context, in *WithdrawGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + RollbackGuildBankMoneyWithdraw(ctx context.Context, in *RollbackGuildBankMoneyWithdrawParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) + DepositGuildBankItem(ctx context.Context, in *DepositGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) + WithdrawGuildBankItem(ctx context.Context, in *WithdrawGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) + RollbackGuildBankItemWithdraw(ctx context.Context, in *RollbackGuildBankItemWithdrawParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) + MoveGuildBankItem(ctx context.Context, in *MoveGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) } type guildServiceClient struct { @@ -211,6 +243,150 @@ func (c *guildServiceClient) SendGuildMessage(ctx context.Context, in *SendGuild return out, nil } +func (c *guildServiceClient) GetGuildPetition(ctx context.Context, in *GetGuildPetitionParams, opts ...grpc.CallOption) (*GetGuildPetitionResponse, error) { + out := new(GetGuildPetitionResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) OfferGuildPetition(ctx context.Context, in *OfferGuildPetitionParams, opts ...grpc.CallOption) (*OfferGuildPetitionResponse, error) { + out := new(OfferGuildPetitionResponse) + err := c.cc.Invoke(ctx, GuildService_OfferGuildPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) SignGuildPetition(ctx context.Context, in *SignGuildPetitionParams, opts ...grpc.CallOption) (*SignGuildPetitionResponse, error) { + out := new(SignGuildPetitionResponse) + err := c.cc.Invoke(ctx, GuildService_SignGuildPetition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) GetGuildBank(ctx context.Context, in *GetGuildBankParams, opts ...grpc.CallOption) (*GetGuildBankResponse, error) { + out := new(GetGuildBankResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildBank_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) GetGuildBankLog(ctx context.Context, in *GetGuildBankLogParams, opts ...grpc.CallOption) (*GetGuildBankLogResponse, error) { + out := new(GetGuildBankLogResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildBankLog_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) GetGuildBankTabText(ctx context.Context, in *GetGuildBankTabTextParams, opts ...grpc.CallOption) (*GetGuildBankTabTextResponse, error) { + out := new(GetGuildBankTabTextResponse) + err := c.cc.Invoke(ctx, GuildService_GetGuildBankTabText_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) UpdateGuildBankTab(ctx context.Context, in *UpdateGuildBankTabParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_UpdateGuildBankTab_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) SetGuildBankTabText(ctx context.Context, in *SetGuildBankTabTextParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_SetGuildBankTabText_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) BuyGuildBankTab(ctx context.Context, in *BuyGuildBankTabParams, opts ...grpc.CallOption) (*BuyGuildBankTabResponse, error) { + out := new(BuyGuildBankTabResponse) + err := c.cc.Invoke(ctx, GuildService_BuyGuildBankTab_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) DepositGuildBankMoney(ctx context.Context, in *DepositGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_DepositGuildBankMoney_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) WithdrawGuildBankMoney(ctx context.Context, in *WithdrawGuildBankMoneyParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_WithdrawGuildBankMoney_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) RollbackGuildBankMoneyWithdraw(ctx context.Context, in *RollbackGuildBankMoneyWithdrawParams, opts ...grpc.CallOption) (*GuildBankActionResponse, error) { + out := new(GuildBankActionResponse) + err := c.cc.Invoke(ctx, GuildService_RollbackGuildBankMoneyWithdraw_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) DepositGuildBankItem(ctx context.Context, in *DepositGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_DepositGuildBankItem_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) WithdrawGuildBankItem(ctx context.Context, in *WithdrawGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_WithdrawGuildBankItem_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) RollbackGuildBankItemWithdraw(ctx context.Context, in *RollbackGuildBankItemWithdrawParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_RollbackGuildBankItemWithdraw_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *guildServiceClient) MoveGuildBankItem(ctx context.Context, in *MoveGuildBankItemParams, opts ...grpc.CallOption) (*GuildBankItemMutationResponse, error) { + out := new(GuildBankItemMutationResponse) + err := c.cc.Invoke(ctx, GuildService_MoveGuildBankItem_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GuildServiceServer is the server API for GuildService service. // All implementations must embed UnimplementedGuildServiceServer // for forward compatibility @@ -231,6 +407,22 @@ type GuildServiceServer interface { PromoteMember(context.Context, *PromoteDemoteParams) (*PromoteDemoteResponse, error) DemoteMember(context.Context, *PromoteDemoteParams) (*PromoteDemoteResponse, error) SendGuildMessage(context.Context, *SendGuildMessageParams) (*SendGuildMessageResponse, error) + GetGuildPetition(context.Context, *GetGuildPetitionParams) (*GetGuildPetitionResponse, error) + OfferGuildPetition(context.Context, *OfferGuildPetitionParams) (*OfferGuildPetitionResponse, error) + SignGuildPetition(context.Context, *SignGuildPetitionParams) (*SignGuildPetitionResponse, error) + GetGuildBank(context.Context, *GetGuildBankParams) (*GetGuildBankResponse, error) + GetGuildBankLog(context.Context, *GetGuildBankLogParams) (*GetGuildBankLogResponse, error) + GetGuildBankTabText(context.Context, *GetGuildBankTabTextParams) (*GetGuildBankTabTextResponse, error) + UpdateGuildBankTab(context.Context, *UpdateGuildBankTabParams) (*GuildBankActionResponse, error) + SetGuildBankTabText(context.Context, *SetGuildBankTabTextParams) (*GuildBankActionResponse, error) + BuyGuildBankTab(context.Context, *BuyGuildBankTabParams) (*BuyGuildBankTabResponse, error) + DepositGuildBankMoney(context.Context, *DepositGuildBankMoneyParams) (*GuildBankActionResponse, error) + WithdrawGuildBankMoney(context.Context, *WithdrawGuildBankMoneyParams) (*GuildBankActionResponse, error) + RollbackGuildBankMoneyWithdraw(context.Context, *RollbackGuildBankMoneyWithdrawParams) (*GuildBankActionResponse, error) + DepositGuildBankItem(context.Context, *DepositGuildBankItemParams) (*GuildBankItemMutationResponse, error) + WithdrawGuildBankItem(context.Context, *WithdrawGuildBankItemParams) (*GuildBankItemMutationResponse, error) + RollbackGuildBankItemWithdraw(context.Context, *RollbackGuildBankItemWithdrawParams) (*GuildBankItemMutationResponse, error) + MoveGuildBankItem(context.Context, *MoveGuildBankItemParams) (*GuildBankItemMutationResponse, error) mustEmbedUnimplementedGuildServiceServer() } @@ -286,6 +478,54 @@ func (UnimplementedGuildServiceServer) DemoteMember(context.Context, *PromoteDem func (UnimplementedGuildServiceServer) SendGuildMessage(context.Context, *SendGuildMessageParams) (*SendGuildMessageResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SendGuildMessage not implemented") } +func (UnimplementedGuildServiceServer) GetGuildPetition(context.Context, *GetGuildPetitionParams) (*GetGuildPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildPetition not implemented") +} +func (UnimplementedGuildServiceServer) OfferGuildPetition(context.Context, *OfferGuildPetitionParams) (*OfferGuildPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method OfferGuildPetition not implemented") +} +func (UnimplementedGuildServiceServer) SignGuildPetition(context.Context, *SignGuildPetitionParams) (*SignGuildPetitionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SignGuildPetition not implemented") +} +func (UnimplementedGuildServiceServer) GetGuildBank(context.Context, *GetGuildBankParams) (*GetGuildBankResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildBank not implemented") +} +func (UnimplementedGuildServiceServer) GetGuildBankLog(context.Context, *GetGuildBankLogParams) (*GetGuildBankLogResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildBankLog not implemented") +} +func (UnimplementedGuildServiceServer) GetGuildBankTabText(context.Context, *GetGuildBankTabTextParams) (*GetGuildBankTabTextResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGuildBankTabText not implemented") +} +func (UnimplementedGuildServiceServer) UpdateGuildBankTab(context.Context, *UpdateGuildBankTabParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGuildBankTab not implemented") +} +func (UnimplementedGuildServiceServer) SetGuildBankTabText(context.Context, *SetGuildBankTabTextParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetGuildBankTabText not implemented") +} +func (UnimplementedGuildServiceServer) BuyGuildBankTab(context.Context, *BuyGuildBankTabParams) (*BuyGuildBankTabResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method BuyGuildBankTab not implemented") +} +func (UnimplementedGuildServiceServer) DepositGuildBankMoney(context.Context, *DepositGuildBankMoneyParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DepositGuildBankMoney not implemented") +} +func (UnimplementedGuildServiceServer) WithdrawGuildBankMoney(context.Context, *WithdrawGuildBankMoneyParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WithdrawGuildBankMoney not implemented") +} +func (UnimplementedGuildServiceServer) RollbackGuildBankMoneyWithdraw(context.Context, *RollbackGuildBankMoneyWithdrawParams) (*GuildBankActionResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RollbackGuildBankMoneyWithdraw not implemented") +} +func (UnimplementedGuildServiceServer) DepositGuildBankItem(context.Context, *DepositGuildBankItemParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DepositGuildBankItem not implemented") +} +func (UnimplementedGuildServiceServer) WithdrawGuildBankItem(context.Context, *WithdrawGuildBankItemParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WithdrawGuildBankItem not implemented") +} +func (UnimplementedGuildServiceServer) RollbackGuildBankItemWithdraw(context.Context, *RollbackGuildBankItemWithdrawParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RollbackGuildBankItemWithdraw not implemented") +} +func (UnimplementedGuildServiceServer) MoveGuildBankItem(context.Context, *MoveGuildBankItemParams) (*GuildBankItemMutationResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MoveGuildBankItem not implemented") +} func (UnimplementedGuildServiceServer) mustEmbedUnimplementedGuildServiceServer() {} // UnsafeGuildServiceServer may be embedded to opt out of forward compatibility for this service. @@ -587,6 +827,294 @@ func _GuildService_SendGuildMessage_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _GuildService_GetGuildPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildPetitionParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildPetition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildPetition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildPetition(ctx, req.(*GetGuildPetitionParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_OfferGuildPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OfferGuildPetitionParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).OfferGuildPetition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_OfferGuildPetition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).OfferGuildPetition(ctx, req.(*OfferGuildPetitionParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_SignGuildPetition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SignGuildPetitionParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).SignGuildPetition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_SignGuildPetition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).SignGuildPetition(ctx, req.(*SignGuildPetitionParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_GetGuildBank_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildBankParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildBank(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildBank_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildBank(ctx, req.(*GetGuildBankParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_GetGuildBankLog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildBankLogParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildBankLog(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildBankLog_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildBankLog(ctx, req.(*GetGuildBankLogParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_GetGuildBankTabText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGuildBankTabTextParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).GetGuildBankTabText(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_GetGuildBankTabText_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).GetGuildBankTabText(ctx, req.(*GetGuildBankTabTextParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_UpdateGuildBankTab_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGuildBankTabParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).UpdateGuildBankTab(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_UpdateGuildBankTab_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).UpdateGuildBankTab(ctx, req.(*UpdateGuildBankTabParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_SetGuildBankTabText_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetGuildBankTabTextParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).SetGuildBankTabText(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_SetGuildBankTabText_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).SetGuildBankTabText(ctx, req.(*SetGuildBankTabTextParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_BuyGuildBankTab_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BuyGuildBankTabParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).BuyGuildBankTab(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_BuyGuildBankTab_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).BuyGuildBankTab(ctx, req.(*BuyGuildBankTabParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_DepositGuildBankMoney_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DepositGuildBankMoneyParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).DepositGuildBankMoney(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_DepositGuildBankMoney_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).DepositGuildBankMoney(ctx, req.(*DepositGuildBankMoneyParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_WithdrawGuildBankMoney_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WithdrawGuildBankMoneyParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).WithdrawGuildBankMoney(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_WithdrawGuildBankMoney_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).WithdrawGuildBankMoney(ctx, req.(*WithdrawGuildBankMoneyParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_RollbackGuildBankMoneyWithdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RollbackGuildBankMoneyWithdrawParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).RollbackGuildBankMoneyWithdraw(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_RollbackGuildBankMoneyWithdraw_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).RollbackGuildBankMoneyWithdraw(ctx, req.(*RollbackGuildBankMoneyWithdrawParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_DepositGuildBankItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DepositGuildBankItemParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).DepositGuildBankItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_DepositGuildBankItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).DepositGuildBankItem(ctx, req.(*DepositGuildBankItemParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_WithdrawGuildBankItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WithdrawGuildBankItemParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).WithdrawGuildBankItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_WithdrawGuildBankItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).WithdrawGuildBankItem(ctx, req.(*WithdrawGuildBankItemParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_RollbackGuildBankItemWithdraw_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RollbackGuildBankItemWithdrawParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).RollbackGuildBankItemWithdraw(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_RollbackGuildBankItemWithdraw_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).RollbackGuildBankItemWithdraw(ctx, req.(*RollbackGuildBankItemWithdrawParams)) + } + return interceptor(ctx, in, info, handler) +} + +func _GuildService_MoveGuildBankItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MoveGuildBankItemParams) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GuildServiceServer).MoveGuildBankItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: GuildService_MoveGuildBankItem_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GuildServiceServer).MoveGuildBankItem(ctx, req.(*MoveGuildBankItemParams)) + } + return interceptor(ctx, in, info, handler) +} + // GuildService_ServiceDesc is the grpc.ServiceDesc for GuildService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -658,6 +1186,70 @@ var GuildService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SendGuildMessage", Handler: _GuildService_SendGuildMessage_Handler, }, + { + MethodName: "GetGuildPetition", + Handler: _GuildService_GetGuildPetition_Handler, + }, + { + MethodName: "OfferGuildPetition", + Handler: _GuildService_OfferGuildPetition_Handler, + }, + { + MethodName: "SignGuildPetition", + Handler: _GuildService_SignGuildPetition_Handler, + }, + { + MethodName: "GetGuildBank", + Handler: _GuildService_GetGuildBank_Handler, + }, + { + MethodName: "GetGuildBankLog", + Handler: _GuildService_GetGuildBankLog_Handler, + }, + { + MethodName: "GetGuildBankTabText", + Handler: _GuildService_GetGuildBankTabText_Handler, + }, + { + MethodName: "UpdateGuildBankTab", + Handler: _GuildService_UpdateGuildBankTab_Handler, + }, + { + MethodName: "SetGuildBankTabText", + Handler: _GuildService_SetGuildBankTabText_Handler, + }, + { + MethodName: "BuyGuildBankTab", + Handler: _GuildService_BuyGuildBankTab_Handler, + }, + { + MethodName: "DepositGuildBankMoney", + Handler: _GuildService_DepositGuildBankMoney_Handler, + }, + { + MethodName: "WithdrawGuildBankMoney", + Handler: _GuildService_WithdrawGuildBankMoney_Handler, + }, + { + MethodName: "RollbackGuildBankMoneyWithdraw", + Handler: _GuildService_RollbackGuildBankMoneyWithdraw_Handler, + }, + { + MethodName: "DepositGuildBankItem", + Handler: _GuildService_DepositGuildBankItem_Handler, + }, + { + MethodName: "WithdrawGuildBankItem", + Handler: _GuildService_WithdrawGuildBankItem_Handler, + }, + { + MethodName: "RollbackGuildBankItemWithdraw", + Handler: _GuildService_RollbackGuildBankItemWithdraw_Handler, + }, + { + MethodName: "MoveGuildBankItem", + Handler: _GuildService_MoveGuildBankItem_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "guilds.proto", diff --git a/gen/mail/pb/mail.pb.go b/gen/mail/pb/mail.pb.go index 708bbb2..e67ac3c 100644 --- a/gen/mail/pb/mail.pb.go +++ b/gen/mail/pb/mail.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: mail.proto package pb diff --git a/gen/mail/pb/mail_grpc.pb.go b/gen/mail/pb/mail_grpc.pb.go index 9ae125e..0c90115 100644 --- a/gen/mail/pb/mail_grpc.pb.go +++ b/gen/mail/pb/mail_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: mail.proto package pb diff --git a/gen/matchmaking/pb/matchmaking.pb.go b/gen/matchmaking/pb/matchmaking.pb.go index 88c7415..02ac9c8 100644 --- a/gen/matchmaking/pb/matchmaking.pb.go +++ b/gen/matchmaking/pb/matchmaking.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: matchmaking.proto package pb @@ -121,6 +121,277 @@ func (PlayerQueueStatus) EnumDescriptor() ([]byte, []int) { return file_matchmaking_proto_rawDescGZIP(), []int{1} } +type MatchmakingArenaTeamMutationStatus int32 + +const ( + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_OK MatchmakingArenaTeamMutationStatus = 0 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND MatchmakingArenaTeamMutationStatus = 1 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH MatchmakingArenaTeamMutationStatus = 2 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE MatchmakingArenaTeamMutationStatus = 3 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS MatchmakingArenaTeamMutationStatus = 4 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM MatchmakingArenaTeamMutationStatus = 5 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL MatchmakingArenaTeamMutationStatus = 6 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_FAILED MatchmakingArenaTeamMutationStatus = 7 + MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME MatchmakingArenaTeamMutationStatus = 8 +) + +// Enum value maps for MatchmakingArenaTeamMutationStatus. +var ( + MatchmakingArenaTeamMutationStatus_name = map[int32]string{ + 0: "MATCHMAKING_ARENA_TEAM_MUTATION_OK", + 1: "MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND", + 2: "MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH", + 3: "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE", + 4: "MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS", + 5: "MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM", + 6: "MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL", + 7: "MATCHMAKING_ARENA_TEAM_MUTATION_FAILED", + 8: "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME", + } + MatchmakingArenaTeamMutationStatus_value = map[string]int32{ + "MATCHMAKING_ARENA_TEAM_MUTATION_OK": 0, + "MATCHMAKING_ARENA_TEAM_MUTATION_NOT_FOUND": 1, + "MATCHMAKING_ARENA_TEAM_MUTATION_MEMBER_MISMATCH": 2, + "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_TYPE": 3, + "MATCHMAKING_ARENA_TEAM_MUTATION_NAME_EXISTS": 4, + "MATCHMAKING_ARENA_TEAM_MUTATION_ALREADY_IN_TEAM": 5, + "MATCHMAKING_ARENA_TEAM_MUTATION_ROSTER_FULL": 6, + "MATCHMAKING_ARENA_TEAM_MUTATION_FAILED": 7, + "MATCHMAKING_ARENA_TEAM_MUTATION_INVALID_NAME": 8, + } +) + +func (x MatchmakingArenaTeamMutationStatus) Enum() *MatchmakingArenaTeamMutationStatus { + p := new(MatchmakingArenaTeamMutationStatus) + *p = x + return p +} + +func (x MatchmakingArenaTeamMutationStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MatchmakingArenaTeamMutationStatus) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[2].Descriptor() +} + +func (MatchmakingArenaTeamMutationStatus) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[2] +} + +func (x MatchmakingArenaTeamMutationStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MatchmakingArenaTeamMutationStatus.Descriptor instead. +func (MatchmakingArenaTeamMutationStatus) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{2} +} + +type LfgState int32 + +const ( + LfgState_LFG_STATE_NONE LfgState = 0 + LfgState_LFG_STATE_ROLECHECK LfgState = 1 + LfgState_LFG_STATE_QUEUED LfgState = 2 + LfgState_LFG_STATE_PROPOSAL LfgState = 3 + LfgState_LFG_STATE_BOOT LfgState = 4 + LfgState_LFG_STATE_DUNGEON LfgState = 5 + LfgState_LFG_STATE_FINISHED_DUNGEON LfgState = 6 + LfgState_LFG_STATE_RAIDBROWSER LfgState = 7 +) + +// Enum value maps for LfgState. +var ( + LfgState_name = map[int32]string{ + 0: "LFG_STATE_NONE", + 1: "LFG_STATE_ROLECHECK", + 2: "LFG_STATE_QUEUED", + 3: "LFG_STATE_PROPOSAL", + 4: "LFG_STATE_BOOT", + 5: "LFG_STATE_DUNGEON", + 6: "LFG_STATE_FINISHED_DUNGEON", + 7: "LFG_STATE_RAIDBROWSER", + } + LfgState_value = map[string]int32{ + "LFG_STATE_NONE": 0, + "LFG_STATE_ROLECHECK": 1, + "LFG_STATE_QUEUED": 2, + "LFG_STATE_PROPOSAL": 3, + "LFG_STATE_BOOT": 4, + "LFG_STATE_DUNGEON": 5, + "LFG_STATE_FINISHED_DUNGEON": 6, + "LFG_STATE_RAIDBROWSER": 7, + } +) + +func (x LfgState) Enum() *LfgState { + p := new(LfgState) + *p = x + return p +} + +func (x LfgState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LfgState) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[3].Descriptor() +} + +func (LfgState) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[3] +} + +func (x LfgState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LfgState.Descriptor instead. +func (LfgState) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{3} +} + +type LfgProposalState int32 + +const ( + LfgProposalState_LFG_PROPOSAL_INITIATING LfgProposalState = 0 + LfgProposalState_LFG_PROPOSAL_FAILED LfgProposalState = 1 + LfgProposalState_LFG_PROPOSAL_SUCCESS LfgProposalState = 2 +) + +// Enum value maps for LfgProposalState. +var ( + LfgProposalState_name = map[int32]string{ + 0: "LFG_PROPOSAL_INITIATING", + 1: "LFG_PROPOSAL_FAILED", + 2: "LFG_PROPOSAL_SUCCESS", + } + LfgProposalState_value = map[string]int32{ + "LFG_PROPOSAL_INITIATING": 0, + "LFG_PROPOSAL_FAILED": 1, + "LFG_PROPOSAL_SUCCESS": 2, + } +) + +func (x LfgProposalState) Enum() *LfgProposalState { + p := new(LfgProposalState) + *p = x + return p +} + +func (x LfgProposalState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LfgProposalState) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[4].Descriptor() +} + +func (LfgProposalState) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[4] +} + +func (x LfgProposalState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LfgProposalState.Descriptor instead. +func (LfgProposalState) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{4} +} + +type LfgJoinResult int32 + +const ( + LfgJoinResult_LFG_JOIN_OK LfgJoinResult = 0 + LfgJoinResult_LFG_JOIN_FAILED LfgJoinResult = 1 + LfgJoinResult_LFG_JOIN_GROUP_FULL LfgJoinResult = 2 + LfgJoinResult_LFG_JOIN_INTERNAL_ERROR LfgJoinResult = 4 + LfgJoinResult_LFG_JOIN_NOT_MEET_REQS LfgJoinResult = 5 + LfgJoinResult_LFG_JOIN_PARTY_NOT_MEET_REQS LfgJoinResult = 6 + LfgJoinResult_LFG_JOIN_MIXED_RAID_DUNGEON LfgJoinResult = 7 + LfgJoinResult_LFG_JOIN_MULTI_REALM LfgJoinResult = 8 + LfgJoinResult_LFG_JOIN_DISCONNECTED LfgJoinResult = 9 + LfgJoinResult_LFG_JOIN_PARTY_INFO_FAILED LfgJoinResult = 10 + LfgJoinResult_LFG_JOIN_DUNGEON_INVALID LfgJoinResult = 11 + LfgJoinResult_LFG_JOIN_DESERTER LfgJoinResult = 12 + LfgJoinResult_LFG_JOIN_PARTY_DESERTER LfgJoinResult = 13 + LfgJoinResult_LFG_JOIN_RANDOM_COOLDOWN LfgJoinResult = 14 + LfgJoinResult_LFG_JOIN_PARTY_RANDOM_COOLDOWN LfgJoinResult = 15 + LfgJoinResult_LFG_JOIN_TOO_MANY_MEMBERS LfgJoinResult = 16 + LfgJoinResult_LFG_JOIN_USING_BG_SYSTEM LfgJoinResult = 17 +) + +// Enum value maps for LfgJoinResult. +var ( + LfgJoinResult_name = map[int32]string{ + 0: "LFG_JOIN_OK", + 1: "LFG_JOIN_FAILED", + 2: "LFG_JOIN_GROUP_FULL", + 4: "LFG_JOIN_INTERNAL_ERROR", + 5: "LFG_JOIN_NOT_MEET_REQS", + 6: "LFG_JOIN_PARTY_NOT_MEET_REQS", + 7: "LFG_JOIN_MIXED_RAID_DUNGEON", + 8: "LFG_JOIN_MULTI_REALM", + 9: "LFG_JOIN_DISCONNECTED", + 10: "LFG_JOIN_PARTY_INFO_FAILED", + 11: "LFG_JOIN_DUNGEON_INVALID", + 12: "LFG_JOIN_DESERTER", + 13: "LFG_JOIN_PARTY_DESERTER", + 14: "LFG_JOIN_RANDOM_COOLDOWN", + 15: "LFG_JOIN_PARTY_RANDOM_COOLDOWN", + 16: "LFG_JOIN_TOO_MANY_MEMBERS", + 17: "LFG_JOIN_USING_BG_SYSTEM", + } + LfgJoinResult_value = map[string]int32{ + "LFG_JOIN_OK": 0, + "LFG_JOIN_FAILED": 1, + "LFG_JOIN_GROUP_FULL": 2, + "LFG_JOIN_INTERNAL_ERROR": 4, + "LFG_JOIN_NOT_MEET_REQS": 5, + "LFG_JOIN_PARTY_NOT_MEET_REQS": 6, + "LFG_JOIN_MIXED_RAID_DUNGEON": 7, + "LFG_JOIN_MULTI_REALM": 8, + "LFG_JOIN_DISCONNECTED": 9, + "LFG_JOIN_PARTY_INFO_FAILED": 10, + "LFG_JOIN_DUNGEON_INVALID": 11, + "LFG_JOIN_DESERTER": 12, + "LFG_JOIN_PARTY_DESERTER": 13, + "LFG_JOIN_RANDOM_COOLDOWN": 14, + "LFG_JOIN_PARTY_RANDOM_COOLDOWN": 15, + "LFG_JOIN_TOO_MANY_MEMBERS": 16, + "LFG_JOIN_USING_BG_SYSTEM": 17, + } +) + +func (x LfgJoinResult) Enum() *LfgJoinResult { + p := new(LfgJoinResult) + *p = x + return p +} + +func (x LfgJoinResult) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LfgJoinResult) Descriptor() protoreflect.EnumDescriptor { + return file_matchmaking_proto_enumTypes[5].Descriptor() +} + +func (LfgJoinResult) Type() protoreflect.EnumType { + return &file_matchmaking_proto_enumTypes[5] +} + +func (x LfgJoinResult) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LfgJoinResult.Descriptor instead. +func (LfgJoinResult) EnumDescriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{5} +} + // Use the same statuses as in gameserver (AC/TC) type BattlegroundStatusChangedRequest_Status int32 @@ -161,11 +432,11 @@ func (x BattlegroundStatusChangedRequest_Status) String() string { } func (BattlegroundStatusChangedRequest_Status) Descriptor() protoreflect.EnumDescriptor { - return file_matchmaking_proto_enumTypes[2].Descriptor() + return file_matchmaking_proto_enumTypes[6].Descriptor() } func (BattlegroundStatusChangedRequest_Status) Type() protoreflect.EnumType { - return &file_matchmaking_proto_enumTypes[2] + return &file_matchmaking_proto_enumTypes[6] } func (x BattlegroundStatusChangedRequest_Status) Number() protoreflect.EnumNumber { @@ -189,6 +460,8 @@ type EnqueueToBattlegroundRequest struct { LeadersLvl uint32 `protobuf:"varint,5,opt,name=leadersLvl,proto3" json:"leadersLvl,omitempty"` BgTypeID uint32 `protobuf:"varint,6,opt,name=bgTypeID,proto3" json:"bgTypeID,omitempty"` TeamID PVPTeamID `protobuf:"varint,7,opt,name=teamID,proto3,enum=v1.PVPTeamID" json:"teamID,omitempty"` + ArenaType uint32 `protobuf:"varint,8,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + IsRated bool `protobuf:"varint,9,opt,name=isRated,proto3" json:"isRated,omitempty"` } func (x *EnqueueToBattlegroundRequest) Reset() { @@ -272,6 +545,20 @@ func (x *EnqueueToBattlegroundRequest) GetTeamID() PVPTeamID { return PVPTeamID_Any } +func (x *EnqueueToBattlegroundRequest) GetArenaType() uint32 { + if x != nil { + return x.ArenaType + } + return 0 +} + +func (x *EnqueueToBattlegroundRequest) GetIsRated() bool { + if x != nil { + return x.IsRated + } + return false +} + type EnqueueToBattlegroundResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -933,20 +1220,17 @@ func (x *BattlegroundStatusChangedResponse) GetApi() string { return "" } -type BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData struct { +type RatedArenaParticipant struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AssignedBattlegroundInstanceID uint32 `protobuf:"varint,1,opt,name=assignedBattlegroundInstanceID,proto3" json:"assignedBattlegroundInstanceID,omitempty"` - MapID uint32 `protobuf:"varint,2,opt,name=mapID,proto3" json:"mapID,omitempty"` - BattlegroupID uint32 `protobuf:"varint,3,opt,name=battlegroupID,proto3" json:"battlegroupID,omitempty"` - GameserverAddress string `protobuf:"bytes,4,opt,name=gameserverAddress,proto3" json:"gameserverAddress,omitempty"` - GameserverGRPCAddress string `protobuf:"bytes,5,opt,name=gameserverGRPCAddress,proto3" json:"gameserverGRPCAddress,omitempty"` + Team PVPTeamID `protobuf:"varint,1,opt,name=team,proto3,enum=v1.PVPTeamID" json:"team,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Reset() { - *x = BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData{} +func (x *RatedArenaParticipant) Reset() { + *x = RatedArenaParticipant{} if protoimpl.UnsafeEnabled { mi := &file_matchmaking_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -954,13 +1238,13 @@ func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Reset( } } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) String() string { +func (x *RatedArenaParticipant) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoMessage() {} +func (*RatedArenaParticipant) ProtoMessage() {} -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoReflect() protoreflect.Message { +func (x *RatedArenaParticipant) ProtoReflect() protoreflect.Message { mi := &file_matchmaking_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -972,73 +1256,136 @@ func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoR return mi.MessageOf(x) } -// Deprecated: Use BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData.ProtoReflect.Descriptor instead. -func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Descriptor() ([]byte, []int) { - return file_matchmaking_proto_rawDescGZIP(), []int{5, 0} +// Deprecated: Use RatedArenaParticipant.ProtoReflect.Descriptor instead. +func (*RatedArenaParticipant) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{12} } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetAssignedBattlegroundInstanceID() uint32 { +func (x *RatedArenaParticipant) GetTeam() PVPTeamID { if x != nil { - return x.AssignedBattlegroundInstanceID + return x.Team + } + return PVPTeamID_Any +} + +func (x *RatedArenaParticipant) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetMapID() uint32 { +type RatedArenaTeamScore struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + ArenaTeamID uint32 `protobuf:"varint,2,opt,name=arenaTeamID,proto3" json:"arenaTeamID,omitempty"` + TeamName string `protobuf:"bytes,3,opt,name=teamName,proto3" json:"teamName,omitempty"` + RatingChange int32 `protobuf:"varint,4,opt,name=ratingChange,proto3" json:"ratingChange,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,5,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` +} + +func (x *RatedArenaTeamScore) Reset() { + *x = RatedArenaTeamScore{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RatedArenaTeamScore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RatedArenaTeamScore) ProtoMessage() {} + +func (x *RatedArenaTeamScore) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[13] + 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 RatedArenaTeamScore.ProtoReflect.Descriptor instead. +func (*RatedArenaTeamScore) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{13} +} + +func (x *RatedArenaTeamScore) GetRealmID() uint32 { if x != nil { - return x.MapID + return x.RealmID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetBattlegroupID() uint32 { +func (x *RatedArenaTeamScore) GetArenaTeamID() uint32 { if x != nil { - return x.BattlegroupID + return x.ArenaTeamID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverAddress() string { +func (x *RatedArenaTeamScore) GetTeamName() string { if x != nil { - return x.GameserverAddress + return x.TeamName } return "" } -func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverGRPCAddress() string { +func (x *RatedArenaTeamScore) GetRatingChange() int32 { if x != nil { - return x.GameserverGRPCAddress + return x.RatingChange } - return "" + return 0 } -type BattlegroundQueueDataForPlayerResponse_QueueSlot struct { +func (x *RatedArenaTeamScore) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +type RatedArenaMemberResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - BgTypeID uint32 `protobuf:"varint,1,opt,name=bgTypeID,proto3" json:"bgTypeID,omitempty"` - Status PlayerQueueStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.PlayerQueueStatus" json:"status,omitempty"` - AssignedBattlegroundData *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData `protobuf:"bytes,3,opt,name=assignedBattlegroundData,proto3,oneof" json:"assignedBattlegroundData,omitempty"` + Team PVPTeamID `protobuf:"varint,1,opt,name=team,proto3,enum=v1.PVPTeamID" json:"team,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + PersonalRating uint32 `protobuf:"varint,3,opt,name=personalRating,proto3" json:"personalRating,omitempty"` + WeekGames uint32 `protobuf:"varint,4,opt,name=weekGames,proto3" json:"weekGames,omitempty"` + SeasonGames uint32 `protobuf:"varint,5,opt,name=seasonGames,proto3" json:"seasonGames,omitempty"` + WeekWins uint32 `protobuf:"varint,6,opt,name=weekWins,proto3" json:"weekWins,omitempty"` + SeasonWins uint32 `protobuf:"varint,7,opt,name=seasonWins,proto3" json:"seasonWins,omitempty"` + MatchmakerRating uint32 `protobuf:"varint,8,opt,name=matchmakerRating,proto3" json:"matchmakerRating,omitempty"` } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) Reset() { - *x = BattlegroundQueueDataForPlayerResponse_QueueSlot{} +func (x *RatedArenaMemberResult) Reset() { + *x = RatedArenaMemberResult{} if protoimpl.UnsafeEnabled { - mi := &file_matchmaking_proto_msgTypes[13] + mi := &file_matchmaking_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) String() string { +func (x *RatedArenaMemberResult) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoMessage() {} +func (*RatedArenaMemberResult) ProtoMessage() {} -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoReflect() protoreflect.Message { - mi := &file_matchmaking_proto_msgTypes[13] +func (x *RatedArenaMemberResult) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1049,191 +1396,2037 @@ func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use BattlegroundQueueDataForPlayerResponse_QueueSlot.ProtoReflect.Descriptor instead. -func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) Descriptor() ([]byte, []int) { - return file_matchmaking_proto_rawDescGZIP(), []int{5, 1} +// Deprecated: Use RatedArenaMemberResult.ProtoReflect.Descriptor instead. +func (*RatedArenaMemberResult) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{14} } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetBgTypeID() uint32 { +func (x *RatedArenaMemberResult) GetTeam() PVPTeamID { if x != nil { - return x.BgTypeID + return x.Team + } + return PVPTeamID_Any +} + +func (x *RatedArenaMemberResult) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID } return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetStatus() PlayerQueueStatus { +func (x *RatedArenaMemberResult) GetPersonalRating() uint32 { if x != nil { - return x.Status + return x.PersonalRating } - return PlayerQueueStatus_NotInQueue + return 0 } -func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetAssignedBattlegroundData() *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData { +func (x *RatedArenaMemberResult) GetWeekGames() uint32 { if x != nil { - return x.AssignedBattlegroundData + return x.WeekGames } - return nil + return 0 } -var File_matchmaking_proto protoreflect.FileDescriptor +func (x *RatedArenaMemberResult) GetSeasonGames() uint32 { + if x != nil { + return x.SeasonGames + } + return 0 +} -var file_matchmaking_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xf1, 0x01, 0x0a, 0x1c, 0x45, 0x6e, 0x71, 0x75, - 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x79, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, - 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x67, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, - 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x31, 0x0a, 0x1d, 0x45, - 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, - 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, - 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x62, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x73, 0x0a, 0x25, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, - 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, - 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, - 0x88, 0x05, 0x0a, 0x26, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x05, - 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, - 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, - 0x74, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x1a, 0x82, 0x02, 0x0a, 0x18, 0x41, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x1e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x61, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, - 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, - 0x70, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x61, 0x6d, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x52, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x47, 0x52, 0x50, 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0xfa, 0x01, - 0x0a, 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, - 0x67, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, - 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, - 0x52, 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, - 0x19, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x1d, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, - 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, - 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x32, 0x0a, 0x1e, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x22, 0xb1, 0x01, 0x0a, 0x1f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, - 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, - 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, - 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x34, 0x0a, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, - 0x69, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xa3, 0x02, 0x0a, 0x20, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, - 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, - 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, - 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, - 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x61, 0x69, 0x74, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x10, 0x04, - 0x22, 0x35, 0x0a, 0x21, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x2a, 0x2d, 0x0a, 0x09, 0x50, 0x56, 0x50, 0x54, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x48, - 0x6f, 0x72, 0x64, 0x65, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, - 0x6f, 0x74, 0x49, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, - 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x10, 0x03, 0x32, 0xfb, 0x04, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x15, - 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, - 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x74, - 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, +func (x *RatedArenaMemberResult) GetWeekWins() uint32 { + if x != nil { + return x.WeekWins + } + return 0 +} + +func (x *RatedArenaMemberResult) GetSeasonWins() uint32 { + if x != nil { + return x.SeasonWins + } + return 0 +} + +func (x *RatedArenaMemberResult) GetMatchmakerRating() uint32 { + if x != nil { + return x.MatchmakerRating + } + return 0 +} + +type FinishRatedArenaMatchRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + OwnerRealmID uint32 `protobuf:"varint,2,opt,name=ownerRealmID,proto3" json:"ownerRealmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` + InstanceID uint32 `protobuf:"varint,4,opt,name=instanceID,proto3" json:"instanceID,omitempty"` + ArenaType uint32 `protobuf:"varint,5,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + WinnerTeam PVPTeamID `protobuf:"varint,6,opt,name=winnerTeam,proto3,enum=v1.PVPTeamID" json:"winnerTeam,omitempty"` + ValidArena bool `protobuf:"varint,7,opt,name=validArena,proto3" json:"validArena,omitempty"` + AllianceArenaTeamID uint32 `protobuf:"varint,8,opt,name=allianceArenaTeamID,proto3" json:"allianceArenaTeamID,omitempty"` + HordeArenaTeamID uint32 `protobuf:"varint,9,opt,name=hordeArenaTeamID,proto3" json:"hordeArenaTeamID,omitempty"` + AllianceArenaMatchmakerRating uint32 `protobuf:"varint,10,opt,name=allianceArenaMatchmakerRating,proto3" json:"allianceArenaMatchmakerRating,omitempty"` + HordeArenaMatchmakerRating uint32 `protobuf:"varint,11,opt,name=hordeArenaMatchmakerRating,proto3" json:"hordeArenaMatchmakerRating,omitempty"` + Participants []*RatedArenaParticipant `protobuf:"bytes,12,rep,name=participants,proto3" json:"participants,omitempty"` +} + +func (x *FinishRatedArenaMatchRequest) Reset() { + *x = FinishRatedArenaMatchRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishRatedArenaMatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishRatedArenaMatchRequest) ProtoMessage() {} + +func (x *FinishRatedArenaMatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[15] + 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 FinishRatedArenaMatchRequest.ProtoReflect.Descriptor instead. +func (*FinishRatedArenaMatchRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{15} +} + +func (x *FinishRatedArenaMatchRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *FinishRatedArenaMatchRequest) GetOwnerRealmID() uint32 { + if x != nil { + return x.OwnerRealmID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetIsCrossRealm() bool { + if x != nil { + return x.IsCrossRealm + } + return false +} + +func (x *FinishRatedArenaMatchRequest) GetInstanceID() uint32 { + if x != nil { + return x.InstanceID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetArenaType() uint32 { + if x != nil { + return x.ArenaType + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetWinnerTeam() PVPTeamID { + if x != nil { + return x.WinnerTeam + } + return PVPTeamID_Any +} + +func (x *FinishRatedArenaMatchRequest) GetValidArena() bool { + if x != nil { + return x.ValidArena + } + return false +} + +func (x *FinishRatedArenaMatchRequest) GetAllianceArenaTeamID() uint32 { + if x != nil { + return x.AllianceArenaTeamID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetHordeArenaTeamID() uint32 { + if x != nil { + return x.HordeArenaTeamID + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetAllianceArenaMatchmakerRating() uint32 { + if x != nil { + return x.AllianceArenaMatchmakerRating + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetHordeArenaMatchmakerRating() uint32 { + if x != nil { + return x.HordeArenaMatchmakerRating + } + return 0 +} + +func (x *FinishRatedArenaMatchRequest) GetParticipants() []*RatedArenaParticipant { + if x != nil { + return x.Participants + } + return nil +} + +type FinishRatedArenaMatchResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status MatchmakingArenaTeamMutationStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.MatchmakingArenaTeamMutationStatus" json:"status,omitempty"` + AllianceScore *RatedArenaTeamScore `protobuf:"bytes,3,opt,name=allianceScore,proto3" json:"allianceScore,omitempty"` + HordeScore *RatedArenaTeamScore `protobuf:"bytes,4,opt,name=hordeScore,proto3" json:"hordeScore,omitempty"` + MemberResults []*RatedArenaMemberResult `protobuf:"bytes,5,rep,name=memberResults,proto3" json:"memberResults,omitempty"` +} + +func (x *FinishRatedArenaMatchResponse) Reset() { + *x = FinishRatedArenaMatchResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FinishRatedArenaMatchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FinishRatedArenaMatchResponse) ProtoMessage() {} + +func (x *FinishRatedArenaMatchResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[16] + 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 FinishRatedArenaMatchResponse.ProtoReflect.Descriptor instead. +func (*FinishRatedArenaMatchResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{16} +} + +func (x *FinishRatedArenaMatchResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *FinishRatedArenaMatchResponse) GetStatus() MatchmakingArenaTeamMutationStatus { + if x != nil { + return x.Status + } + return MatchmakingArenaTeamMutationStatus_MATCHMAKING_ARENA_TEAM_MUTATION_OK +} + +func (x *FinishRatedArenaMatchResponse) GetAllianceScore() *RatedArenaTeamScore { + if x != nil { + return x.AllianceScore + } + return nil +} + +func (x *FinishRatedArenaMatchResponse) GetHordeScore() *RatedArenaTeamScore { + if x != nil { + return x.HordeScore + } + return nil +} + +func (x *FinishRatedArenaMatchResponse) GetMemberResults() []*RatedArenaMemberResult { + if x != nil { + return x.MemberResults + } + return nil +} + +type LfgMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Roles uint32 `protobuf:"varint,2,opt,name=roles,proto3" json:"roles,omitempty"` + Leader bool `protobuf:"varint,3,opt,name=leader,proto3" json:"leader,omitempty"` + WorldserverID string `protobuf:"bytes,4,opt,name=worldserverID,proto3" json:"worldserverID,omitempty"` + RealmID uint32 `protobuf:"varint,5,opt,name=realmID,proto3" json:"realmID,omitempty"` + QueueLeaderRealmID uint32 `protobuf:"varint,6,opt,name=queueLeaderRealmID,proto3" json:"queueLeaderRealmID,omitempty"` + QueueLeaderGUID uint64 `protobuf:"varint,7,opt,name=queueLeaderGUID,proto3" json:"queueLeaderGUID,omitempty"` +} + +func (x *LfgMember) Reset() { + *x = LfgMember{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgMember) ProtoMessage() {} + +func (x *LfgMember) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[17] + 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 LfgMember.ProtoReflect.Descriptor instead. +func (*LfgMember) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{17} +} + +func (x *LfgMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *LfgMember) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +func (x *LfgMember) GetLeader() bool { + if x != nil { + return x.Leader + } + return false +} + +func (x *LfgMember) GetWorldserverID() string { + if x != nil { + return x.WorldserverID + } + return "" +} + +func (x *LfgMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LfgMember) GetQueueLeaderRealmID() uint32 { + if x != nil { + return x.QueueLeaderRealmID + } + return 0 +} + +func (x *LfgMember) GetQueueLeaderGUID() uint64 { + if x != nil { + return x.QueueLeaderGUID + } + return 0 +} + +type LfgProposalMember struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + SelectedRoles uint32 `protobuf:"varint,2,opt,name=selectedRoles,proto3" json:"selectedRoles,omitempty"` + AssignedRole uint32 `protobuf:"varint,3,opt,name=assignedRole,proto3" json:"assignedRole,omitempty"` + Answered bool `protobuf:"varint,4,opt,name=answered,proto3" json:"answered,omitempty"` + Accepted bool `protobuf:"varint,5,opt,name=accepted,proto3" json:"accepted,omitempty"` + RealmID uint32 `protobuf:"varint,6,opt,name=realmID,proto3" json:"realmID,omitempty"` +} + +func (x *LfgProposalMember) Reset() { + *x = LfgProposalMember{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgProposalMember) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgProposalMember) ProtoMessage() {} + +func (x *LfgProposalMember) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[18] + 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 LfgProposalMember.ProtoReflect.Descriptor instead. +func (*LfgProposalMember) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{18} +} + +func (x *LfgProposalMember) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *LfgProposalMember) GetSelectedRoles() uint32 { + if x != nil { + return x.SelectedRoles + } + return 0 +} + +func (x *LfgProposalMember) GetAssignedRole() uint32 { + if x != nil { + return x.AssignedRole + } + return 0 +} + +func (x *LfgProposalMember) GetAnswered() bool { + if x != nil { + return x.Answered + } + return false +} + +func (x *LfgProposalMember) GetAccepted() bool { + if x != nil { + return x.Accepted + } + return false +} + +func (x *LfgProposalMember) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +type LfgStatusData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State LfgState `protobuf:"varint,1,opt,name=state,proto3,enum=v1.LfgState" json:"state,omitempty"` + ProposalID uint32 `protobuf:"varint,2,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + ProposalState LfgProposalState `protobuf:"varint,3,opt,name=proposalState,proto3,enum=v1.LfgProposalState" json:"proposalState,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + SelectedDungeons []uint32 `protobuf:"varint,5,rep,packed,name=selectedDungeons,proto3" json:"selectedDungeons,omitempty"` + QueuedMembers []*LfgMember `protobuf:"bytes,6,rep,name=queuedMembers,proto3" json:"queuedMembers,omitempty"` + ProposalMembers []*LfgProposalMember `protobuf:"bytes,7,rep,name=proposalMembers,proto3" json:"proposalMembers,omitempty"` + QueuedTimeMilliseconds uint32 `protobuf:"varint,8,opt,name=queuedTimeMilliseconds,proto3" json:"queuedTimeMilliseconds,omitempty"` + TanksNeeded uint32 `protobuf:"varint,9,opt,name=tanksNeeded,proto3" json:"tanksNeeded,omitempty"` + HealersNeeded uint32 `protobuf:"varint,10,opt,name=healersNeeded,proto3" json:"healersNeeded,omitempty"` + DamageNeeded uint32 `protobuf:"varint,11,opt,name=damageNeeded,proto3" json:"damageNeeded,omitempty"` +} + +func (x *LfgStatusData) Reset() { + *x = LfgStatusData{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgStatusData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgStatusData) ProtoMessage() {} + +func (x *LfgStatusData) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[19] + 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 LfgStatusData.ProtoReflect.Descriptor instead. +func (*LfgStatusData) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{19} +} + +func (x *LfgStatusData) GetState() LfgState { + if x != nil { + return x.State + } + return LfgState_LFG_STATE_NONE +} + +func (x *LfgStatusData) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *LfgStatusData) GetProposalState() LfgProposalState { + if x != nil { + return x.ProposalState + } + return LfgProposalState_LFG_PROPOSAL_INITIATING +} + +func (x *LfgStatusData) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *LfgStatusData) GetSelectedDungeons() []uint32 { + if x != nil { + return x.SelectedDungeons + } + return nil +} + +func (x *LfgStatusData) GetQueuedMembers() []*LfgMember { + if x != nil { + return x.QueuedMembers + } + return nil +} + +func (x *LfgStatusData) GetProposalMembers() []*LfgProposalMember { + if x != nil { + return x.ProposalMembers + } + return nil +} + +func (x *LfgStatusData) GetQueuedTimeMilliseconds() uint32 { + if x != nil { + return x.QueuedTimeMilliseconds + } + return 0 +} + +func (x *LfgStatusData) GetTanksNeeded() uint32 { + if x != nil { + return x.TanksNeeded + } + return 0 +} + +func (x *LfgStatusData) GetHealersNeeded() uint32 { + if x != nil { + return x.HealersNeeded + } + return 0 +} + +func (x *LfgStatusData) GetDamageNeeded() uint32 { + if x != nil { + return x.DamageNeeded + } + return 0 +} + +type JoinLfgRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + LeaderGUID uint64 `protobuf:"varint,3,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + Members []*LfgMember `protobuf:"bytes,4,rep,name=members,proto3" json:"members,omitempty"` + DungeonEntries []uint32 `protobuf:"varint,5,rep,packed,name=dungeonEntries,proto3" json:"dungeonEntries,omitempty"` + Comment string `protobuf:"bytes,6,opt,name=comment,proto3" json:"comment,omitempty"` +} + +func (x *JoinLfgRequest) Reset() { + *x = JoinLfgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinLfgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinLfgRequest) ProtoMessage() {} + +func (x *JoinLfgRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[20] + 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 JoinLfgRequest.ProtoReflect.Descriptor instead. +func (*JoinLfgRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{20} +} + +func (x *JoinLfgRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *JoinLfgRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *JoinLfgRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *JoinLfgRequest) GetMembers() []*LfgMember { + if x != nil { + return x.Members + } + return nil +} + +func (x *JoinLfgRequest) GetDungeonEntries() []uint32 { + if x != nil { + return x.DungeonEntries + } + return nil +} + +func (x *JoinLfgRequest) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +type JoinLfgResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Result LfgJoinResult `protobuf:"varint,2,opt,name=result,proto3,enum=v1.LfgJoinResult" json:"result,omitempty"` + Status *LfgStatusData `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *JoinLfgResponse) Reset() { + *x = JoinLfgResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinLfgResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinLfgResponse) ProtoMessage() {} + +func (x *JoinLfgResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[21] + 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 JoinLfgResponse.ProtoReflect.Descriptor instead. +func (*JoinLfgResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{21} +} + +func (x *JoinLfgResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *JoinLfgResponse) GetResult() LfgJoinResult { + if x != nil { + return x.Result + } + return LfgJoinResult_LFG_JOIN_OK +} + +func (x *JoinLfgResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type LeaveLfgRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *LeaveLfgRequest) Reset() { + *x = LeaveLfgRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveLfgRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveLfgRequest) ProtoMessage() {} + +func (x *LeaveLfgRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[22] + 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 LeaveLfgRequest.ProtoReflect.Descriptor instead. +func (*LeaveLfgRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{22} +} + +func (x *LeaveLfgRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *LeaveLfgRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LeaveLfgRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type LeaveLfgResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *LeaveLfgResponse) Reset() { + *x = LeaveLfgResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LeaveLfgResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LeaveLfgResponse) ProtoMessage() {} + +func (x *LeaveLfgResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[23] + 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 LeaveLfgResponse.ProtoReflect.Descriptor instead. +func (*LeaveLfgResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{23} +} + +func (x *LeaveLfgResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type SetLfgRolesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Roles uint32 `protobuf:"varint,4,opt,name=roles,proto3" json:"roles,omitempty"` +} + +func (x *SetLfgRolesRequest) Reset() { + *x = SetLfgRolesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgRolesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgRolesRequest) ProtoMessage() {} + +func (x *SetLfgRolesRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[24] + 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 SetLfgRolesRequest.ProtoReflect.Descriptor instead. +func (*SetLfgRolesRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{24} +} + +func (x *SetLfgRolesRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgRolesRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *SetLfgRolesRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetLfgRolesRequest) GetRoles() uint32 { + if x != nil { + return x.Roles + } + return 0 +} + +type SetLfgRolesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status *LfgStatusData `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *SetLfgRolesResponse) Reset() { + *x = SetLfgRolesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgRolesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgRolesResponse) ProtoMessage() {} + +func (x *SetLfgRolesResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[25] + 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 SetLfgRolesResponse.ProtoReflect.Descriptor instead. +func (*SetLfgRolesResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{25} +} + +func (x *SetLfgRolesResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgRolesResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type AnswerLfgProposalRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + ProposalID uint32 `protobuf:"varint,4,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + Accept bool `protobuf:"varint,5,opt,name=accept,proto3" json:"accept,omitempty"` +} + +func (x *AnswerLfgProposalRequest) Reset() { + *x = AnswerLfgProposalRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerLfgProposalRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerLfgProposalRequest) ProtoMessage() {} + +func (x *AnswerLfgProposalRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[26] + 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 AnswerLfgProposalRequest.ProtoReflect.Descriptor instead. +func (*AnswerLfgProposalRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{26} +} + +func (x *AnswerLfgProposalRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AnswerLfgProposalRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *AnswerLfgProposalRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *AnswerLfgProposalRequest) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *AnswerLfgProposalRequest) GetAccept() bool { + if x != nil { + return x.Accept + } + return false +} + +type AnswerLfgProposalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status *LfgStatusData `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AnswerLfgProposalResponse) Reset() { + *x = AnswerLfgProposalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnswerLfgProposalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnswerLfgProposalResponse) ProtoMessage() {} + +func (x *AnswerLfgProposalResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[27] + 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 AnswerLfgProposalResponse.ProtoReflect.Descriptor instead. +func (*AnswerLfgProposalResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{27} +} + +func (x *AnswerLfgProposalResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *AnswerLfgProposalResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type LfgStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,3,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *LfgStatusRequest) Reset() { + *x = LfgStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgStatusRequest) ProtoMessage() {} + +func (x *LfgStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[28] + 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 LfgStatusRequest.ProtoReflect.Descriptor instead. +func (*LfgStatusRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{28} +} + +func (x *LfgStatusRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *LfgStatusRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *LfgStatusRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type LfgStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status *LfgStatusData `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *LfgStatusResponse) Reset() { + *x = LfgStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgStatusResponse) ProtoMessage() {} + +func (x *LfgStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[29] + 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 LfgStatusResponse.ProtoReflect.Descriptor instead. +func (*LfgStatusResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{29} +} + +func (x *LfgStatusResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *LfgStatusResponse) GetStatus() *LfgStatusData { + if x != nil { + return x.Status + } + return nil +} + +type CompleteLfgDungeonPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RealmID uint32 `protobuf:"varint,1,opt,name=realmID,proto3" json:"realmID,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *CompleteLfgDungeonPlayer) Reset() { + *x = CompleteLfgDungeonPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteLfgDungeonPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteLfgDungeonPlayer) ProtoMessage() {} + +func (x *CompleteLfgDungeonPlayer) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[30] + 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 CompleteLfgDungeonPlayer.ProtoReflect.Descriptor instead. +func (*CompleteLfgDungeonPlayer) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{30} +} + +func (x *CompleteLfgDungeonPlayer) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *CompleteLfgDungeonPlayer) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +type CompleteLfgDungeonRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + CompletedDungeonEntry uint32 `protobuf:"varint,2,opt,name=completedDungeonEntry,proto3" json:"completedDungeonEntry,omitempty"` + SelectedDungeonEntry uint32 `protobuf:"varint,3,opt,name=selectedDungeonEntry,proto3" json:"selectedDungeonEntry,omitempty"` + Players []*CompleteLfgDungeonPlayer `protobuf:"bytes,4,rep,name=players,proto3" json:"players,omitempty"` +} + +func (x *CompleteLfgDungeonRequest) Reset() { + *x = CompleteLfgDungeonRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteLfgDungeonRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteLfgDungeonRequest) ProtoMessage() {} + +func (x *CompleteLfgDungeonRequest) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[31] + 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 CompleteLfgDungeonRequest.ProtoReflect.Descriptor instead. +func (*CompleteLfgDungeonRequest) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{31} +} + +func (x *CompleteLfgDungeonRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *CompleteLfgDungeonRequest) GetCompletedDungeonEntry() uint32 { + if x != nil { + return x.CompletedDungeonEntry + } + return 0 +} + +func (x *CompleteLfgDungeonRequest) GetSelectedDungeonEntry() uint32 { + if x != nil { + return x.SelectedDungeonEntry + } + return 0 +} + +func (x *CompleteLfgDungeonRequest) GetPlayers() []*CompleteLfgDungeonPlayer { + if x != nil { + return x.Players + } + return nil +} + +type CompleteLfgDungeonResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` +} + +func (x *CompleteLfgDungeonResponse) Reset() { + *x = CompleteLfgDungeonResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CompleteLfgDungeonResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CompleteLfgDungeonResponse) ProtoMessage() {} + +func (x *CompleteLfgDungeonResponse) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[32] + 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 CompleteLfgDungeonResponse.ProtoReflect.Descriptor instead. +func (*CompleteLfgDungeonResponse) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{32} +} + +func (x *CompleteLfgDungeonResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +type BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssignedBattlegroundInstanceID uint32 `protobuf:"varint,1,opt,name=assignedBattlegroundInstanceID,proto3" json:"assignedBattlegroundInstanceID,omitempty"` + MapID uint32 `protobuf:"varint,2,opt,name=mapID,proto3" json:"mapID,omitempty"` + BattlegroupID uint32 `protobuf:"varint,3,opt,name=battlegroupID,proto3" json:"battlegroupID,omitempty"` + GameserverAddress string `protobuf:"bytes,4,opt,name=gameserverAddress,proto3" json:"gameserverAddress,omitempty"` + GameserverGRPCAddress string `protobuf:"bytes,5,opt,name=gameserverGRPCAddress,proto3" json:"gameserverGRPCAddress,omitempty"` + AssignedTeamID PVPTeamID `protobuf:"varint,6,opt,name=assignedTeamID,proto3,enum=v1.PVPTeamID" json:"assignedTeamID,omitempty"` +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Reset() { + *x = BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoMessage() {} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[33] + 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 BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData.ProtoReflect.Descriptor instead. +func (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetAssignedBattlegroundInstanceID() uint32 { + if x != nil { + return x.AssignedBattlegroundInstanceID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetBattlegroupID() uint32 { + if x != nil { + return x.BattlegroupID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverAddress() string { + if x != nil { + return x.GameserverAddress + } + return "" +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetGameserverGRPCAddress() string { + if x != nil { + return x.GameserverGRPCAddress + } + return "" +} + +func (x *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData) GetAssignedTeamID() PVPTeamID { + if x != nil { + return x.AssignedTeamID + } + return PVPTeamID_Any +} + +type BattlegroundQueueDataForPlayerResponse_QueueSlot struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BgTypeID uint32 `protobuf:"varint,1,opt,name=bgTypeID,proto3" json:"bgTypeID,omitempty"` + Status PlayerQueueStatus `protobuf:"varint,2,opt,name=status,proto3,enum=v1.PlayerQueueStatus" json:"status,omitempty"` + AssignedBattlegroundData *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData `protobuf:"bytes,3,opt,name=assignedBattlegroundData,proto3,oneof" json:"assignedBattlegroundData,omitempty"` +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) Reset() { + *x = BattlegroundQueueDataForPlayerResponse_QueueSlot{} + if protoimpl.UnsafeEnabled { + mi := &file_matchmaking_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoMessage() {} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) ProtoReflect() protoreflect.Message { + mi := &file_matchmaking_proto_msgTypes[34] + 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 BattlegroundQueueDataForPlayerResponse_QueueSlot.ProtoReflect.Descriptor instead. +func (*BattlegroundQueueDataForPlayerResponse_QueueSlot) Descriptor() ([]byte, []int) { + return file_matchmaking_proto_rawDescGZIP(), []int{5, 1} +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetBgTypeID() uint32 { + if x != nil { + return x.BgTypeID + } + return 0 +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetStatus() PlayerQueueStatus { + if x != nil { + return x.Status + } + return PlayerQueueStatus_NotInQueue +} + +func (x *BattlegroundQueueDataForPlayerResponse_QueueSlot) GetAssignedBattlegroundData() *BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData { + if x != nil { + return x.AssignedBattlegroundData + } + return nil +} + +var File_matchmaking_proto protoreflect.FileDescriptor + +var file_matchmaking_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0xa9, 0x02, 0x0a, 0x1c, 0x45, 0x6e, 0x71, 0x75, + 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, 0x79, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x74, + 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x73, 0x4c, 0x76, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x49, 0x44, 0x12, 0x25, 0x0a, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, + 0x6d, 0x49, 0x44, 0x52, 0x06, 0x74, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x52, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, 0x61, + 0x74, 0x65, 0x64, 0x22, 0x31, 0x0a, 0x1d, 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x31, 0x0a, 0x1d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, + 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x22, 0x73, 0x0a, 0x25, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xbf, 0x05, 0x0a, 0x26, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, + 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x52, 0x05, 0x73, 0x6c, 0x6f, 0x74, 0x73, + 0x1a, 0xb9, 0x02, 0x0a, 0x18, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, + 0x1e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x61, + 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x34, 0x0a, 0x15, 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x52, 0x50, + 0x43, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, + 0x67, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x52, 0x50, 0x43, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x0e, 0x61, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x1a, 0xfa, 0x01, 0x0a, + 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x62, 0x67, + 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x18, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x88, 0x01, 0x01, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x22, 0xaf, 0x01, 0x0a, 0x1d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, + 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, + 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x32, 0x0a, 0x1e, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, + 0xb1, 0x01, 0x0a, 0x1f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, + 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, + 0x61, 0x6c, 0x6d, 0x22, 0x34, 0x0a, 0x20, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0xa3, 0x02, 0x0a, 0x20, 0x42, 0x61, + 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, + 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, + 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x43, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, + 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x61, 0x69, 0x74, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x61, 0x69, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x10, 0x04, 0x22, + 0x35, 0x0a, 0x21, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x5a, 0x0a, 0x15, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, + 0x21, 0x0a, 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x04, 0x74, 0x65, + 0x61, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x22, 0xbd, 0x01, 0x0a, 0x13, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, + 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x61, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x61, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x22, 0xab, 0x02, 0x0a, 0x16, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, + 0x61, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x21, 0x0a, + 0x04, 0x74, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x04, 0x74, 0x65, 0x61, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x77, 0x65, 0x65, 0x6b, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x77, 0x65, 0x65, + 0x6b, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x47, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x47, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, + 0x57, 0x69, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x77, 0x65, 0x65, 0x6b, + 0x57, 0x69, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x57, 0x69, + 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x57, 0x69, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x22, 0xa8, 0x04, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, + 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, + 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x61, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x77, 0x69, 0x6e, + 0x6e, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x56, 0x50, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x52, 0x0a, 0x77, 0x69, + 0x6e, 0x6e, 0x65, 0x72, 0x54, 0x65, 0x61, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x6f, + 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, + 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x61, + 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1a, + 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x1a, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3d, 0x0a, 0x0c, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x73, 0x22, 0xab, 0x02, 0x0a, 0x1d, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x3d, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, + 0x0d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x37, + 0x0a, 0x0a, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x0a, 0x68, 0x6f, 0x72, + 0x64, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x09, 0x4c, 0x66, + 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, + 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x65, + 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x28, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, + 0xcf, 0x01, 0x0a, 0x11, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x22, 0xf9, 0x03, 0x0a, 0x0d, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x73, 0x12, 0x33, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x64, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x66, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x16, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x71, 0x75, 0x65, 0x75, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x61, 0x6e, 0x6b, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x61, 0x6e, 0x6b, 0x73, 0x4e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x65, 0x72, 0x73, 0x4e, 0x65, + 0x65, 0x64, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x68, 0x65, 0x61, 0x6c, + 0x65, 0x72, 0x73, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x61, 0x6d, + 0x61, 0x67, 0x65, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x64, 0x61, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0xc7, 0x01, + 0x0a, 0x0e, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x27, 0x0a, 0x07, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x64, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x0f, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, + 0x66, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, + 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x22, 0x5d, 0x0a, 0x0f, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, + 0x44, 0x22, 0x24, 0x0a, 0x10, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x76, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x4c, 0x66, + 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x22, + 0x52, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, + 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, + 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x22, 0x58, 0x0a, 0x19, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, + 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5e, + 0x0a, 0x10, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x50, + 0x0a, 0x11, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x54, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xcf, 0x01, 0x0a, 0x19, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, + 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x14, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x36, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, + 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, + 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x2e, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x2a, 0x2d, 0x0a, 0x09, 0x50, 0x56, 0x50, 0x54, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x6e, 0x79, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x48, 0x6f, 0x72, 0x64, 0x65, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x11, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x51, 0x75, 0x65, 0x75, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0e, 0x0a, 0x0a, + 0x4e, 0x6f, 0x74, 0x49, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, + 0x49, 0x6e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x10, 0x03, 0x2a, 0xd7, 0x03, 0x0a, 0x22, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x4d, + 0x75, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, + 0x22, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, + 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, + 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, + 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, + 0x4e, 0x44, 0x10, 0x01, 0x12, 0x33, 0x0a, 0x2f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, + 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, + 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x45, 0x4d, 0x42, 0x45, 0x52, 0x5f, 0x4d, + 0x49, 0x53, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x02, 0x12, 0x30, 0x0a, 0x2c, 0x4d, 0x41, 0x54, + 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, + 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0x03, 0x12, 0x2f, 0x0a, 0x2b, 0x4d, + 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, + 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, + 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x58, 0x49, 0x53, 0x54, 0x53, 0x10, 0x04, 0x12, 0x33, 0x0a, 0x2f, + 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, + 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, + 0x05, 0x12, 0x2f, 0x0a, 0x2b, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, + 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, + 0x10, 0x06, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, + 0x47, 0x5f, 0x41, 0x52, 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x30, + 0x0a, 0x2c, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x4d, 0x41, 0x4b, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, + 0x45, 0x4e, 0x41, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x5f, 0x4d, 0x55, 0x54, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x08, + 0x2a, 0xcb, 0x01, 0x0a, 0x08, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, + 0x4f, 0x4c, 0x45, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x46, + 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x02, + 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x46, 0x47, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, + 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, + 0x4e, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, + 0x4e, 0x10, 0x06, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x46, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x52, 0x41, 0x49, 0x44, 0x42, 0x52, 0x4f, 0x57, 0x53, 0x45, 0x52, 0x10, 0x07, 0x2a, 0x62, + 0x0a, 0x10, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x46, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, + 0x41, 0x4c, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, + 0x17, 0x0a, 0x13, 0x4c, 0x46, 0x47, 0x5f, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, + 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x46, 0x47, 0x5f, + 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, + 0x10, 0x02, 0x2a, 0xf0, 0x03, 0x0a, 0x0d, 0x4c, 0x66, 0x67, 0x4a, 0x6f, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, + 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x46, + 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x46, 0x55, 0x4c, + 0x4c, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, + 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, + 0x5f, 0x4d, 0x45, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x53, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, + 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x4e, + 0x4f, 0x54, 0x5f, 0x4d, 0x45, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x53, 0x10, 0x06, 0x12, 0x1f, + 0x0a, 0x1b, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, + 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, 0x4e, 0x10, 0x07, 0x12, + 0x18, 0x0a, 0x14, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x4d, 0x55, 0x4c, 0x54, + 0x49, 0x5f, 0x52, 0x45, 0x41, 0x4c, 0x4d, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x46, 0x47, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x10, 0x09, 0x12, 0x1e, 0x0a, 0x1a, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x44, 0x55, 0x4e, 0x47, 0x45, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x10, 0x0b, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x44, + 0x45, 0x53, 0x45, 0x52, 0x54, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x46, 0x47, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x44, 0x45, 0x53, 0x45, + 0x52, 0x54, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, + 0x49, 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x43, 0x4f, 0x4f, 0x4c, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x0e, 0x12, 0x22, 0x0a, 0x1e, 0x4c, 0x46, 0x47, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, + 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x5f, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x43, 0x4f, + 0x4f, 0x4c, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x0f, 0x12, 0x1d, 0x0a, 0x19, 0x4c, 0x46, 0x47, 0x5f, + 0x4a, 0x4f, 0x49, 0x4e, 0x5f, 0x54, 0x4f, 0x4f, 0x5f, 0x4d, 0x41, 0x4e, 0x59, 0x5f, 0x4d, 0x45, + 0x4d, 0x42, 0x45, 0x52, 0x53, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x46, 0x47, 0x5f, 0x4a, + 0x4f, 0x49, 0x4e, 0x5f, 0x55, 0x53, 0x49, 0x4e, 0x47, 0x5f, 0x42, 0x47, 0x5f, 0x53, 0x59, 0x53, + 0x54, 0x45, 0x4d, 0x10, 0x11, 0x32, 0xe5, 0x08, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x15, + 0x45, 0x6e, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x71, + 0x75, 0x65, 0x75, 0x65, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x51, 0x75, 0x65, 0x75, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x61, 0x74, 0x61, @@ -1257,9 +3450,39 @@ var file_matchmaking_proto_rawDesc = []byte{ 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x14, 0x5a, 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x52, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x32, 0x0a, 0x07, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x12, 0x12, 0x2e, 0x76, + 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, + 0x67, 0x12, 0x13, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4c, 0x66, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x76, + 0x65, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, + 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x52, + 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, 0x67, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4c, 0x66, 0x67, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, + 0x0a, 0x09, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, + 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x12, 0x1d, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, + 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x4c, 0x66, 0x67, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x14, 0x5a, + 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1274,50 +3497,109 @@ func file_matchmaking_proto_rawDescGZIP() []byte { return file_matchmaking_proto_rawDescData } -var file_matchmaking_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_matchmaking_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_matchmaking_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_matchmaking_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_matchmaking_proto_goTypes = []interface{}{ - (PVPTeamID)(0), // 0: v1.PVPTeamID - (PlayerQueueStatus)(0), // 1: v1.PlayerQueueStatus - (BattlegroundStatusChangedRequest_Status)(0), // 2: v1.BattlegroundStatusChangedRequest.Status - (*EnqueueToBattlegroundRequest)(nil), // 3: v1.EnqueueToBattlegroundRequest - (*EnqueueToBattlegroundResponse)(nil), // 4: v1.EnqueueToBattlegroundResponse - (*RemovePlayerFromQueueRequest)(nil), // 5: v1.RemovePlayerFromQueueRequest - (*RemovePlayerFromQueueResponse)(nil), // 6: v1.RemovePlayerFromQueueResponse - (*BattlegroundQueueDataForPlayerRequest)(nil), // 7: v1.BattlegroundQueueDataForPlayerRequest - (*BattlegroundQueueDataForPlayerResponse)(nil), // 8: v1.BattlegroundQueueDataForPlayerResponse - (*PlayerLeftBattlegroundRequest)(nil), // 9: v1.PlayerLeftBattlegroundRequest - (*PlayerLeftBattlegroundResponse)(nil), // 10: v1.PlayerLeftBattlegroundResponse - (*PlayerJoinedBattlegroundRequest)(nil), // 11: v1.PlayerJoinedBattlegroundRequest - (*PlayerJoinedBattlegroundResponse)(nil), // 12: v1.PlayerJoinedBattlegroundResponse - (*BattlegroundStatusChangedRequest)(nil), // 13: v1.BattlegroundStatusChangedRequest - (*BattlegroundStatusChangedResponse)(nil), // 14: v1.BattlegroundStatusChangedResponse - (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData)(nil), // 15: v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData - (*BattlegroundQueueDataForPlayerResponse_QueueSlot)(nil), // 16: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot + (PVPTeamID)(0), // 0: v1.PVPTeamID + (PlayerQueueStatus)(0), // 1: v1.PlayerQueueStatus + (MatchmakingArenaTeamMutationStatus)(0), // 2: v1.MatchmakingArenaTeamMutationStatus + (LfgState)(0), // 3: v1.LfgState + (LfgProposalState)(0), // 4: v1.LfgProposalState + (LfgJoinResult)(0), // 5: v1.LfgJoinResult + (BattlegroundStatusChangedRequest_Status)(0), // 6: v1.BattlegroundStatusChangedRequest.Status + (*EnqueueToBattlegroundRequest)(nil), // 7: v1.EnqueueToBattlegroundRequest + (*EnqueueToBattlegroundResponse)(nil), // 8: v1.EnqueueToBattlegroundResponse + (*RemovePlayerFromQueueRequest)(nil), // 9: v1.RemovePlayerFromQueueRequest + (*RemovePlayerFromQueueResponse)(nil), // 10: v1.RemovePlayerFromQueueResponse + (*BattlegroundQueueDataForPlayerRequest)(nil), // 11: v1.BattlegroundQueueDataForPlayerRequest + (*BattlegroundQueueDataForPlayerResponse)(nil), // 12: v1.BattlegroundQueueDataForPlayerResponse + (*PlayerLeftBattlegroundRequest)(nil), // 13: v1.PlayerLeftBattlegroundRequest + (*PlayerLeftBattlegroundResponse)(nil), // 14: v1.PlayerLeftBattlegroundResponse + (*PlayerJoinedBattlegroundRequest)(nil), // 15: v1.PlayerJoinedBattlegroundRequest + (*PlayerJoinedBattlegroundResponse)(nil), // 16: v1.PlayerJoinedBattlegroundResponse + (*BattlegroundStatusChangedRequest)(nil), // 17: v1.BattlegroundStatusChangedRequest + (*BattlegroundStatusChangedResponse)(nil), // 18: v1.BattlegroundStatusChangedResponse + (*RatedArenaParticipant)(nil), // 19: v1.RatedArenaParticipant + (*RatedArenaTeamScore)(nil), // 20: v1.RatedArenaTeamScore + (*RatedArenaMemberResult)(nil), // 21: v1.RatedArenaMemberResult + (*FinishRatedArenaMatchRequest)(nil), // 22: v1.FinishRatedArenaMatchRequest + (*FinishRatedArenaMatchResponse)(nil), // 23: v1.FinishRatedArenaMatchResponse + (*LfgMember)(nil), // 24: v1.LfgMember + (*LfgProposalMember)(nil), // 25: v1.LfgProposalMember + (*LfgStatusData)(nil), // 26: v1.LfgStatusData + (*JoinLfgRequest)(nil), // 27: v1.JoinLfgRequest + (*JoinLfgResponse)(nil), // 28: v1.JoinLfgResponse + (*LeaveLfgRequest)(nil), // 29: v1.LeaveLfgRequest + (*LeaveLfgResponse)(nil), // 30: v1.LeaveLfgResponse + (*SetLfgRolesRequest)(nil), // 31: v1.SetLfgRolesRequest + (*SetLfgRolesResponse)(nil), // 32: v1.SetLfgRolesResponse + (*AnswerLfgProposalRequest)(nil), // 33: v1.AnswerLfgProposalRequest + (*AnswerLfgProposalResponse)(nil), // 34: v1.AnswerLfgProposalResponse + (*LfgStatusRequest)(nil), // 35: v1.LfgStatusRequest + (*LfgStatusResponse)(nil), // 36: v1.LfgStatusResponse + (*CompleteLfgDungeonPlayer)(nil), // 37: v1.CompleteLfgDungeonPlayer + (*CompleteLfgDungeonRequest)(nil), // 38: v1.CompleteLfgDungeonRequest + (*CompleteLfgDungeonResponse)(nil), // 39: v1.CompleteLfgDungeonResponse + (*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData)(nil), // 40: v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData + (*BattlegroundQueueDataForPlayerResponse_QueueSlot)(nil), // 41: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot } var file_matchmaking_proto_depIdxs = []int32{ 0, // 0: v1.EnqueueToBattlegroundRequest.teamID:type_name -> v1.PVPTeamID - 16, // 1: v1.BattlegroundQueueDataForPlayerResponse.slots:type_name -> v1.BattlegroundQueueDataForPlayerResponse.QueueSlot - 2, // 2: v1.BattlegroundStatusChangedRequest.status:type_name -> v1.BattlegroundStatusChangedRequest.Status - 1, // 3: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.status:type_name -> v1.PlayerQueueStatus - 15, // 4: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.assignedBattlegroundData:type_name -> v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData - 3, // 5: v1.MatchmakingService.EnqueueToBattleground:input_type -> v1.EnqueueToBattlegroundRequest - 5, // 6: v1.MatchmakingService.RemovePlayerFromQueue:input_type -> v1.RemovePlayerFromQueueRequest - 7, // 7: v1.MatchmakingService.BattlegroundQueueDataForPlayer:input_type -> v1.BattlegroundQueueDataForPlayerRequest - 9, // 8: v1.MatchmakingService.PlayerLeftBattleground:input_type -> v1.PlayerLeftBattlegroundRequest - 11, // 9: v1.MatchmakingService.PlayerJoinedBattleground:input_type -> v1.PlayerJoinedBattlegroundRequest - 13, // 10: v1.MatchmakingService.BattlegroundStatusChanged:input_type -> v1.BattlegroundStatusChangedRequest - 4, // 11: v1.MatchmakingService.EnqueueToBattleground:output_type -> v1.EnqueueToBattlegroundResponse - 6, // 12: v1.MatchmakingService.RemovePlayerFromQueue:output_type -> v1.RemovePlayerFromQueueResponse - 8, // 13: v1.MatchmakingService.BattlegroundQueueDataForPlayer:output_type -> v1.BattlegroundQueueDataForPlayerResponse - 10, // 14: v1.MatchmakingService.PlayerLeftBattleground:output_type -> v1.PlayerLeftBattlegroundResponse - 12, // 15: v1.MatchmakingService.PlayerJoinedBattleground:output_type -> v1.PlayerJoinedBattlegroundResponse - 14, // 16: v1.MatchmakingService.BattlegroundStatusChanged:output_type -> v1.BattlegroundStatusChangedResponse - 11, // [11:17] is the sub-list for method output_type - 5, // [5:11] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 41, // 1: v1.BattlegroundQueueDataForPlayerResponse.slots:type_name -> v1.BattlegroundQueueDataForPlayerResponse.QueueSlot + 6, // 2: v1.BattlegroundStatusChangedRequest.status:type_name -> v1.BattlegroundStatusChangedRequest.Status + 0, // 3: v1.RatedArenaParticipant.team:type_name -> v1.PVPTeamID + 0, // 4: v1.RatedArenaMemberResult.team:type_name -> v1.PVPTeamID + 0, // 5: v1.FinishRatedArenaMatchRequest.winnerTeam:type_name -> v1.PVPTeamID + 19, // 6: v1.FinishRatedArenaMatchRequest.participants:type_name -> v1.RatedArenaParticipant + 2, // 7: v1.FinishRatedArenaMatchResponse.status:type_name -> v1.MatchmakingArenaTeamMutationStatus + 20, // 8: v1.FinishRatedArenaMatchResponse.allianceScore:type_name -> v1.RatedArenaTeamScore + 20, // 9: v1.FinishRatedArenaMatchResponse.hordeScore:type_name -> v1.RatedArenaTeamScore + 21, // 10: v1.FinishRatedArenaMatchResponse.memberResults:type_name -> v1.RatedArenaMemberResult + 3, // 11: v1.LfgStatusData.state:type_name -> v1.LfgState + 4, // 12: v1.LfgStatusData.proposalState:type_name -> v1.LfgProposalState + 24, // 13: v1.LfgStatusData.queuedMembers:type_name -> v1.LfgMember + 25, // 14: v1.LfgStatusData.proposalMembers:type_name -> v1.LfgProposalMember + 24, // 15: v1.JoinLfgRequest.members:type_name -> v1.LfgMember + 5, // 16: v1.JoinLfgResponse.result:type_name -> v1.LfgJoinResult + 26, // 17: v1.JoinLfgResponse.status:type_name -> v1.LfgStatusData + 26, // 18: v1.SetLfgRolesResponse.status:type_name -> v1.LfgStatusData + 26, // 19: v1.AnswerLfgProposalResponse.status:type_name -> v1.LfgStatusData + 26, // 20: v1.LfgStatusResponse.status:type_name -> v1.LfgStatusData + 37, // 21: v1.CompleteLfgDungeonRequest.players:type_name -> v1.CompleteLfgDungeonPlayer + 0, // 22: v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData.assignedTeamID:type_name -> v1.PVPTeamID + 1, // 23: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.status:type_name -> v1.PlayerQueueStatus + 40, // 24: v1.BattlegroundQueueDataForPlayerResponse.QueueSlot.assignedBattlegroundData:type_name -> v1.BattlegroundQueueDataForPlayerResponse.AssignedBattlegroundData + 7, // 25: v1.MatchmakingService.EnqueueToBattleground:input_type -> v1.EnqueueToBattlegroundRequest + 9, // 26: v1.MatchmakingService.RemovePlayerFromQueue:input_type -> v1.RemovePlayerFromQueueRequest + 11, // 27: v1.MatchmakingService.BattlegroundQueueDataForPlayer:input_type -> v1.BattlegroundQueueDataForPlayerRequest + 13, // 28: v1.MatchmakingService.PlayerLeftBattleground:input_type -> v1.PlayerLeftBattlegroundRequest + 15, // 29: v1.MatchmakingService.PlayerJoinedBattleground:input_type -> v1.PlayerJoinedBattlegroundRequest + 17, // 30: v1.MatchmakingService.BattlegroundStatusChanged:input_type -> v1.BattlegroundStatusChangedRequest + 22, // 31: v1.MatchmakingService.FinishRatedArenaMatch:input_type -> v1.FinishRatedArenaMatchRequest + 27, // 32: v1.MatchmakingService.JoinLfg:input_type -> v1.JoinLfgRequest + 29, // 33: v1.MatchmakingService.LeaveLfg:input_type -> v1.LeaveLfgRequest + 31, // 34: v1.MatchmakingService.SetLfgRoles:input_type -> v1.SetLfgRolesRequest + 33, // 35: v1.MatchmakingService.AnswerLfgProposal:input_type -> v1.AnswerLfgProposalRequest + 35, // 36: v1.MatchmakingService.LfgStatus:input_type -> v1.LfgStatusRequest + 38, // 37: v1.MatchmakingService.CompleteLfgDungeon:input_type -> v1.CompleteLfgDungeonRequest + 8, // 38: v1.MatchmakingService.EnqueueToBattleground:output_type -> v1.EnqueueToBattlegroundResponse + 10, // 39: v1.MatchmakingService.RemovePlayerFromQueue:output_type -> v1.RemovePlayerFromQueueResponse + 12, // 40: v1.MatchmakingService.BattlegroundQueueDataForPlayer:output_type -> v1.BattlegroundQueueDataForPlayerResponse + 14, // 41: v1.MatchmakingService.PlayerLeftBattleground:output_type -> v1.PlayerLeftBattlegroundResponse + 16, // 42: v1.MatchmakingService.PlayerJoinedBattleground:output_type -> v1.PlayerJoinedBattlegroundResponse + 18, // 43: v1.MatchmakingService.BattlegroundStatusChanged:output_type -> v1.BattlegroundStatusChangedResponse + 23, // 44: v1.MatchmakingService.FinishRatedArenaMatch:output_type -> v1.FinishRatedArenaMatchResponse + 28, // 45: v1.MatchmakingService.JoinLfg:output_type -> v1.JoinLfgResponse + 30, // 46: v1.MatchmakingService.LeaveLfg:output_type -> v1.LeaveLfgResponse + 32, // 47: v1.MatchmakingService.SetLfgRoles:output_type -> v1.SetLfgRolesResponse + 34, // 48: v1.MatchmakingService.AnswerLfgProposal:output_type -> v1.AnswerLfgProposalResponse + 36, // 49: v1.MatchmakingService.LfgStatus:output_type -> v1.LfgStatusResponse + 39, // 50: v1.MatchmakingService.CompleteLfgDungeon:output_type -> v1.CompleteLfgDungeonResponse + 38, // [38:51] is the sub-list for method output_type + 25, // [25:38] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_matchmaking_proto_init() } @@ -1471,7 +3753,7 @@ func file_matchmaking_proto_init() { } } file_matchmaking_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData); i { + switch v := v.(*RatedArenaParticipant); i { case 0: return &v.state case 1: @@ -1483,6 +3765,258 @@ func file_matchmaking_proto_init() { } } file_matchmaking_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RatedArenaTeamScore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RatedArenaMemberResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishRatedArenaMatchRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FinishRatedArenaMatchResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgProposalMember); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgStatusData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinLfgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinLfgResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveLfgRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LeaveLfgResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgRolesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgRolesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerLfgProposalRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerLfgProposalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteLfgDungeonPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteLfgDungeonRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CompleteLfgDungeonResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BattlegroundQueueDataForPlayerResponse_AssignedBattlegroundData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_matchmaking_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BattlegroundQueueDataForPlayerResponse_QueueSlot); i { case 0: return &v.state @@ -1495,14 +4029,14 @@ func file_matchmaking_proto_init() { } } } - file_matchmaking_proto_msgTypes[13].OneofWrappers = []interface{}{} + file_matchmaking_proto_msgTypes[34].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_matchmaking_proto_rawDesc, - NumEnums: 3, - NumMessages: 14, + NumEnums: 7, + NumMessages: 35, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/matchmaking/pb/matchmaking_grpc.pb.go b/gen/matchmaking/pb/matchmaking_grpc.pb.go index 3d3bac4..e0cf9bc 100644 --- a/gen/matchmaking/pb/matchmaking_grpc.pb.go +++ b/gen/matchmaking/pb/matchmaking_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: matchmaking.proto package pb @@ -25,6 +25,13 @@ const ( MatchmakingService_PlayerLeftBattleground_FullMethodName = "/v1.MatchmakingService/PlayerLeftBattleground" MatchmakingService_PlayerJoinedBattleground_FullMethodName = "/v1.MatchmakingService/PlayerJoinedBattleground" MatchmakingService_BattlegroundStatusChanged_FullMethodName = "/v1.MatchmakingService/BattlegroundStatusChanged" + MatchmakingService_FinishRatedArenaMatch_FullMethodName = "/v1.MatchmakingService/FinishRatedArenaMatch" + MatchmakingService_JoinLfg_FullMethodName = "/v1.MatchmakingService/JoinLfg" + MatchmakingService_LeaveLfg_FullMethodName = "/v1.MatchmakingService/LeaveLfg" + MatchmakingService_SetLfgRoles_FullMethodName = "/v1.MatchmakingService/SetLfgRoles" + MatchmakingService_AnswerLfgProposal_FullMethodName = "/v1.MatchmakingService/AnswerLfgProposal" + MatchmakingService_LfgStatus_FullMethodName = "/v1.MatchmakingService/LfgStatus" + MatchmakingService_CompleteLfgDungeon_FullMethodName = "/v1.MatchmakingService/CompleteLfgDungeon" ) // MatchmakingServiceClient is the client API for MatchmakingService service. @@ -37,6 +44,13 @@ type MatchmakingServiceClient interface { PlayerLeftBattleground(ctx context.Context, in *PlayerLeftBattlegroundRequest, opts ...grpc.CallOption) (*PlayerLeftBattlegroundResponse, error) PlayerJoinedBattleground(ctx context.Context, in *PlayerJoinedBattlegroundRequest, opts ...grpc.CallOption) (*PlayerJoinedBattlegroundResponse, error) BattlegroundStatusChanged(ctx context.Context, in *BattlegroundStatusChangedRequest, opts ...grpc.CallOption) (*BattlegroundStatusChangedResponse, error) + FinishRatedArenaMatch(ctx context.Context, in *FinishRatedArenaMatchRequest, opts ...grpc.CallOption) (*FinishRatedArenaMatchResponse, error) + JoinLfg(ctx context.Context, in *JoinLfgRequest, opts ...grpc.CallOption) (*JoinLfgResponse, error) + LeaveLfg(ctx context.Context, in *LeaveLfgRequest, opts ...grpc.CallOption) (*LeaveLfgResponse, error) + SetLfgRoles(ctx context.Context, in *SetLfgRolesRequest, opts ...grpc.CallOption) (*SetLfgRolesResponse, error) + AnswerLfgProposal(ctx context.Context, in *AnswerLfgProposalRequest, opts ...grpc.CallOption) (*AnswerLfgProposalResponse, error) + LfgStatus(ctx context.Context, in *LfgStatusRequest, opts ...grpc.CallOption) (*LfgStatusResponse, error) + CompleteLfgDungeon(ctx context.Context, in *CompleteLfgDungeonRequest, opts ...grpc.CallOption) (*CompleteLfgDungeonResponse, error) } type matchmakingServiceClient struct { @@ -101,6 +115,69 @@ func (c *matchmakingServiceClient) BattlegroundStatusChanged(ctx context.Context return out, nil } +func (c *matchmakingServiceClient) FinishRatedArenaMatch(ctx context.Context, in *FinishRatedArenaMatchRequest, opts ...grpc.CallOption) (*FinishRatedArenaMatchResponse, error) { + out := new(FinishRatedArenaMatchResponse) + err := c.cc.Invoke(ctx, MatchmakingService_FinishRatedArenaMatch_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) JoinLfg(ctx context.Context, in *JoinLfgRequest, opts ...grpc.CallOption) (*JoinLfgResponse, error) { + out := new(JoinLfgResponse) + err := c.cc.Invoke(ctx, MatchmakingService_JoinLfg_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) LeaveLfg(ctx context.Context, in *LeaveLfgRequest, opts ...grpc.CallOption) (*LeaveLfgResponse, error) { + out := new(LeaveLfgResponse) + err := c.cc.Invoke(ctx, MatchmakingService_LeaveLfg_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) SetLfgRoles(ctx context.Context, in *SetLfgRolesRequest, opts ...grpc.CallOption) (*SetLfgRolesResponse, error) { + out := new(SetLfgRolesResponse) + err := c.cc.Invoke(ctx, MatchmakingService_SetLfgRoles_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) AnswerLfgProposal(ctx context.Context, in *AnswerLfgProposalRequest, opts ...grpc.CallOption) (*AnswerLfgProposalResponse, error) { + out := new(AnswerLfgProposalResponse) + err := c.cc.Invoke(ctx, MatchmakingService_AnswerLfgProposal_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) LfgStatus(ctx context.Context, in *LfgStatusRequest, opts ...grpc.CallOption) (*LfgStatusResponse, error) { + out := new(LfgStatusResponse) + err := c.cc.Invoke(ctx, MatchmakingService_LfgStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *matchmakingServiceClient) CompleteLfgDungeon(ctx context.Context, in *CompleteLfgDungeonRequest, opts ...grpc.CallOption) (*CompleteLfgDungeonResponse, error) { + out := new(CompleteLfgDungeonResponse) + err := c.cc.Invoke(ctx, MatchmakingService_CompleteLfgDungeon_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // MatchmakingServiceServer is the server API for MatchmakingService service. // All implementations must embed UnimplementedMatchmakingServiceServer // for forward compatibility @@ -111,6 +188,13 @@ type MatchmakingServiceServer interface { PlayerLeftBattleground(context.Context, *PlayerLeftBattlegroundRequest) (*PlayerLeftBattlegroundResponse, error) PlayerJoinedBattleground(context.Context, *PlayerJoinedBattlegroundRequest) (*PlayerJoinedBattlegroundResponse, error) BattlegroundStatusChanged(context.Context, *BattlegroundStatusChangedRequest) (*BattlegroundStatusChangedResponse, error) + FinishRatedArenaMatch(context.Context, *FinishRatedArenaMatchRequest) (*FinishRatedArenaMatchResponse, error) + JoinLfg(context.Context, *JoinLfgRequest) (*JoinLfgResponse, error) + LeaveLfg(context.Context, *LeaveLfgRequest) (*LeaveLfgResponse, error) + SetLfgRoles(context.Context, *SetLfgRolesRequest) (*SetLfgRolesResponse, error) + AnswerLfgProposal(context.Context, *AnswerLfgProposalRequest) (*AnswerLfgProposalResponse, error) + LfgStatus(context.Context, *LfgStatusRequest) (*LfgStatusResponse, error) + CompleteLfgDungeon(context.Context, *CompleteLfgDungeonRequest) (*CompleteLfgDungeonResponse, error) mustEmbedUnimplementedMatchmakingServiceServer() } @@ -136,6 +220,27 @@ func (UnimplementedMatchmakingServiceServer) PlayerJoinedBattleground(context.Co func (UnimplementedMatchmakingServiceServer) BattlegroundStatusChanged(context.Context, *BattlegroundStatusChangedRequest) (*BattlegroundStatusChangedResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method BattlegroundStatusChanged not implemented") } +func (UnimplementedMatchmakingServiceServer) FinishRatedArenaMatch(context.Context, *FinishRatedArenaMatchRequest) (*FinishRatedArenaMatchResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FinishRatedArenaMatch not implemented") +} +func (UnimplementedMatchmakingServiceServer) JoinLfg(context.Context, *JoinLfgRequest) (*JoinLfgResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method JoinLfg not implemented") +} +func (UnimplementedMatchmakingServiceServer) LeaveLfg(context.Context, *LeaveLfgRequest) (*LeaveLfgResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LeaveLfg not implemented") +} +func (UnimplementedMatchmakingServiceServer) SetLfgRoles(context.Context, *SetLfgRolesRequest) (*SetLfgRolesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetLfgRoles not implemented") +} +func (UnimplementedMatchmakingServiceServer) AnswerLfgProposal(context.Context, *AnswerLfgProposalRequest) (*AnswerLfgProposalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method AnswerLfgProposal not implemented") +} +func (UnimplementedMatchmakingServiceServer) LfgStatus(context.Context, *LfgStatusRequest) (*LfgStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method LfgStatus not implemented") +} +func (UnimplementedMatchmakingServiceServer) CompleteLfgDungeon(context.Context, *CompleteLfgDungeonRequest) (*CompleteLfgDungeonResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CompleteLfgDungeon not implemented") +} func (UnimplementedMatchmakingServiceServer) mustEmbedUnimplementedMatchmakingServiceServer() {} // UnsafeMatchmakingServiceServer may be embedded to opt out of forward compatibility for this service. @@ -257,6 +362,132 @@ func _MatchmakingService_BattlegroundStatusChanged_Handler(srv interface{}, ctx return interceptor(ctx, in, info, handler) } +func _MatchmakingService_FinishRatedArenaMatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FinishRatedArenaMatchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).FinishRatedArenaMatch(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_FinishRatedArenaMatch_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).FinishRatedArenaMatch(ctx, req.(*FinishRatedArenaMatchRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_JoinLfg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(JoinLfgRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).JoinLfg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_JoinLfg_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).JoinLfg(ctx, req.(*JoinLfgRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_LeaveLfg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LeaveLfgRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).LeaveLfg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_LeaveLfg_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).LeaveLfg(ctx, req.(*LeaveLfgRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_SetLfgRoles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetLfgRolesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).SetLfgRoles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_SetLfgRoles_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).SetLfgRoles(ctx, req.(*SetLfgRolesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_AnswerLfgProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AnswerLfgProposalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).AnswerLfgProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_AnswerLfgProposal_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).AnswerLfgProposal(ctx, req.(*AnswerLfgProposalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_LfgStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LfgStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).LfgStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_LfgStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).LfgStatus(ctx, req.(*LfgStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _MatchmakingService_CompleteLfgDungeon_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CompleteLfgDungeonRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MatchmakingServiceServer).CompleteLfgDungeon(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: MatchmakingService_CompleteLfgDungeon_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MatchmakingServiceServer).CompleteLfgDungeon(ctx, req.(*CompleteLfgDungeonRequest)) + } + return interceptor(ctx, in, info, handler) +} + // MatchmakingService_ServiceDesc is the grpc.ServiceDesc for MatchmakingService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -288,6 +519,34 @@ var MatchmakingService_ServiceDesc = grpc.ServiceDesc{ MethodName: "BattlegroundStatusChanged", Handler: _MatchmakingService_BattlegroundStatusChanged_Handler, }, + { + MethodName: "FinishRatedArenaMatch", + Handler: _MatchmakingService_FinishRatedArenaMatch_Handler, + }, + { + MethodName: "JoinLfg", + Handler: _MatchmakingService_JoinLfg_Handler, + }, + { + MethodName: "LeaveLfg", + Handler: _MatchmakingService_LeaveLfg_Handler, + }, + { + MethodName: "SetLfgRoles", + Handler: _MatchmakingService_SetLfgRoles_Handler, + }, + { + MethodName: "AnswerLfgProposal", + Handler: _MatchmakingService_AnswerLfgProposal_Handler, + }, + { + MethodName: "LfgStatus", + Handler: _MatchmakingService_LfgStatus_Handler, + }, + { + MethodName: "CompleteLfgDungeon", + Handler: _MatchmakingService_CompleteLfgDungeon_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "matchmaking.proto", diff --git a/gen/servers-registry/pb/registry.pb.go b/gen/servers-registry/pb/registry.pb.go index 4f5f8d3..5cbdb38 100644 --- a/gen/servers-registry/pb/registry.pb.go +++ b/gen/servers-registry/pb/registry.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc-gen-go v1.36.11 +// protoc v3.21.12 // source: registry.proto package pb @@ -11,6 +11,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -22,27 +23,24 @@ const ( // RegisterGameServer type RegisterGameServerRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` - HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` - GrpcPort uint32 `protobuf:"varint,4,opt,name=grpcPort,proto3" json:"grpcPort,omitempty"` - RealmID uint32 `protobuf:"varint,5,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,6,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // If true realm id should be 0 - AvailableMaps string `protobuf:"bytes,7,opt,name=availableMaps,proto3" json:"availableMaps,omitempty"` - PreferredHostName string `protobuf:"bytes,8,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` + HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` + GrpcPort uint32 `protobuf:"varint,4,opt,name=grpcPort,proto3" json:"grpcPort,omitempty"` + RealmID uint32 `protobuf:"varint,5,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,6,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // If true realm id should be 0 + AvailableMaps string `protobuf:"bytes,7,opt,name=availableMaps,proto3" json:"availableMaps,omitempty"` + PreferredHostName string `protobuf:"bytes,8,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RegisterGameServerRequest) Reset() { *x = RegisterGameServerRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGameServerRequest) String() string { @@ -53,7 +51,7 @@ func (*RegisterGameServerRequest) ProtoMessage() {} func (x *RegisterGameServerRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -125,22 +123,19 @@ func (x *RegisterGameServerRequest) GetPreferredHostName() string { } type RegisterGameServerResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + AssignedMaps []uint32 `protobuf:"varint,3,rep,packed,name=assignedMaps,proto3" json:"assignedMaps,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` - AssignedMaps []uint32 `protobuf:"varint,3,rep,packed,name=assignedMaps,proto3" json:"assignedMaps,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RegisterGameServerResponse) Reset() { *x = RegisterGameServerResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGameServerResponse) String() string { @@ -151,7 +146,7 @@ func (*RegisterGameServerResponse) ProtoMessage() {} func (x *RegisterGameServerResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -189,23 +184,20 @@ func (x *RegisterGameServerResponse) GetAssignedMaps() []uint32 { // AvailableGameServersForMapAndRealm type AvailableGameServersForMapAndRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + MapID uint32 `protobuf:"varint,3,opt,name=mapID,proto3" json:"mapID,omitempty"` + IsCrossRealm bool `protobuf:"varint,4,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - MapID uint32 `protobuf:"varint,3,opt,name=mapID,proto3" json:"mapID,omitempty"` - IsCrossRealm bool `protobuf:"varint,4,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id + sizeCache protoimpl.SizeCache } func (x *AvailableGameServersForMapAndRealmRequest) Reset() { *x = AvailableGameServersForMapAndRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableGameServersForMapAndRealmRequest) String() string { @@ -216,7 +208,7 @@ func (*AvailableGameServersForMapAndRealmRequest) ProtoMessage() {} func (x *AvailableGameServersForMapAndRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -260,21 +252,18 @@ func (x *AvailableGameServersForMapAndRealmRequest) GetIsCrossRealm() bool { } type AvailableGameServersForMapAndRealmResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServers []*Server `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServers []*Server `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AvailableGameServersForMapAndRealmResponse) Reset() { *x = AvailableGameServersForMapAndRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AvailableGameServersForMapAndRealmResponse) String() string { @@ -285,7 +274,7 @@ func (*AvailableGameServersForMapAndRealmResponse) ProtoMessage() {} func (x *AvailableGameServersForMapAndRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -316,21 +305,18 @@ func (x *AvailableGameServersForMapAndRealmResponse) GetGameServers() []*Server // RandomGameServerForRealm type RandomGameServerForRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RandomGameServerForRealmRequest) Reset() { *x = RandomGameServerForRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RandomGameServerForRealmRequest) String() string { @@ -341,7 +327,7 @@ func (*RandomGameServerForRealmRequest) ProtoMessage() {} func (x *RandomGameServerForRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -371,21 +357,18 @@ func (x *RandomGameServerForRealmRequest) GetRealmID() uint32 { } type RandomGameServerForRealmResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServer *Server `protobuf:"bytes,2,opt,name=gameServer,proto3" json:"gameServer,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServer *Server `protobuf:"bytes,2,opt,name=gameServer,proto3" json:"gameServer,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RandomGameServerForRealmResponse) Reset() { *x = RandomGameServerForRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RandomGameServerForRealmResponse) String() string { @@ -396,7 +379,7 @@ func (*RandomGameServerForRealmResponse) ProtoMessage() {} func (x *RandomGameServerForRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -427,22 +410,19 @@ func (x *RandomGameServerForRealmResponse) GetGameServer() *Server { // ListGameServersForRealm type ListGameServersForRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id + sizeCache protoimpl.SizeCache } func (x *ListGameServersForRealmRequest) Reset() { *x = ListGameServersForRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGameServersForRealmRequest) String() string { @@ -453,7 +433,7 @@ func (*ListGameServersForRealmRequest) ProtoMessage() {} func (x *ListGameServersForRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -490,10 +470,7 @@ func (x *ListGameServersForRealmRequest) GetIsCrossRealm() bool { } type GameServerDetailed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` HealthAddress string `protobuf:"bytes,3,opt,name=healthAddress,proto3" json:"healthAddress,omitempty"` @@ -504,15 +481,15 @@ type GameServerDetailed struct { Diff *GameServerDetailed_Diff `protobuf:"bytes,8,opt,name=diff,proto3" json:"diff,omitempty"` AvailableMaps []uint32 `protobuf:"varint,9,rep,packed,name=availableMaps,proto3" json:"availableMaps,omitempty"` AssignedMaps []uint32 `protobuf:"varint,10,rep,packed,name=assignedMaps,proto3" json:"assignedMaps,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GameServerDetailed) Reset() { *x = GameServerDetailed{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerDetailed) String() string { @@ -523,7 +500,7 @@ func (*GameServerDetailed) ProtoMessage() {} func (x *GameServerDetailed) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -609,21 +586,18 @@ func (x *GameServerDetailed) GetAssignedMaps() []uint32 { } type ListGameServersResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServers []*GameServerDetailed `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServers []*GameServerDetailed `protobuf:"bytes,2,rep,name=gameServers,proto3" json:"gameServers,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListGameServersResponse) Reset() { *x = ListGameServersResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGameServersResponse) String() string { @@ -634,7 +608,7 @@ func (*ListGameServersResponse) ProtoMessage() {} func (x *ListGameServersResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -665,20 +639,17 @@ func (x *ListGameServersResponse) GetGameServers() []*GameServerDetailed { // ListAllGameServers type ListAllGameServersRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListAllGameServersRequest) Reset() { *x = ListAllGameServersRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListAllGameServersRequest) String() string { @@ -689,7 +660,7 @@ func (*ListAllGameServersRequest) ProtoMessage() {} func (x *ListAllGameServersRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -713,22 +684,19 @@ func (x *ListAllGameServersRequest) GetApi() string { // GameServerMapsLoaded type GameServerMapsLoadedRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GameServerID string `protobuf:"bytes,2,opt,name=gameServerID,proto3" json:"gameServerID,omitempty"` + MapsLoaded []uint32 `protobuf:"varint,3,rep,packed,name=mapsLoaded,proto3" json:"mapsLoaded,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GameServerID string `protobuf:"bytes,2,opt,name=gameServerID,proto3" json:"gameServerID,omitempty"` - MapsLoaded []uint32 `protobuf:"varint,3,rep,packed,name=mapsLoaded,proto3" json:"mapsLoaded,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GameServerMapsLoadedRequest) Reset() { *x = GameServerMapsLoadedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerMapsLoadedRequest) String() string { @@ -739,7 +707,7 @@ func (*GameServerMapsLoadedRequest) ProtoMessage() {} func (x *GameServerMapsLoadedRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -776,20 +744,17 @@ func (x *GameServerMapsLoadedRequest) GetMapsLoaded() []uint32 { } type GameServerMapsLoadedResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GameServerMapsLoadedResponse) Reset() { *x = GameServerMapsLoadedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerMapsLoadedResponse) String() string { @@ -800,7 +765,7 @@ func (*GameServerMapsLoadedResponse) ProtoMessage() {} func (x *GameServerMapsLoadedResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -824,25 +789,22 @@ func (x *GameServerMapsLoadedResponse) GetApi() string { // RegisterGateway type RegisterGatewayRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` - HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` - RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,5,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id - PreferredHostName string `protobuf:"bytes,6,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + GamePort uint32 `protobuf:"varint,2,opt,name=gamePort,proto3" json:"gamePort,omitempty"` + HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` + RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,5,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` // Can't be used with realm id + PreferredHostName string `protobuf:"bytes,6,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RegisterGatewayRequest) Reset() { *x = RegisterGatewayRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGatewayRequest) String() string { @@ -853,7 +815,7 @@ func (*RegisterGatewayRequest) ProtoMessage() {} func (x *RegisterGatewayRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -911,21 +873,18 @@ func (x *RegisterGatewayRequest) GetPreferredHostName() string { } type RegisterGatewayResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + sizeCache protoimpl.SizeCache } func (x *RegisterGatewayResponse) Reset() { *x = RegisterGatewayResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegisterGatewayResponse) String() string { @@ -936,7 +895,7 @@ func (*RegisterGatewayResponse) ProtoMessage() {} func (x *RegisterGatewayResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -967,21 +926,18 @@ func (x *RegisterGatewayResponse) GetId() string { // GatewaysForRealms type GatewaysForRealmsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmIDs []uint32 `protobuf:"varint,2,rep,packed,name=realmIDs,proto3" json:"realmIDs,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmIDs []uint32 `protobuf:"varint,2,rep,packed,name=realmIDs,proto3" json:"realmIDs,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GatewaysForRealmsRequest) Reset() { *x = GatewaysForRealmsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GatewaysForRealmsRequest) String() string { @@ -992,7 +948,7 @@ func (*GatewaysForRealmsRequest) ProtoMessage() {} func (x *GatewaysForRealmsRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1022,21 +978,18 @@ func (x *GatewaysForRealmsRequest) GetRealmIDs() []uint32 { } type GatewaysForRealmsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Gateways []*Server `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Gateways []*Server `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GatewaysForRealmsResponse) Reset() { *x = GatewaysForRealmsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GatewaysForRealmsResponse) String() string { @@ -1047,7 +1000,7 @@ func (*GatewaysForRealmsResponse) ProtoMessage() {} func (x *GatewaysForRealmsResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1078,21 +1031,18 @@ func (x *GatewaysForRealmsResponse) GetGateways() []*Server { // ListGatewaysForRealm type ListGatewaysForRealmRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListGatewaysForRealmRequest) Reset() { *x = ListGatewaysForRealmRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGatewaysForRealmRequest) String() string { @@ -1103,7 +1053,7 @@ func (*ListGatewaysForRealmRequest) ProtoMessage() {} func (x *ListGatewaysForRealmRequest) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1133,24 +1083,21 @@ func (x *ListGatewaysForRealmRequest) GetRealmID() uint32 { } type GatewayServerDetailed struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` - HealthAddress string `protobuf:"bytes,3,opt,name=healthAddress,proto3" json:"healthAddress,omitempty"` - RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` - ActiveConnections uint32 `protobuf:"varint,5,opt,name=activeConnections,proto3" json:"activeConnections,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + HealthAddress string `protobuf:"bytes,3,opt,name=healthAddress,proto3" json:"healthAddress,omitempty"` + RealmID uint32 `protobuf:"varint,4,opt,name=realmID,proto3" json:"realmID,omitempty"` + ActiveConnections uint32 `protobuf:"varint,5,opt,name=activeConnections,proto3" json:"activeConnections,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GatewayServerDetailed) Reset() { *x = GatewayServerDetailed{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GatewayServerDetailed) String() string { @@ -1161,7 +1108,7 @@ func (*GatewayServerDetailed) ProtoMessage() {} func (x *GatewayServerDetailed) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1212,21 +1159,18 @@ func (x *GatewayServerDetailed) GetActiveConnections() uint32 { } type ListGatewaysForRealmResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Gateways []*GatewayServerDetailed `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` unknownFields protoimpl.UnknownFields - - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - Gateways []*GatewayServerDetailed `protobuf:"bytes,2,rep,name=gateways,proto3" json:"gateways,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ListGatewaysForRealmResponse) Reset() { *x = ListGatewaysForRealmResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ListGatewaysForRealmResponse) String() string { @@ -1237,7 +1181,7 @@ func (*ListGatewaysForRealmResponse) ProtoMessage() {} func (x *ListGatewaysForRealmResponse) ProtoReflect() protoreflect.Message { mi := &file_registry_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1266,25 +1210,152 @@ func (x *ListGatewaysForRealmResponse) GetGateways() []*GatewayServerDetailed { return nil } +// RegisterMatchmakingServer +type RegisterMatchmakingServerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + ServicePort uint32 `protobuf:"varint,2,opt,name=servicePort,proto3" json:"servicePort,omitempty"` + HealthPort uint32 `protobuf:"varint,3,opt,name=healthPort,proto3" json:"healthPort,omitempty"` + PreferredHostName string `protobuf:"bytes,4,opt,name=preferredHostName,proto3" json:"preferredHostName,omitempty"` + StartedAtUnixMs int64 `protobuf:"varint,5,opt,name=startedAtUnixMs,proto3" json:"startedAtUnixMs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterMatchmakingServerRequest) Reset() { + *x = RegisterMatchmakingServerRequest{} + mi := &file_registry_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterMatchmakingServerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMatchmakingServerRequest) ProtoMessage() {} + +func (x *RegisterMatchmakingServerRequest) ProtoReflect() protoreflect.Message { + mi := &file_registry_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 RegisterMatchmakingServerRequest.ProtoReflect.Descriptor instead. +func (*RegisterMatchmakingServerRequest) Descriptor() ([]byte, []int) { + return file_registry_proto_rawDescGZIP(), []int{19} +} + +func (x *RegisterMatchmakingServerRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterMatchmakingServerRequest) GetServicePort() uint32 { + if x != nil { + return x.ServicePort + } + return 0 +} + +func (x *RegisterMatchmakingServerRequest) GetHealthPort() uint32 { + if x != nil { + return x.HealthPort + } + return 0 +} + +func (x *RegisterMatchmakingServerRequest) GetPreferredHostName() string { + if x != nil { + return x.PreferredHostName + } + return "" +} + +func (x *RegisterMatchmakingServerRequest) GetStartedAtUnixMs() int64 { + if x != nil { + return x.StartedAtUnixMs + } + return 0 +} + +type RegisterMatchmakingServerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RegisterMatchmakingServerResponse) Reset() { + *x = RegisterMatchmakingServerResponse{} + mi := &file_registry_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RegisterMatchmakingServerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterMatchmakingServerResponse) ProtoMessage() {} + +func (x *RegisterMatchmakingServerResponse) ProtoReflect() protoreflect.Message { + mi := &file_registry_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 RegisterMatchmakingServerResponse.ProtoReflect.Descriptor instead. +func (*RegisterMatchmakingServerResponse) Descriptor() ([]byte, []int) { + return file_registry_proto_rawDescGZIP(), []int{20} +} + +func (x *RegisterMatchmakingServerResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RegisterMatchmakingServerResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + // Shared type Server struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` + GrpcAddress string `protobuf:"bytes,4,opt,name=grpcAddress,proto3" json:"grpcAddress,omitempty"` + Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` unknownFields protoimpl.UnknownFields - - Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` - RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` - IsCrossRealm bool `protobuf:"varint,3,opt,name=isCrossRealm,proto3" json:"isCrossRealm,omitempty"` - GrpcAddress string `protobuf:"bytes,4,opt,name=grpcAddress,proto3" json:"grpcAddress,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Server) Reset() { *x = Server{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Server) String() string { @@ -1294,8 +1365,8 @@ func (x *Server) String() string { func (*Server) ProtoMessage() {} func (x *Server) ProtoReflect() protoreflect.Message { - mi := &file_registry_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_registry_proto_msgTypes[21] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1307,7 +1378,7 @@ func (x *Server) ProtoReflect() protoreflect.Message { // Deprecated: Use Server.ProtoReflect.Descriptor instead. func (*Server) Descriptor() ([]byte, []int) { - return file_registry_proto_rawDescGZIP(), []int{19} + return file_registry_proto_rawDescGZIP(), []int{21} } func (x *Server) GetAddress() string { @@ -1338,25 +1409,29 @@ func (x *Server) GetGrpcAddress() string { return "" } +func (x *Server) GetId() string { + if x != nil { + return x.Id + } + return "" +} + type GameServerDetailed_Diff struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Mean uint32 `protobuf:"varint,1,opt,name=mean,proto3" json:"mean,omitempty"` + Median uint32 `protobuf:"varint,2,opt,name=median,proto3" json:"median,omitempty"` + Percentile95 uint32 `protobuf:"varint,3,opt,name=percentile95,proto3" json:"percentile95,omitempty"` + Percentile99 uint32 `protobuf:"varint,4,opt,name=percentile99,proto3" json:"percentile99,omitempty"` + Max uint32 `protobuf:"varint,5,opt,name=max,proto3" json:"max,omitempty"` unknownFields protoimpl.UnknownFields - - Mean uint32 `protobuf:"varint,1,opt,name=mean,proto3" json:"mean,omitempty"` - Median uint32 `protobuf:"varint,2,opt,name=median,proto3" json:"median,omitempty"` - Percentile95 uint32 `protobuf:"varint,3,opt,name=percentile95,proto3" json:"percentile95,omitempty"` - Percentile99 uint32 `protobuf:"varint,4,opt,name=percentile99,proto3" json:"percentile99,omitempty"` - Max uint32 `protobuf:"varint,5,opt,name=max,proto3" json:"max,omitempty"` + sizeCache protoimpl.SizeCache } func (x *GameServerDetailed_Diff) Reset() { *x = GameServerDetailed_Diff{} - if protoimpl.UnsafeEnabled { - mi := &file_registry_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_registry_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GameServerDetailed_Diff) String() string { @@ -1366,8 +1441,8 @@ func (x *GameServerDetailed_Diff) String() string { func (*GameServerDetailed_Diff) ProtoMessage() {} func (x *GameServerDetailed_Diff) ProtoReflect() protoreflect.Message { - mi := &file_registry_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + mi := &file_registry_proto_msgTypes[22] + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1419,249 +1494,151 @@ func (x *GameServerDetailed_Diff) GetMax() uint32 { var File_registry_proto protoreflect.FileDescriptor -var file_registry_proto_rawDesc = []byte{ - 0x0a, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x02, 0x76, 0x31, 0x22, 0x97, 0x02, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x61, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x67, 0x72, 0x70, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, - 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x6f, 0x73, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, - 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x62, - 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, - 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, 0x61, - 0x70, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x29, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, - 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, - 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, - 0x6c, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0x6c, 0x0a, 0x2a, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, - 0x72, 0x4d, 0x61, 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x2c, 0x0a, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x22, 0x4d, 0x0a, 0x1f, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x22, 0x60, 0x0a, 0x20, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x2a, 0x0a, 0x0a, 0x67, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x0a, 0x67, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x70, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, - 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, - 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, - 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, - 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x22, 0xfc, 0x03, 0x0a, 0x12, 0x47, 0x61, 0x6d, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x0e, - 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x49, 0x44, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x2c, - 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, - 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x04, - 0x64, 0x69, 0x66, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x12, 0x24, 0x0a, - 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0d, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4d, - 0x61, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4d, - 0x61, 0x70, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x4d, 0x61, 0x70, 0x73, 0x1a, 0x8c, 0x01, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, - 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, - 0x6d, 0x65, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x12, 0x22, 0x0a, 0x0c, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x35, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x35, - 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, 0x6c, 0x65, 0x39, 0x39, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x69, - 0x6c, 0x65, 0x39, 0x39, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x22, 0x65, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x38, 0x0a, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, - 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x52, 0x0b, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x2d, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, - 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x73, 0x0a, 0x1b, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x22, 0x0a, - 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, - 0x64, 0x22, 0x30, 0x0a, 0x1c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, - 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x22, 0xd2, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x08, 0x67, 0x61, 0x6d, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, - 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, - 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, - 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3b, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x18, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x73, 0x22, - 0x55, 0x0a, 0x19, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, - 0x61, 0x6c, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x26, - 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x08, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x22, 0x49, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, - 0x44, 0x22, 0xaf, 0x01, 0x0a, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, - 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x67, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x35, 0x0a, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x22, 0x82, 0x01, 0x0a, - 0x06, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x69, - 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, - 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x70, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x32, 0xdc, 0x06, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x12, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x83, 0x01, 0x0a, 0x22, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, 0x70, - 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x2d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x46, 0x6f, 0x72, 0x4d, 0x61, 0x70, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x52, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, - 0x61, 0x6c, 0x6d, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x47, - 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, - 0x6e, 0x64, 0x6f, 0x6d, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, - 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x46, 0x6f, - 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x12, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x12, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x47, 0x61, 0x6d, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, - 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, - 0x61, 0x64, 0x65, 0x64, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x1a, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, - 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1f, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x46, - 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, - 0x46, 0x6f, 0x72, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x19, 0x5a, 0x17, 0x67, 0x65, 0x6e, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x2d, - 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} +const file_registry_proto_rawDesc = "" + + "\n" + + "\x0eregistry.proto\x12\x02v1\"\x97\x02\n" + + "\x19RegisterGameServerRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x1a\n" + + "\bgamePort\x18\x02 \x01(\rR\bgamePort\x12\x1e\n" + + "\n" + + "healthPort\x18\x03 \x01(\rR\n" + + "healthPort\x12\x1a\n" + + "\bgrpcPort\x18\x04 \x01(\rR\bgrpcPort\x12\x18\n" + + "\arealmID\x18\x05 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x06 \x01(\bR\fisCrossRealm\x12$\n" + + "\ravailableMaps\x18\a \x01(\tR\ravailableMaps\x12,\n" + + "\x11preferredHostName\x18\b \x01(\tR\x11preferredHostName\"b\n" + + "\x1aRegisterGameServerResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\x12\"\n" + + "\fassignedMaps\x18\x03 \x03(\rR\fassignedMaps\"\x91\x01\n" + + ")AvailableGameServersForMapAndRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\x12\x14\n" + + "\x05mapID\x18\x03 \x01(\rR\x05mapID\x12\"\n" + + "\fisCrossRealm\x18\x04 \x01(\bR\fisCrossRealm\"l\n" + + "*AvailableGameServersForMapAndRealmResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12,\n" + + "\vgameServers\x18\x02 \x03(\v2\n" + + ".v1.ServerR\vgameServers\"M\n" + + "\x1fRandomGameServerForRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\"`\n" + + " RandomGameServerForRealmResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12*\n" + + "\n" + + "gameServer\x18\x02 \x01(\v2\n" + + ".v1.ServerR\n" + + "gameServer\"p\n" + + "\x1eListGameServersForRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x03 \x01(\bR\fisCrossRealm\"\xfc\x03\n" + + "\x12GameServerDetailed\x12\x0e\n" + + "\x02ID\x18\x01 \x01(\tR\x02ID\x12\x18\n" + + "\aaddress\x18\x02 \x01(\tR\aaddress\x12$\n" + + "\rhealthAddress\x18\x03 \x01(\tR\rhealthAddress\x12 \n" + + "\vgrpcAddress\x18\x04 \x01(\tR\vgrpcAddress\x12\x18\n" + + "\arealmID\x18\x05 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x06 \x01(\bR\fisCrossRealm\x12,\n" + + "\x11activeConnections\x18\a \x01(\rR\x11activeConnections\x12/\n" + + "\x04diff\x18\b \x01(\v2\x1b.v1.GameServerDetailed.DiffR\x04diff\x12$\n" + + "\ravailableMaps\x18\t \x03(\rR\ravailableMaps\x12\"\n" + + "\fassignedMaps\x18\n" + + " \x03(\rR\fassignedMaps\x1a\x8c\x01\n" + + "\x04Diff\x12\x12\n" + + "\x04mean\x18\x01 \x01(\rR\x04mean\x12\x16\n" + + "\x06median\x18\x02 \x01(\rR\x06median\x12\"\n" + + "\fpercentile95\x18\x03 \x01(\rR\fpercentile95\x12\"\n" + + "\fpercentile99\x18\x04 \x01(\rR\fpercentile99\x12\x10\n" + + "\x03max\x18\x05 \x01(\rR\x03max\"e\n" + + "\x17ListGameServersResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x128\n" + + "\vgameServers\x18\x02 \x03(\v2\x16.v1.GameServerDetailedR\vgameServers\"-\n" + + "\x19ListAllGameServersRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\"s\n" + + "\x1bGameServerMapsLoadedRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\"\n" + + "\fgameServerID\x18\x02 \x01(\tR\fgameServerID\x12\x1e\n" + + "\n" + + "mapsLoaded\x18\x03 \x03(\rR\n" + + "mapsLoaded\"0\n" + + "\x1cGameServerMapsLoadedResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\"\xd2\x01\n" + + "\x16RegisterGatewayRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x1a\n" + + "\bgamePort\x18\x02 \x01(\rR\bgamePort\x12\x1e\n" + + "\n" + + "healthPort\x18\x03 \x01(\rR\n" + + "healthPort\x12\x18\n" + + "\arealmID\x18\x04 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x05 \x01(\bR\fisCrossRealm\x12,\n" + + "\x11preferredHostName\x18\x06 \x01(\tR\x11preferredHostName\";\n" + + "\x17RegisterGatewayResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"H\n" + + "\x18GatewaysForRealmsRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x1a\n" + + "\brealmIDs\x18\x02 \x03(\rR\brealmIDs\"U\n" + + "\x19GatewaysForRealmsResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12&\n" + + "\bgateways\x18\x02 \x03(\v2\n" + + ".v1.ServerR\bgateways\"I\n" + + "\x1bListGatewaysForRealmRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\"\xaf\x01\n" + + "\x15GatewayServerDetailed\x12\x0e\n" + + "\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n" + + "\aaddress\x18\x02 \x01(\tR\aaddress\x12$\n" + + "\rhealthAddress\x18\x03 \x01(\tR\rhealthAddress\x12\x18\n" + + "\arealmID\x18\x04 \x01(\rR\arealmID\x12,\n" + + "\x11activeConnections\x18\x05 \x01(\rR\x11activeConnections\"g\n" + + "\x1cListGatewaysForRealmResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x125\n" + + "\bgateways\x18\x02 \x03(\v2\x19.v1.GatewayServerDetailedR\bgateways\"\xce\x01\n" + + " RegisterMatchmakingServerRequest\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12 \n" + + "\vservicePort\x18\x02 \x01(\rR\vservicePort\x12\x1e\n" + + "\n" + + "healthPort\x18\x03 \x01(\rR\n" + + "healthPort\x12,\n" + + "\x11preferredHostName\x18\x04 \x01(\tR\x11preferredHostName\x12(\n" + + "\x0fstartedAtUnixMs\x18\x05 \x01(\x03R\x0fstartedAtUnixMs\"E\n" + + "!RegisterMatchmakingServerResponse\x12\x10\n" + + "\x03api\x18\x01 \x01(\tR\x03api\x12\x0e\n" + + "\x02id\x18\x02 \x01(\tR\x02id\"\x92\x01\n" + + "\x06Server\x12\x18\n" + + "\aaddress\x18\x01 \x01(\tR\aaddress\x12\x18\n" + + "\arealmID\x18\x02 \x01(\rR\arealmID\x12\"\n" + + "\fisCrossRealm\x18\x03 \x01(\bR\fisCrossRealm\x12 \n" + + "\vgrpcAddress\x18\x04 \x01(\tR\vgrpcAddress\x12\x0e\n" + + "\x02id\x18\x05 \x01(\tR\x02id2\xc6\a\n" + + "\x16ServersRegistryService\x12S\n" + + "\x12RegisterGameServer\x12\x1d.v1.RegisterGameServerRequest\x1a\x1e.v1.RegisterGameServerResponse\x12\x83\x01\n" + + "\"AvailableGameServersForMapAndRealm\x12-.v1.AvailableGameServersForMapAndRealmRequest\x1a..v1.AvailableGameServersForMapAndRealmResponse\x12e\n" + + "\x18RandomGameServerForRealm\x12#.v1.RandomGameServerForRealmRequest\x1a$.v1.RandomGameServerForRealmResponse\x12Z\n" + + "\x17ListGameServersForRealm\x12\".v1.ListGameServersForRealmRequest\x1a\x1b.v1.ListGameServersResponse\x12P\n" + + "\x12ListAllGameServers\x12\x1d.v1.ListAllGameServersRequest\x1a\x1b.v1.ListGameServersResponse\x12Y\n" + + "\x14GameServerMapsLoaded\x12\x1f.v1.GameServerMapsLoadedRequest\x1a .v1.GameServerMapsLoadedResponse\x12J\n" + + "\x0fRegisterGateway\x12\x1a.v1.RegisterGatewayRequest\x1a\x1b.v1.RegisterGatewayResponse\x12P\n" + + "\x11GatewaysForRealms\x12\x1c.v1.GatewaysForRealmsRequest\x1a\x1d.v1.GatewaysForRealmsResponse\x12Y\n" + + "\x14ListGatewaysForRealm\x12\x1f.v1.ListGatewaysForRealmRequest\x1a .v1.ListGatewaysForRealmResponse\x12h\n" + + "\x19RegisterMatchmakingServer\x12$.v1.RegisterMatchmakingServerRequest\x1a%.v1.RegisterMatchmakingServerResponseB\x19Z\x17gen/servers-registry/pbb\x06proto3" var ( file_registry_proto_rawDescOnce sync.Once - file_registry_proto_rawDescData = file_registry_proto_rawDesc + file_registry_proto_rawDescData []byte ) func file_registry_proto_rawDescGZIP() []byte { file_registry_proto_rawDescOnce.Do(func() { - file_registry_proto_rawDescData = protoimpl.X.CompressGZIP(file_registry_proto_rawDescData) + file_registry_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_registry_proto_rawDesc), len(file_registry_proto_rawDesc))) }) return file_registry_proto_rawDescData } -var file_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 21) -var file_registry_proto_goTypes = []interface{}{ +var file_registry_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_registry_proto_goTypes = []any{ (*RegisterGameServerRequest)(nil), // 0: v1.RegisterGameServerRequest (*RegisterGameServerResponse)(nil), // 1: v1.RegisterGameServerResponse (*AvailableGameServersForMapAndRealmRequest)(nil), // 2: v1.AvailableGameServersForMapAndRealmRequest @@ -1681,15 +1658,17 @@ var file_registry_proto_goTypes = []interface{}{ (*ListGatewaysForRealmRequest)(nil), // 16: v1.ListGatewaysForRealmRequest (*GatewayServerDetailed)(nil), // 17: v1.GatewayServerDetailed (*ListGatewaysForRealmResponse)(nil), // 18: v1.ListGatewaysForRealmResponse - (*Server)(nil), // 19: v1.Server - (*GameServerDetailed_Diff)(nil), // 20: v1.GameServerDetailed.Diff + (*RegisterMatchmakingServerRequest)(nil), // 19: v1.RegisterMatchmakingServerRequest + (*RegisterMatchmakingServerResponse)(nil), // 20: v1.RegisterMatchmakingServerResponse + (*Server)(nil), // 21: v1.Server + (*GameServerDetailed_Diff)(nil), // 22: v1.GameServerDetailed.Diff } var file_registry_proto_depIdxs = []int32{ - 19, // 0: v1.AvailableGameServersForMapAndRealmResponse.gameServers:type_name -> v1.Server - 19, // 1: v1.RandomGameServerForRealmResponse.gameServer:type_name -> v1.Server - 20, // 2: v1.GameServerDetailed.diff:type_name -> v1.GameServerDetailed.Diff + 21, // 0: v1.AvailableGameServersForMapAndRealmResponse.gameServers:type_name -> v1.Server + 21, // 1: v1.RandomGameServerForRealmResponse.gameServer:type_name -> v1.Server + 22, // 2: v1.GameServerDetailed.diff:type_name -> v1.GameServerDetailed.Diff 7, // 3: v1.ListGameServersResponse.gameServers:type_name -> v1.GameServerDetailed - 19, // 4: v1.GatewaysForRealmsResponse.gateways:type_name -> v1.Server + 21, // 4: v1.GatewaysForRealmsResponse.gateways:type_name -> v1.Server 17, // 5: v1.ListGatewaysForRealmResponse.gateways:type_name -> v1.GatewayServerDetailed 0, // 6: v1.ServersRegistryService.RegisterGameServer:input_type -> v1.RegisterGameServerRequest 2, // 7: v1.ServersRegistryService.AvailableGameServersForMapAndRealm:input_type -> v1.AvailableGameServersForMapAndRealmRequest @@ -1700,17 +1679,19 @@ var file_registry_proto_depIdxs = []int32{ 12, // 12: v1.ServersRegistryService.RegisterGateway:input_type -> v1.RegisterGatewayRequest 14, // 13: v1.ServersRegistryService.GatewaysForRealms:input_type -> v1.GatewaysForRealmsRequest 16, // 14: v1.ServersRegistryService.ListGatewaysForRealm:input_type -> v1.ListGatewaysForRealmRequest - 1, // 15: v1.ServersRegistryService.RegisterGameServer:output_type -> v1.RegisterGameServerResponse - 3, // 16: v1.ServersRegistryService.AvailableGameServersForMapAndRealm:output_type -> v1.AvailableGameServersForMapAndRealmResponse - 5, // 17: v1.ServersRegistryService.RandomGameServerForRealm:output_type -> v1.RandomGameServerForRealmResponse - 8, // 18: v1.ServersRegistryService.ListGameServersForRealm:output_type -> v1.ListGameServersResponse - 8, // 19: v1.ServersRegistryService.ListAllGameServers:output_type -> v1.ListGameServersResponse - 11, // 20: v1.ServersRegistryService.GameServerMapsLoaded:output_type -> v1.GameServerMapsLoadedResponse - 13, // 21: v1.ServersRegistryService.RegisterGateway:output_type -> v1.RegisterGatewayResponse - 15, // 22: v1.ServersRegistryService.GatewaysForRealms:output_type -> v1.GatewaysForRealmsResponse - 18, // 23: v1.ServersRegistryService.ListGatewaysForRealm:output_type -> v1.ListGatewaysForRealmResponse - 15, // [15:24] is the sub-list for method output_type - 6, // [6:15] is the sub-list for method input_type + 19, // 15: v1.ServersRegistryService.RegisterMatchmakingServer:input_type -> v1.RegisterMatchmakingServerRequest + 1, // 16: v1.ServersRegistryService.RegisterGameServer:output_type -> v1.RegisterGameServerResponse + 3, // 17: v1.ServersRegistryService.AvailableGameServersForMapAndRealm:output_type -> v1.AvailableGameServersForMapAndRealmResponse + 5, // 18: v1.ServersRegistryService.RandomGameServerForRealm:output_type -> v1.RandomGameServerForRealmResponse + 8, // 19: v1.ServersRegistryService.ListGameServersForRealm:output_type -> v1.ListGameServersResponse + 8, // 20: v1.ServersRegistryService.ListAllGameServers:output_type -> v1.ListGameServersResponse + 11, // 21: v1.ServersRegistryService.GameServerMapsLoaded:output_type -> v1.GameServerMapsLoadedResponse + 13, // 22: v1.ServersRegistryService.RegisterGateway:output_type -> v1.RegisterGatewayResponse + 15, // 23: v1.ServersRegistryService.GatewaysForRealms:output_type -> v1.GatewaysForRealmsResponse + 18, // 24: v1.ServersRegistryService.ListGatewaysForRealm:output_type -> v1.ListGatewaysForRealmResponse + 20, // 25: v1.ServersRegistryService.RegisterMatchmakingServer:output_type -> v1.RegisterMatchmakingServerResponse + 16, // [16:26] is the sub-list for method output_type + 6, // [6:16] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name 6, // [6:6] is the sub-list for extension extendee 0, // [0:6] is the sub-list for field type_name @@ -1721,267 +1702,13 @@ func file_registry_proto_init() { if File_registry_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_registry_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGameServerRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGameServerResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableGameServersForMapAndRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AvailableGameServersForMapAndRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RandomGameServerForRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RandomGameServerForRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGameServersForRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerDetailed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGameServersResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAllGameServersRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerMapsLoadedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerMapsLoadedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGatewayRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterGatewayResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatewaysForRealmsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatewaysForRealmsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGatewaysForRealmRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatewayServerDetailed); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListGatewaysForRealmResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Server); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_registry_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GameServerDetailed_Diff); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_registry_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_registry_proto_rawDesc), len(file_registry_proto_rawDesc)), NumEnums: 0, - NumMessages: 21, + NumMessages: 23, NumExtensions: 0, NumServices: 1, }, @@ -1990,7 +1717,6 @@ func file_registry_proto_init() { MessageInfos: file_registry_proto_msgTypes, }.Build() File_registry_proto = out.File - file_registry_proto_rawDesc = nil file_registry_proto_goTypes = nil file_registry_proto_depIdxs = nil } diff --git a/gen/servers-registry/pb/registry_grpc.pb.go b/gen/servers-registry/pb/registry_grpc.pb.go index 75ce5f9..1bd9a51 100644 --- a/gen/servers-registry/pb/registry_grpc.pb.go +++ b/gen/servers-registry/pb/registry_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc-gen-go-grpc v1.6.2 +// - protoc v3.21.12 // source: registry.proto package pb @@ -15,8 +15,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 const ( ServersRegistryService_RegisterGameServer_FullMethodName = "/v1.ServersRegistryService/RegisterGameServer" @@ -28,6 +28,7 @@ const ( ServersRegistryService_RegisterGateway_FullMethodName = "/v1.ServersRegistryService/RegisterGateway" ServersRegistryService_GatewaysForRealms_FullMethodName = "/v1.ServersRegistryService/GatewaysForRealms" ServersRegistryService_ListGatewaysForRealm_FullMethodName = "/v1.ServersRegistryService/ListGatewaysForRealm" + ServersRegistryService_RegisterMatchmakingServer_FullMethodName = "/v1.ServersRegistryService/RegisterMatchmakingServer" ) // ServersRegistryServiceClient is the client API for ServersRegistryService service. @@ -43,6 +44,7 @@ type ServersRegistryServiceClient interface { RegisterGateway(ctx context.Context, in *RegisterGatewayRequest, opts ...grpc.CallOption) (*RegisterGatewayResponse, error) GatewaysForRealms(ctx context.Context, in *GatewaysForRealmsRequest, opts ...grpc.CallOption) (*GatewaysForRealmsResponse, error) ListGatewaysForRealm(ctx context.Context, in *ListGatewaysForRealmRequest, opts ...grpc.CallOption) (*ListGatewaysForRealmResponse, error) + RegisterMatchmakingServer(ctx context.Context, in *RegisterMatchmakingServerRequest, opts ...grpc.CallOption) (*RegisterMatchmakingServerResponse, error) } type serversRegistryServiceClient struct { @@ -54,8 +56,9 @@ func NewServersRegistryServiceClient(cc grpc.ClientConnInterface) ServersRegistr } func (c *serversRegistryServiceClient) RegisterGameServer(ctx context.Context, in *RegisterGameServerRequest, opts ...grpc.CallOption) (*RegisterGameServerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RegisterGameServerResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGameServer_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGameServer_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -63,8 +66,9 @@ func (c *serversRegistryServiceClient) RegisterGameServer(ctx context.Context, i } func (c *serversRegistryServiceClient) AvailableGameServersForMapAndRealm(ctx context.Context, in *AvailableGameServersForMapAndRealmRequest, opts ...grpc.CallOption) (*AvailableGameServersForMapAndRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AvailableGameServersForMapAndRealmResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_AvailableGameServersForMapAndRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_AvailableGameServersForMapAndRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -72,8 +76,9 @@ func (c *serversRegistryServiceClient) AvailableGameServersForMapAndRealm(ctx co } func (c *serversRegistryServiceClient) RandomGameServerForRealm(ctx context.Context, in *RandomGameServerForRealmRequest, opts ...grpc.CallOption) (*RandomGameServerForRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RandomGameServerForRealmResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_RandomGameServerForRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_RandomGameServerForRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -81,8 +86,9 @@ func (c *serversRegistryServiceClient) RandomGameServerForRealm(ctx context.Cont } func (c *serversRegistryServiceClient) ListGameServersForRealm(ctx context.Context, in *ListGameServersForRealmRequest, opts ...grpc.CallOption) (*ListGameServersResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListGameServersResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_ListGameServersForRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_ListGameServersForRealm_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -90,8 +96,9 @@ func (c *serversRegistryServiceClient) ListGameServersForRealm(ctx context.Conte } func (c *serversRegistryServiceClient) ListAllGameServers(ctx context.Context, in *ListAllGameServersRequest, opts ...grpc.CallOption) (*ListGameServersResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListGameServersResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_ListAllGameServers_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_ListAllGameServers_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -99,8 +106,9 @@ func (c *serversRegistryServiceClient) ListAllGameServers(ctx context.Context, i } func (c *serversRegistryServiceClient) GameServerMapsLoaded(ctx context.Context, in *GameServerMapsLoadedRequest, opts ...grpc.CallOption) (*GameServerMapsLoadedResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GameServerMapsLoadedResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_GameServerMapsLoaded_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_GameServerMapsLoaded_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -108,8 +116,9 @@ func (c *serversRegistryServiceClient) GameServerMapsLoaded(ctx context.Context, } func (c *serversRegistryServiceClient) RegisterGateway(ctx context.Context, in *RegisterGatewayRequest, opts ...grpc.CallOption) (*RegisterGatewayResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(RegisterGatewayResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGateway_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_RegisterGateway_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -117,8 +126,9 @@ func (c *serversRegistryServiceClient) RegisterGateway(ctx context.Context, in * } func (c *serversRegistryServiceClient) GatewaysForRealms(ctx context.Context, in *GatewaysForRealmsRequest, opts ...grpc.CallOption) (*GatewaysForRealmsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(GatewaysForRealmsResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_GatewaysForRealms_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_GatewaysForRealms_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -126,8 +136,19 @@ func (c *serversRegistryServiceClient) GatewaysForRealms(ctx context.Context, in } func (c *serversRegistryServiceClient) ListGatewaysForRealm(ctx context.Context, in *ListGatewaysForRealmRequest, opts ...grpc.CallOption) (*ListGatewaysForRealmResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ListGatewaysForRealmResponse) - err := c.cc.Invoke(ctx, ServersRegistryService_ListGatewaysForRealm_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ServersRegistryService_ListGatewaysForRealm_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *serversRegistryServiceClient) RegisterMatchmakingServer(ctx context.Context, in *RegisterMatchmakingServerRequest, opts ...grpc.CallOption) (*RegisterMatchmakingServerResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(RegisterMatchmakingServerResponse) + err := c.cc.Invoke(ctx, ServersRegistryService_RegisterMatchmakingServer_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -136,7 +157,7 @@ func (c *serversRegistryServiceClient) ListGatewaysForRealm(ctx context.Context, // ServersRegistryServiceServer is the server API for ServersRegistryService service. // All implementations must embed UnimplementedServersRegistryServiceServer -// for forward compatibility +// for forward compatibility. type ServersRegistryServiceServer interface { RegisterGameServer(context.Context, *RegisterGameServerRequest) (*RegisterGameServerResponse, error) AvailableGameServersForMapAndRealm(context.Context, *AvailableGameServersForMapAndRealmRequest) (*AvailableGameServersForMapAndRealmResponse, error) @@ -147,42 +168,50 @@ type ServersRegistryServiceServer interface { RegisterGateway(context.Context, *RegisterGatewayRequest) (*RegisterGatewayResponse, error) GatewaysForRealms(context.Context, *GatewaysForRealmsRequest) (*GatewaysForRealmsResponse, error) ListGatewaysForRealm(context.Context, *ListGatewaysForRealmRequest) (*ListGatewaysForRealmResponse, error) + RegisterMatchmakingServer(context.Context, *RegisterMatchmakingServerRequest) (*RegisterMatchmakingServerResponse, error) mustEmbedUnimplementedServersRegistryServiceServer() } -// UnimplementedServersRegistryServiceServer must be embedded to have forward compatible implementations. -type UnimplementedServersRegistryServiceServer struct { -} +// UnimplementedServersRegistryServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedServersRegistryServiceServer struct{} func (UnimplementedServersRegistryServiceServer) RegisterGameServer(context.Context, *RegisterGameServerRequest) (*RegisterGameServerResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RegisterGameServer not implemented") + return nil, status.Error(codes.Unimplemented, "method RegisterGameServer not implemented") } func (UnimplementedServersRegistryServiceServer) AvailableGameServersForMapAndRealm(context.Context, *AvailableGameServersForMapAndRealmRequest) (*AvailableGameServersForMapAndRealmResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method AvailableGameServersForMapAndRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method AvailableGameServersForMapAndRealm not implemented") } func (UnimplementedServersRegistryServiceServer) RandomGameServerForRealm(context.Context, *RandomGameServerForRealmRequest) (*RandomGameServerForRealmResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RandomGameServerForRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method RandomGameServerForRealm not implemented") } func (UnimplementedServersRegistryServiceServer) ListGameServersForRealm(context.Context, *ListGameServersForRealmRequest) (*ListGameServersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListGameServersForRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method ListGameServersForRealm not implemented") } func (UnimplementedServersRegistryServiceServer) ListAllGameServers(context.Context, *ListAllGameServersRequest) (*ListGameServersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListAllGameServers not implemented") + return nil, status.Error(codes.Unimplemented, "method ListAllGameServers not implemented") } func (UnimplementedServersRegistryServiceServer) GameServerMapsLoaded(context.Context, *GameServerMapsLoadedRequest) (*GameServerMapsLoadedResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GameServerMapsLoaded not implemented") + return nil, status.Error(codes.Unimplemented, "method GameServerMapsLoaded not implemented") } func (UnimplementedServersRegistryServiceServer) RegisterGateway(context.Context, *RegisterGatewayRequest) (*RegisterGatewayResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RegisterGateway not implemented") + return nil, status.Error(codes.Unimplemented, "method RegisterGateway not implemented") } func (UnimplementedServersRegistryServiceServer) GatewaysForRealms(context.Context, *GatewaysForRealmsRequest) (*GatewaysForRealmsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GatewaysForRealms not implemented") + return nil, status.Error(codes.Unimplemented, "method GatewaysForRealms not implemented") } func (UnimplementedServersRegistryServiceServer) ListGatewaysForRealm(context.Context, *ListGatewaysForRealmRequest) (*ListGatewaysForRealmResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListGatewaysForRealm not implemented") + return nil, status.Error(codes.Unimplemented, "method ListGatewaysForRealm not implemented") +} +func (UnimplementedServersRegistryServiceServer) RegisterMatchmakingServer(context.Context, *RegisterMatchmakingServerRequest) (*RegisterMatchmakingServerResponse, error) { + return nil, status.Error(codes.Unimplemented, "method RegisterMatchmakingServer not implemented") } func (UnimplementedServersRegistryServiceServer) mustEmbedUnimplementedServersRegistryServiceServer() { } +func (UnimplementedServersRegistryServiceServer) testEmbeddedByValue() {} // UnsafeServersRegistryServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ServersRegistryServiceServer will @@ -192,6 +221,13 @@ type UnsafeServersRegistryServiceServer interface { } func RegisterServersRegistryServiceServer(s grpc.ServiceRegistrar, srv ServersRegistryServiceServer) { + // If the following call panics, it indicates UnimplementedServersRegistryServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ServersRegistryService_ServiceDesc, srv) } @@ -357,6 +393,24 @@ func _ServersRegistryService_ListGatewaysForRealm_Handler(srv interface{}, ctx c return interceptor(ctx, in, info, handler) } +func _ServersRegistryService_RegisterMatchmakingServer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterMatchmakingServerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ServersRegistryServiceServer).RegisterMatchmakingServer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ServersRegistryService_RegisterMatchmakingServer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ServersRegistryServiceServer).RegisterMatchmakingServer(ctx, req.(*RegisterMatchmakingServerRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ServersRegistryService_ServiceDesc is the grpc.ServiceDesc for ServersRegistryService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -400,6 +454,10 @@ var ServersRegistryService_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListGatewaysForRealm", Handler: _ServersRegistryService_ListGatewaysForRealm_Handler, }, + { + MethodName: "RegisterMatchmakingServer", + Handler: _ServersRegistryService_RegisterMatchmakingServer_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "registry.proto", diff --git a/gen/worldserver/pb/worldserver.pb.go b/gen/worldserver/pb/worldserver.pb.go index 0f845e8..e9e2d73 100644 --- a/gen/worldserver/pb/worldserver.pb.go +++ b/gen/worldserver/pb/worldserver.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.32.0 -// protoc v3.20.3 +// protoc v3.21.12 // source: worldserver.proto package pb @@ -102,6 +102,61 @@ func (BattlegroundType) EnumDescriptor() ([]byte, []int) { return file_worldserver_proto_rawDescGZIP(), []int{0} } +type TakePlayerItemByPosResponse_Status int32 + +const ( + TakePlayerItemByPosResponse_Success TakePlayerItemByPosResponse_Status = 0 + TakePlayerItemByPosResponse_PlayerNotFound TakePlayerItemByPosResponse_Status = 1 + TakePlayerItemByPosResponse_ItemNotFound TakePlayerItemByPosResponse_Status = 2 + TakePlayerItemByPosResponse_ItemNotTradable TakePlayerItemByPosResponse_Status = 3 + TakePlayerItemByPosResponse_Failed TakePlayerItemByPosResponse_Status = 4 +) + +// Enum value maps for TakePlayerItemByPosResponse_Status. +var ( + TakePlayerItemByPosResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "PlayerNotFound", + 2: "ItemNotFound", + 3: "ItemNotTradable", + 4: "Failed", + } + TakePlayerItemByPosResponse_Status_value = map[string]int32{ + "Success": 0, + "PlayerNotFound": 1, + "ItemNotFound": 2, + "ItemNotTradable": 3, + "Failed": 4, + } +) + +func (x TakePlayerItemByPosResponse_Status) Enum() *TakePlayerItemByPosResponse_Status { + p := new(TakePlayerItemByPosResponse_Status) + *p = x + return p +} + +func (x TakePlayerItemByPosResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TakePlayerItemByPosResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[1].Descriptor() +} + +func (TakePlayerItemByPosResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[1] +} + +func (x TakePlayerItemByPosResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TakePlayerItemByPosResponse_Status.Descriptor instead. +func (TakePlayerItemByPosResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{3, 0} +} + type AddExistingItemToPlayerResponse_Status int32 const ( @@ -132,11 +187,11 @@ func (x AddExistingItemToPlayerResponse_Status) String() string { } func (AddExistingItemToPlayerResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_worldserver_proto_enumTypes[1].Descriptor() + return file_worldserver_proto_enumTypes[2].Descriptor() } func (AddExistingItemToPlayerResponse_Status) Type() protoreflect.EnumType { - return &file_worldserver_proto_enumTypes[1] + return &file_worldserver_proto_enumTypes[2] } func (x AddExistingItemToPlayerResponse_Status) Number() protoreflect.EnumNumber { @@ -145,7 +200,7 @@ func (x AddExistingItemToPlayerResponse_Status) Number() protoreflect.EnumNumber // Deprecated: Use AddExistingItemToPlayerResponse_Status.Descriptor instead. func (AddExistingItemToPlayerResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{5, 0} + return file_worldserver_proto_rawDescGZIP(), []int{7, 0} } type CanPlayerJoinBattlegroundQueueResponse_Status int32 @@ -175,11 +230,11 @@ func (x CanPlayerJoinBattlegroundQueueResponse_Status) String() string { } func (CanPlayerJoinBattlegroundQueueResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_worldserver_proto_enumTypes[2].Descriptor() + return file_worldserver_proto_enumTypes[3].Descriptor() } func (CanPlayerJoinBattlegroundQueueResponse_Status) Type() protoreflect.EnumType { - return &file_worldserver_proto_enumTypes[2] + return &file_worldserver_proto_enumTypes[3] } func (x CanPlayerJoinBattlegroundQueueResponse_Status) Number() protoreflect.EnumNumber { @@ -188,7 +243,7 @@ func (x CanPlayerJoinBattlegroundQueueResponse_Status) Number() protoreflect.Enu // Deprecated: Use CanPlayerJoinBattlegroundQueueResponse_Status.Descriptor instead. func (CanPlayerJoinBattlegroundQueueResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{19, 0} + return file_worldserver_proto_rawDescGZIP(), []int{21, 0} } type CanPlayerTeleportToBattlegroundResponse_Status int32 @@ -218,11 +273,11 @@ func (x CanPlayerTeleportToBattlegroundResponse_Status) String() string { } func (CanPlayerTeleportToBattlegroundResponse_Status) Descriptor() protoreflect.EnumDescriptor { - return file_worldserver_proto_enumTypes[3].Descriptor() + return file_worldserver_proto_enumTypes[4].Descriptor() } func (CanPlayerTeleportToBattlegroundResponse_Status) Type() protoreflect.EnumType { - return &file_worldserver_proto_enumTypes[3] + return &file_worldserver_proto_enumTypes[4] } func (x CanPlayerTeleportToBattlegroundResponse_Status) Number() protoreflect.EnumNumber { @@ -231,7 +286,374 @@ func (x CanPlayerTeleportToBattlegroundResponse_Status) Number() protoreflect.En // Deprecated: Use CanPlayerTeleportToBattlegroundResponse_Status.Descriptor instead. func (CanPlayerTeleportToBattlegroundResponse_Status) EnumDescriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{21, 0} + return file_worldserver_proto_rawDescGZIP(), []int{23, 0} +} + +type GetLfgPlayerLockInfoResponse_Status int32 + +const ( + GetLfgPlayerLockInfoResponse_Success GetLfgPlayerLockInfoResponse_Status = 0 + GetLfgPlayerLockInfoResponse_PlayerNotFound GetLfgPlayerLockInfoResponse_Status = 1 + GetLfgPlayerLockInfoResponse_InternalError GetLfgPlayerLockInfoResponse_Status = 2 +) + +// Enum value maps for GetLfgPlayerLockInfoResponse_Status. +var ( + GetLfgPlayerLockInfoResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "PlayerNotFound", + 2: "InternalError", + } + GetLfgPlayerLockInfoResponse_Status_value = map[string]int32{ + "Success": 0, + "PlayerNotFound": 1, + "InternalError": 2, + } +) + +func (x GetLfgPlayerLockInfoResponse_Status) Enum() *GetLfgPlayerLockInfoResponse_Status { + p := new(GetLfgPlayerLockInfoResponse_Status) + *p = x + return p +} + +func (x GetLfgPlayerLockInfoResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetLfgPlayerLockInfoResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[5].Descriptor() +} + +func (GetLfgPlayerLockInfoResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[5] +} + +func (x GetLfgPlayerLockInfoResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetLfgPlayerLockInfoResponse_Status.Descriptor instead. +func (GetLfgPlayerLockInfoResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{26, 0} +} + +type GetLfgPlayerInfoResponse_Status int32 + +const ( + GetLfgPlayerInfoResponse_Success GetLfgPlayerInfoResponse_Status = 0 + GetLfgPlayerInfoResponse_NoHandler GetLfgPlayerInfoResponse_Status = 1 + GetLfgPlayerInfoResponse_PlayerNotFound GetLfgPlayerInfoResponse_Status = 2 + GetLfgPlayerInfoResponse_InternalError GetLfgPlayerInfoResponse_Status = 3 +) + +// Enum value maps for GetLfgPlayerInfoResponse_Status. +var ( + GetLfgPlayerInfoResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "PlayerNotFound", + 3: "InternalError", + } + GetLfgPlayerInfoResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "PlayerNotFound": 2, + "InternalError": 3, + } +) + +func (x GetLfgPlayerInfoResponse_Status) Enum() *GetLfgPlayerInfoResponse_Status { + p := new(GetLfgPlayerInfoResponse_Status) + *p = x + return p +} + +func (x GetLfgPlayerInfoResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetLfgPlayerInfoResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[6].Descriptor() +} + +func (GetLfgPlayerInfoResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[6] +} + +func (x GetLfgPlayerInfoResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetLfgPlayerInfoResponse_Status.Descriptor instead. +func (GetLfgPlayerInfoResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{30, 0} +} + +type GetLfgDungeonInfoResponse_Status int32 + +const ( + GetLfgDungeonInfoResponse_Success GetLfgDungeonInfoResponse_Status = 0 + GetLfgDungeonInfoResponse_NoHandler GetLfgDungeonInfoResponse_Status = 1 + GetLfgDungeonInfoResponse_DungeonNotFound GetLfgDungeonInfoResponse_Status = 2 + GetLfgDungeonInfoResponse_InternalError GetLfgDungeonInfoResponse_Status = 3 +) + +// Enum value maps for GetLfgDungeonInfoResponse_Status. +var ( + GetLfgDungeonInfoResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "DungeonNotFound", + 3: "InternalError", + } + GetLfgDungeonInfoResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "DungeonNotFound": 2, + "InternalError": 3, + } +) + +func (x GetLfgDungeonInfoResponse_Status) Enum() *GetLfgDungeonInfoResponse_Status { + p := new(GetLfgDungeonInfoResponse_Status) + *p = x + return p +} + +func (x GetLfgDungeonInfoResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetLfgDungeonInfoResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[7].Descriptor() +} + +func (GetLfgDungeonInfoResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[7] +} + +func (x GetLfgDungeonInfoResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetLfgDungeonInfoResponse_Status.Descriptor instead. +func (GetLfgDungeonInfoResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{32, 0} +} + +type TeleportLfgPlayerResponse_Status int32 + +const ( + TeleportLfgPlayerResponse_Success TeleportLfgPlayerResponse_Status = 0 + TeleportLfgPlayerResponse_NoHandler TeleportLfgPlayerResponse_Status = 1 + TeleportLfgPlayerResponse_PlayerNotFound TeleportLfgPlayerResponse_Status = 2 + TeleportLfgPlayerResponse_InternalError TeleportLfgPlayerResponse_Status = 3 +) + +// Enum value maps for TeleportLfgPlayerResponse_Status. +var ( + TeleportLfgPlayerResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "PlayerNotFound", + 3: "InternalError", + } + TeleportLfgPlayerResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "PlayerNotFound": 2, + "InternalError": 3, + } +) + +func (x TeleportLfgPlayerResponse_Status) Enum() *TeleportLfgPlayerResponse_Status { + p := new(TeleportLfgPlayerResponse_Status) + *p = x + return p +} + +func (x TeleportLfgPlayerResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TeleportLfgPlayerResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[8].Descriptor() +} + +func (TeleportLfgPlayerResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[8] +} + +func (x TeleportLfgPlayerResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TeleportLfgPlayerResponse_Status.Descriptor instead. +func (TeleportLfgPlayerResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{34, 0} +} + +type SetLfgBootVoteResponse_Status int32 + +const ( + SetLfgBootVoteResponse_Success SetLfgBootVoteResponse_Status = 0 + SetLfgBootVoteResponse_NoHandler SetLfgBootVoteResponse_Status = 1 + SetLfgBootVoteResponse_PlayerNotFound SetLfgBootVoteResponse_Status = 2 + SetLfgBootVoteResponse_InternalError SetLfgBootVoteResponse_Status = 3 +) + +// Enum value maps for SetLfgBootVoteResponse_Status. +var ( + SetLfgBootVoteResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "PlayerNotFound", + 3: "InternalError", + } + SetLfgBootVoteResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "PlayerNotFound": 2, + "InternalError": 3, + } +) + +func (x SetLfgBootVoteResponse_Status) Enum() *SetLfgBootVoteResponse_Status { + p := new(SetLfgBootVoteResponse_Status) + *p = x + return p +} + +func (x SetLfgBootVoteResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SetLfgBootVoteResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[9].Descriptor() +} + +func (SetLfgBootVoteResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[9] +} + +func (x SetLfgBootVoteResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SetLfgBootVoteResponse_Status.Descriptor instead. +func (SetLfgBootVoteResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{36, 0} +} + +type MaterializeLfgProposalResponse_Status int32 + +const ( + MaterializeLfgProposalResponse_Success MaterializeLfgProposalResponse_Status = 0 + MaterializeLfgProposalResponse_NoHandler MaterializeLfgProposalResponse_Status = 1 + MaterializeLfgProposalResponse_DungeonNotFound MaterializeLfgProposalResponse_Status = 2 + MaterializeLfgProposalResponse_NoLocalPlayer MaterializeLfgProposalResponse_Status = 3 + MaterializeLfgProposalResponse_InternalError MaterializeLfgProposalResponse_Status = 4 +) + +// Enum value maps for MaterializeLfgProposalResponse_Status. +var ( + MaterializeLfgProposalResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NoHandler", + 2: "DungeonNotFound", + 3: "NoLocalPlayer", + 4: "InternalError", + } + MaterializeLfgProposalResponse_Status_value = map[string]int32{ + "Success": 0, + "NoHandler": 1, + "DungeonNotFound": 2, + "NoLocalPlayer": 3, + "InternalError": 4, + } +) + +func (x MaterializeLfgProposalResponse_Status) Enum() *MaterializeLfgProposalResponse_Status { + p := new(MaterializeLfgProposalResponse_Status) + *p = x + return p +} + +func (x MaterializeLfgProposalResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MaterializeLfgProposalResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[10].Descriptor() +} + +func (MaterializeLfgProposalResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[10] +} + +func (x MaterializeLfgProposalResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MaterializeLfgProposalResponse_Status.Descriptor instead. +func (MaterializeLfgProposalResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{38, 0} +} + +type CreateGuildResponse_Status int32 + +const ( + CreateGuildResponse_Success CreateGuildResponse_Status = 0 + CreateGuildResponse_NameExists CreateGuildResponse_Status = 1 + CreateGuildResponse_InvalidName CreateGuildResponse_Status = 2 + CreateGuildResponse_LeaderNotFound CreateGuildResponse_Status = 3 + CreateGuildResponse_InternalError CreateGuildResponse_Status = 4 +) + +// Enum value maps for CreateGuildResponse_Status. +var ( + CreateGuildResponse_Status_name = map[int32]string{ + 0: "Success", + 1: "NameExists", + 2: "InvalidName", + 3: "LeaderNotFound", + 4: "InternalError", + } + CreateGuildResponse_Status_value = map[string]int32{ + "Success": 0, + "NameExists": 1, + "InvalidName": 2, + "LeaderNotFound": 3, + "InternalError": 4, + } +) + +func (x CreateGuildResponse_Status) Enum() *CreateGuildResponse_Status { + p := new(CreateGuildResponse_Status) + *p = x + return p +} + +func (x CreateGuildResponse_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CreateGuildResponse_Status) Descriptor() protoreflect.EnumDescriptor { + return file_worldserver_proto_enumTypes[11].Descriptor() +} + +func (CreateGuildResponse_Status) Type() protoreflect.EnumType { + return &file_worldserver_proto_enumTypes[11] +} + +func (x CreateGuildResponse_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CreateGuildResponse_Status.Descriptor instead. +func (CreateGuildResponse_Status) EnumDescriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{40, 0} } // GetPlayerItemsByGuids @@ -353,20 +775,22 @@ func (x *GetPlayerItemsByGuidsResponse) GetItems() []*GetPlayerItemsByGuidsRespo return nil } -// RemoveItemsWithGuidsFromPlayer -type RemoveItemsWithGuidsFromPlayerRequest struct { +// TakePlayerItemByPos +type TakePlayerItemByPosRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` - Guids []uint64 `protobuf:"varint,3,rep,packed,name=guids,proto3" json:"guids,omitempty"` - AssignToPlayerGuid uint64 `protobuf:"varint,4,opt,name=assignToPlayerGuid,proto3" json:"assignToPlayerGuid,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` + BagSlot uint32 `protobuf:"varint,3,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,4,opt,name=slot,proto3" json:"slot,omitempty"` + Count uint32 `protobuf:"varint,5,opt,name=count,proto3" json:"count,omitempty"` + AssignToPlayerGuid uint64 `protobuf:"varint,6,opt,name=assignToPlayerGuid,proto3" json:"assignToPlayerGuid,omitempty"` } -func (x *RemoveItemsWithGuidsFromPlayerRequest) Reset() { - *x = RemoveItemsWithGuidsFromPlayerRequest{} +func (x *TakePlayerItemByPosRequest) Reset() { + *x = TakePlayerItemByPosRequest{} if protoimpl.UnsafeEnabled { mi := &file_worldserver_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -374,13 +798,13 @@ func (x *RemoveItemsWithGuidsFromPlayerRequest) Reset() { } } -func (x *RemoveItemsWithGuidsFromPlayerRequest) String() string { +func (x *TakePlayerItemByPosRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*RemoveItemsWithGuidsFromPlayerRequest) ProtoMessage() {} +func (*TakePlayerItemByPosRequest) ProtoMessage() {} -func (x *RemoveItemsWithGuidsFromPlayerRequest) ProtoReflect() protoreflect.Message { +func (x *TakePlayerItemByPosRequest) ProtoReflect() protoreflect.Message { mi := &file_worldserver_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -392,50 +816,65 @@ func (x *RemoveItemsWithGuidsFromPlayerRequest) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use RemoveItemsWithGuidsFromPlayerRequest.ProtoReflect.Descriptor instead. -func (*RemoveItemsWithGuidsFromPlayerRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use TakePlayerItemByPosRequest.ProtoReflect.Descriptor instead. +func (*TakePlayerItemByPosRequest) Descriptor() ([]byte, []int) { return file_worldserver_proto_rawDescGZIP(), []int{2} } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetApi() string { +func (x *TakePlayerItemByPosRequest) GetApi() string { if x != nil { return x.Api } return "" } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetPlayerGuid() uint64 { +func (x *TakePlayerItemByPosRequest) GetPlayerGuid() uint64 { if x != nil { return x.PlayerGuid } return 0 } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetGuids() []uint64 { +func (x *TakePlayerItemByPosRequest) GetBagSlot() uint32 { if x != nil { - return x.Guids + return x.BagSlot } - return nil + return 0 } -func (x *RemoveItemsWithGuidsFromPlayerRequest) GetAssignToPlayerGuid() uint64 { +func (x *TakePlayerItemByPosRequest) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *TakePlayerItemByPosRequest) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *TakePlayerItemByPosRequest) GetAssignToPlayerGuid() uint64 { if x != nil { return x.AssignToPlayerGuid } return 0 } -type RemoveItemsWithGuidsFromPlayerResponse struct { +type TakePlayerItemByPosResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - UpdatedItemsGuids []uint64 `protobuf:"varint,2,rep,packed,name=updatedItemsGuids,proto3" json:"updatedItemsGuids,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status TakePlayerItemByPosResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.TakePlayerItemByPosResponse_Status" json:"status,omitempty"` + Item *TakePlayerItemByPosResponse_Item `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` } -func (x *RemoveItemsWithGuidsFromPlayerResponse) Reset() { - *x = RemoveItemsWithGuidsFromPlayerResponse{} +func (x *TakePlayerItemByPosResponse) Reset() { + *x = TakePlayerItemByPosResponse{} if protoimpl.UnsafeEnabled { mi := &file_worldserver_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -443,6 +882,140 @@ func (x *RemoveItemsWithGuidsFromPlayerResponse) Reset() { } } +func (x *TakePlayerItemByPosResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TakePlayerItemByPosResponse) ProtoMessage() {} + +func (x *TakePlayerItemByPosResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[3] + 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 TakePlayerItemByPosResponse.ProtoReflect.Descriptor instead. +func (*TakePlayerItemByPosResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{3} +} + +func (x *TakePlayerItemByPosResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *TakePlayerItemByPosResponse) GetStatus() TakePlayerItemByPosResponse_Status { + if x != nil { + return x.Status + } + return TakePlayerItemByPosResponse_Success +} + +func (x *TakePlayerItemByPosResponse) GetItem() *TakePlayerItemByPosResponse_Item { + if x != nil { + return x.Item + } + return nil +} + +// RemoveItemsWithGuidsFromPlayer +type RemoveItemsWithGuidsFromPlayerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` + Guids []uint64 `protobuf:"varint,3,rep,packed,name=guids,proto3" json:"guids,omitempty"` + AssignToPlayerGuid uint64 `protobuf:"varint,4,opt,name=assignToPlayerGuid,proto3" json:"assignToPlayerGuid,omitempty"` +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) Reset() { + *x = RemoveItemsWithGuidsFromPlayerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveItemsWithGuidsFromPlayerRequest) ProtoMessage() {} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[4] + 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 RemoveItemsWithGuidsFromPlayerRequest.ProtoReflect.Descriptor instead. +func (*RemoveItemsWithGuidsFromPlayerRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{4} +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetPlayerGuid() uint64 { + if x != nil { + return x.PlayerGuid + } + return 0 +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetGuids() []uint64 { + if x != nil { + return x.Guids + } + return nil +} + +func (x *RemoveItemsWithGuidsFromPlayerRequest) GetAssignToPlayerGuid() uint64 { + if x != nil { + return x.AssignToPlayerGuid + } + return 0 +} + +type RemoveItemsWithGuidsFromPlayerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + UpdatedItemsGuids []uint64 `protobuf:"varint,2,rep,packed,name=updatedItemsGuids,proto3" json:"updatedItemsGuids,omitempty"` +} + +func (x *RemoveItemsWithGuidsFromPlayerResponse) Reset() { + *x = RemoveItemsWithGuidsFromPlayerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + func (x *RemoveItemsWithGuidsFromPlayerResponse) String() string { return protoimpl.X.MessageStringOf(x) } @@ -450,7 +1023,7 @@ func (x *RemoveItemsWithGuidsFromPlayerResponse) String() string { func (*RemoveItemsWithGuidsFromPlayerResponse) ProtoMessage() {} func (x *RemoveItemsWithGuidsFromPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[3] + mi := &file_worldserver_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -463,7 +1036,7 @@ func (x *RemoveItemsWithGuidsFromPlayerResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use RemoveItemsWithGuidsFromPlayerResponse.ProtoReflect.Descriptor instead. func (*RemoveItemsWithGuidsFromPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{3} + return file_worldserver_proto_rawDescGZIP(), []int{5} } func (x *RemoveItemsWithGuidsFromPlayerResponse) GetApi() string { @@ -489,12 +1062,15 @@ type AddExistingItemToPlayerRequest struct { Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` PlayerGuid uint64 `protobuf:"varint,2,opt,name=playerGuid,proto3" json:"playerGuid,omitempty"` Item *AddExistingItemToPlayerRequest_Item `protobuf:"bytes,3,opt,name=item,proto3" json:"item,omitempty"` + StoreAtPos bool `protobuf:"varint,4,opt,name=storeAtPos,proto3" json:"storeAtPos,omitempty"` + BagSlot uint32 `protobuf:"varint,5,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,6,opt,name=slot,proto3" json:"slot,omitempty"` } func (x *AddExistingItemToPlayerRequest) Reset() { *x = AddExistingItemToPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[4] + mi := &file_worldserver_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -507,7 +1083,7 @@ func (x *AddExistingItemToPlayerRequest) String() string { func (*AddExistingItemToPlayerRequest) ProtoMessage() {} func (x *AddExistingItemToPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[4] + mi := &file_worldserver_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -520,7 +1096,7 @@ func (x *AddExistingItemToPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddExistingItemToPlayerRequest.ProtoReflect.Descriptor instead. func (*AddExistingItemToPlayerRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{4} + return file_worldserver_proto_rawDescGZIP(), []int{6} } func (x *AddExistingItemToPlayerRequest) GetApi() string { @@ -544,6 +1120,27 @@ func (x *AddExistingItemToPlayerRequest) GetItem() *AddExistingItemToPlayerReque return nil } +func (x *AddExistingItemToPlayerRequest) GetStoreAtPos() bool { + if x != nil { + return x.StoreAtPos + } + return false +} + +func (x *AddExistingItemToPlayerRequest) GetBagSlot() uint32 { + if x != nil { + return x.BagSlot + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + type AddExistingItemToPlayerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -556,7 +1153,7 @@ type AddExistingItemToPlayerResponse struct { func (x *AddExistingItemToPlayerResponse) Reset() { *x = AddExistingItemToPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[5] + mi := &file_worldserver_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -569,7 +1166,7 @@ func (x *AddExistingItemToPlayerResponse) String() string { func (*AddExistingItemToPlayerResponse) ProtoMessage() {} func (x *AddExistingItemToPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[5] + mi := &file_worldserver_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -582,7 +1179,7 @@ func (x *AddExistingItemToPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddExistingItemToPlayerResponse.ProtoReflect.Descriptor instead. func (*AddExistingItemToPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{5} + return file_worldserver_proto_rawDescGZIP(), []int{7} } func (x *AddExistingItemToPlayerResponse) GetApi() string { @@ -612,7 +1209,7 @@ type GetMoneyForPlayerRequest struct { func (x *GetMoneyForPlayerRequest) Reset() { *x = GetMoneyForPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[6] + mi := &file_worldserver_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -625,7 +1222,7 @@ func (x *GetMoneyForPlayerRequest) String() string { func (*GetMoneyForPlayerRequest) ProtoMessage() {} func (x *GetMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[6] + mi := &file_worldserver_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -638,7 +1235,7 @@ func (x *GetMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMoneyForPlayerRequest.ProtoReflect.Descriptor instead. func (*GetMoneyForPlayerRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{6} + return file_worldserver_proto_rawDescGZIP(), []int{8} } func (x *GetMoneyForPlayerRequest) GetApi() string { @@ -667,7 +1264,7 @@ type GetMoneyForPlayerResponse struct { func (x *GetMoneyForPlayerResponse) Reset() { *x = GetMoneyForPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[7] + mi := &file_worldserver_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -680,7 +1277,7 @@ func (x *GetMoneyForPlayerResponse) String() string { func (*GetMoneyForPlayerResponse) ProtoMessage() {} func (x *GetMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[7] + mi := &file_worldserver_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -693,7 +1290,7 @@ func (x *GetMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMoneyForPlayerResponse.ProtoReflect.Descriptor instead. func (*GetMoneyForPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{7} + return file_worldserver_proto_rawDescGZIP(), []int{9} } func (x *GetMoneyForPlayerResponse) GetApi() string { @@ -724,7 +1321,7 @@ type ModifyMoneyForPlayerRequest struct { func (x *ModifyMoneyForPlayerRequest) Reset() { *x = ModifyMoneyForPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[8] + mi := &file_worldserver_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -737,7 +1334,7 @@ func (x *ModifyMoneyForPlayerRequest) String() string { func (*ModifyMoneyForPlayerRequest) ProtoMessage() {} func (x *ModifyMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[8] + mi := &file_worldserver_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -750,7 +1347,7 @@ func (x *ModifyMoneyForPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ModifyMoneyForPlayerRequest.ProtoReflect.Descriptor instead. func (*ModifyMoneyForPlayerRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{8} + return file_worldserver_proto_rawDescGZIP(), []int{10} } func (x *ModifyMoneyForPlayerRequest) GetApi() string { @@ -786,7 +1383,7 @@ type ModifyMoneyForPlayerResponse struct { func (x *ModifyMoneyForPlayerResponse) Reset() { *x = ModifyMoneyForPlayerResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[9] + mi := &file_worldserver_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -799,7 +1396,7 @@ func (x *ModifyMoneyForPlayerResponse) String() string { func (*ModifyMoneyForPlayerResponse) ProtoMessage() {} func (x *ModifyMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[9] + mi := &file_worldserver_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -812,7 +1409,7 @@ func (x *ModifyMoneyForPlayerResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ModifyMoneyForPlayerResponse.ProtoReflect.Descriptor instead. func (*ModifyMoneyForPlayerResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{9} + return file_worldserver_proto_rawDescGZIP(), []int{11} } func (x *ModifyMoneyForPlayerResponse) GetApi() string { @@ -844,7 +1441,7 @@ type CanPlayerInteractWithNPCRequest struct { func (x *CanPlayerInteractWithNPCRequest) Reset() { *x = CanPlayerInteractWithNPCRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[10] + mi := &file_worldserver_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -857,7 +1454,7 @@ func (x *CanPlayerInteractWithNPCRequest) String() string { func (*CanPlayerInteractWithNPCRequest) ProtoMessage() {} func (x *CanPlayerInteractWithNPCRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[10] + mi := &file_worldserver_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -870,7 +1467,7 @@ func (x *CanPlayerInteractWithNPCRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CanPlayerInteractWithNPCRequest.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithNPCRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{10} + return file_worldserver_proto_rawDescGZIP(), []int{12} } func (x *CanPlayerInteractWithNPCRequest) GetApi() string { @@ -913,7 +1510,7 @@ type CanPlayerInteractWithNPCResponse struct { func (x *CanPlayerInteractWithNPCResponse) Reset() { *x = CanPlayerInteractWithNPCResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[11] + mi := &file_worldserver_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -926,7 +1523,7 @@ func (x *CanPlayerInteractWithNPCResponse) String() string { func (*CanPlayerInteractWithNPCResponse) ProtoMessage() {} func (x *CanPlayerInteractWithNPCResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[11] + mi := &file_worldserver_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -939,7 +1536,7 @@ func (x *CanPlayerInteractWithNPCResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CanPlayerInteractWithNPCResponse.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithNPCResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{11} + return file_worldserver_proto_rawDescGZIP(), []int{13} } func (x *CanPlayerInteractWithNPCResponse) GetApi() string { @@ -971,7 +1568,7 @@ type CanPlayerInteractWithGameObjectRequest struct { func (x *CanPlayerInteractWithGameObjectRequest) Reset() { *x = CanPlayerInteractWithGameObjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[12] + mi := &file_worldserver_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -984,7 +1581,7 @@ func (x *CanPlayerInteractWithGameObjectRequest) String() string { func (*CanPlayerInteractWithGameObjectRequest) ProtoMessage() {} func (x *CanPlayerInteractWithGameObjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[12] + mi := &file_worldserver_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -997,7 +1594,7 @@ func (x *CanPlayerInteractWithGameObjectRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use CanPlayerInteractWithGameObjectRequest.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithGameObjectRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{12} + return file_worldserver_proto_rawDescGZIP(), []int{14} } func (x *CanPlayerInteractWithGameObjectRequest) GetApi() string { @@ -1040,7 +1637,7 @@ type CanPlayerInteractWithGameObjectResponse struct { func (x *CanPlayerInteractWithGameObjectResponse) Reset() { *x = CanPlayerInteractWithGameObjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[13] + mi := &file_worldserver_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1053,7 +1650,7 @@ func (x *CanPlayerInteractWithGameObjectResponse) String() string { func (*CanPlayerInteractWithGameObjectResponse) ProtoMessage() {} func (x *CanPlayerInteractWithGameObjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[13] + mi := &file_worldserver_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1066,7 +1663,7 @@ func (x *CanPlayerInteractWithGameObjectResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CanPlayerInteractWithGameObjectResponse.ProtoReflect.Descriptor instead. func (*CanPlayerInteractWithGameObjectResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{13} + return file_worldserver_proto_rawDescGZIP(), []int{15} } func (x *CanPlayerInteractWithGameObjectResponse) GetApi() string { @@ -1089,20 +1686,24 @@ type StartBattlegroundRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` - BattlegroundTypeID BattlegroundType `protobuf:"varint,2,opt,name=battlegroundTypeID,proto3,enum=v1.BattlegroundType" json:"battlegroundTypeID,omitempty"` - ArenaType uint32 `protobuf:"varint,3,opt,name=arenaType,proto3" json:"arenaType,omitempty"` // Arenas not supported yet. - IsRated bool `protobuf:"varint,4,opt,name=isRated,proto3" json:"isRated,omitempty"` // Arenas not supported yet. - MapID uint32 `protobuf:"varint,5,opt,name=mapID,proto3" json:"mapID,omitempty"` - BracketLvl uint32 `protobuf:"varint,6,opt,name=bracketLvl,proto3" json:"bracketLvl,omitempty"` - PlayersToAddAlliance []uint64 `protobuf:"varint,7,rep,packed,name=playersToAddAlliance,proto3" json:"playersToAddAlliance,omitempty"` - PlayersToAddHorde []uint64 `protobuf:"varint,8,rep,packed,name=playersToAddHorde,proto3" json:"playersToAddHorde,omitempty"` + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + BattlegroundTypeID BattlegroundType `protobuf:"varint,2,opt,name=battlegroundTypeID,proto3,enum=v1.BattlegroundType" json:"battlegroundTypeID,omitempty"` + ArenaType uint32 `protobuf:"varint,3,opt,name=arenaType,proto3" json:"arenaType,omitempty"` + IsRated bool `protobuf:"varint,4,opt,name=isRated,proto3" json:"isRated,omitempty"` + MapID uint32 `protobuf:"varint,5,opt,name=mapID,proto3" json:"mapID,omitempty"` + BracketLvl uint32 `protobuf:"varint,6,opt,name=bracketLvl,proto3" json:"bracketLvl,omitempty"` + PlayersToAddAlliance []uint64 `protobuf:"varint,7,rep,packed,name=playersToAddAlliance,proto3" json:"playersToAddAlliance,omitempty"` + PlayersToAddHorde []uint64 `protobuf:"varint,8,rep,packed,name=playersToAddHorde,proto3" json:"playersToAddHorde,omitempty"` + AllianceArenaTeamID uint32 `protobuf:"varint,9,opt,name=allianceArenaTeamID,proto3" json:"allianceArenaTeamID,omitempty"` + HordeArenaTeamID uint32 `protobuf:"varint,10,opt,name=hordeArenaTeamID,proto3" json:"hordeArenaTeamID,omitempty"` + AllianceArenaMatchmakerRating uint32 `protobuf:"varint,11,opt,name=allianceArenaMatchmakerRating,proto3" json:"allianceArenaMatchmakerRating,omitempty"` + HordeArenaMatchmakerRating uint32 `protobuf:"varint,12,opt,name=hordeArenaMatchmakerRating,proto3" json:"hordeArenaMatchmakerRating,omitempty"` } func (x *StartBattlegroundRequest) Reset() { *x = StartBattlegroundRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[14] + mi := &file_worldserver_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1115,7 +1716,7 @@ func (x *StartBattlegroundRequest) String() string { func (*StartBattlegroundRequest) ProtoMessage() {} func (x *StartBattlegroundRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[14] + mi := &file_worldserver_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1128,7 +1729,7 @@ func (x *StartBattlegroundRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartBattlegroundRequest.ProtoReflect.Descriptor instead. func (*StartBattlegroundRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{14} + return file_worldserver_proto_rawDescGZIP(), []int{16} } func (x *StartBattlegroundRequest) GetApi() string { @@ -1187,6 +1788,34 @@ func (x *StartBattlegroundRequest) GetPlayersToAddHorde() []uint64 { return nil } +func (x *StartBattlegroundRequest) GetAllianceArenaTeamID() uint32 { + if x != nil { + return x.AllianceArenaTeamID + } + return 0 +} + +func (x *StartBattlegroundRequest) GetHordeArenaTeamID() uint32 { + if x != nil { + return x.HordeArenaTeamID + } + return 0 +} + +func (x *StartBattlegroundRequest) GetAllianceArenaMatchmakerRating() uint32 { + if x != nil { + return x.AllianceArenaMatchmakerRating + } + return 0 +} + +func (x *StartBattlegroundRequest) GetHordeArenaMatchmakerRating() uint32 { + if x != nil { + return x.HordeArenaMatchmakerRating + } + return 0 +} + type StartBattlegroundResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1200,7 +1829,7 @@ type StartBattlegroundResponse struct { func (x *StartBattlegroundResponse) Reset() { *x = StartBattlegroundResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[15] + mi := &file_worldserver_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1213,7 +1842,7 @@ func (x *StartBattlegroundResponse) String() string { func (*StartBattlegroundResponse) ProtoMessage() {} func (x *StartBattlegroundResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[15] + mi := &file_worldserver_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1226,7 +1855,7 @@ func (x *StartBattlegroundResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use StartBattlegroundResponse.ProtoReflect.Descriptor instead. func (*StartBattlegroundResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{15} + return file_worldserver_proto_rawDescGZIP(), []int{17} } func (x *StartBattlegroundResponse) GetApi() string { @@ -1266,7 +1895,7 @@ type AddPlayersToBattlegroundRequest struct { func (x *AddPlayersToBattlegroundRequest) Reset() { *x = AddPlayersToBattlegroundRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[16] + mi := &file_worldserver_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1279,7 +1908,7 @@ func (x *AddPlayersToBattlegroundRequest) String() string { func (*AddPlayersToBattlegroundRequest) ProtoMessage() {} func (x *AddPlayersToBattlegroundRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[16] + mi := &file_worldserver_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1292,7 +1921,7 @@ func (x *AddPlayersToBattlegroundRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPlayersToBattlegroundRequest.ProtoReflect.Descriptor instead. func (*AddPlayersToBattlegroundRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{16} + return file_worldserver_proto_rawDescGZIP(), []int{18} } func (x *AddPlayersToBattlegroundRequest) GetApi() string { @@ -1341,7 +1970,7 @@ type AddPlayersToBattlegroundResponse struct { func (x *AddPlayersToBattlegroundResponse) Reset() { *x = AddPlayersToBattlegroundResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[17] + mi := &file_worldserver_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1354,7 +1983,7 @@ func (x *AddPlayersToBattlegroundResponse) String() string { func (*AddPlayersToBattlegroundResponse) ProtoMessage() {} func (x *AddPlayersToBattlegroundResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[17] + mi := &file_worldserver_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1367,7 +1996,7 @@ func (x *AddPlayersToBattlegroundResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddPlayersToBattlegroundResponse.ProtoReflect.Descriptor instead. func (*AddPlayersToBattlegroundResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{17} + return file_worldserver_proto_rawDescGZIP(), []int{19} } func (x *AddPlayersToBattlegroundResponse) GetApi() string { @@ -1390,7 +2019,7 @@ type CanPlayerJoinBattlegroundQueueRequest struct { func (x *CanPlayerJoinBattlegroundQueueRequest) Reset() { *x = CanPlayerJoinBattlegroundQueueRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[18] + mi := &file_worldserver_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1403,7 +2032,7 @@ func (x *CanPlayerJoinBattlegroundQueueRequest) String() string { func (*CanPlayerJoinBattlegroundQueueRequest) ProtoMessage() {} func (x *CanPlayerJoinBattlegroundQueueRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[18] + mi := &file_worldserver_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1416,7 +2045,7 @@ func (x *CanPlayerJoinBattlegroundQueueRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use CanPlayerJoinBattlegroundQueueRequest.ProtoReflect.Descriptor instead. func (*CanPlayerJoinBattlegroundQueueRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{18} + return file_worldserver_proto_rawDescGZIP(), []int{20} } func (x *CanPlayerJoinBattlegroundQueueRequest) GetApi() string { @@ -1445,7 +2074,7 @@ type CanPlayerJoinBattlegroundQueueResponse struct { func (x *CanPlayerJoinBattlegroundQueueResponse) Reset() { *x = CanPlayerJoinBattlegroundQueueResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[19] + mi := &file_worldserver_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1458,7 +2087,7 @@ func (x *CanPlayerJoinBattlegroundQueueResponse) String() string { func (*CanPlayerJoinBattlegroundQueueResponse) ProtoMessage() {} func (x *CanPlayerJoinBattlegroundQueueResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[19] + mi := &file_worldserver_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1471,7 +2100,7 @@ func (x *CanPlayerJoinBattlegroundQueueResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use CanPlayerJoinBattlegroundQueueResponse.ProtoReflect.Descriptor instead. func (*CanPlayerJoinBattlegroundQueueResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{19} + return file_worldserver_proto_rawDescGZIP(), []int{21} } func (x *CanPlayerJoinBattlegroundQueueResponse) GetApi() string { @@ -1501,7 +2130,7 @@ type CanPlayerTeleportToBattlegroundRequest struct { func (x *CanPlayerTeleportToBattlegroundRequest) Reset() { *x = CanPlayerTeleportToBattlegroundRequest{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[20] + mi := &file_worldserver_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1514,7 +2143,7 @@ func (x *CanPlayerTeleportToBattlegroundRequest) String() string { func (*CanPlayerTeleportToBattlegroundRequest) ProtoMessage() {} func (x *CanPlayerTeleportToBattlegroundRequest) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[20] + mi := &file_worldserver_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1527,7 +2156,7 @@ func (x *CanPlayerTeleportToBattlegroundRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use CanPlayerTeleportToBattlegroundRequest.ProtoReflect.Descriptor instead. func (*CanPlayerTeleportToBattlegroundRequest) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{20} + return file_worldserver_proto_rawDescGZIP(), []int{22} } func (x *CanPlayerTeleportToBattlegroundRequest) GetApi() string { @@ -1556,7 +2185,7 @@ type CanPlayerTeleportToBattlegroundResponse struct { func (x *CanPlayerTeleportToBattlegroundResponse) Reset() { *x = CanPlayerTeleportToBattlegroundResponse{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[21] + mi := &file_worldserver_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1569,7 +2198,7 @@ func (x *CanPlayerTeleportToBattlegroundResponse) String() string { func (*CanPlayerTeleportToBattlegroundResponse) ProtoMessage() {} func (x *CanPlayerTeleportToBattlegroundResponse) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[21] + mi := &file_worldserver_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1582,7 +2211,7 @@ func (x *CanPlayerTeleportToBattlegroundResponse) ProtoReflect() protoreflect.Me // Deprecated: Use CanPlayerTeleportToBattlegroundResponse.ProtoReflect.Descriptor instead. func (*CanPlayerTeleportToBattlegroundResponse) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{21} + return file_worldserver_proto_rawDescGZIP(), []int{23} } func (x *CanPlayerTeleportToBattlegroundResponse) GetApi() string { @@ -1599,41 +2228,32 @@ func (x *CanPlayerTeleportToBattlegroundResponse) GetStatus() CanPlayerTeleportT return CanPlayerTeleportToBattlegroundResponse_Success } -type GetPlayerItemsByGuidsResponse_Item struct { +type LfgDungeonLock struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` - Owner uint64 `protobuf:"varint,3,opt,name=owner,proto3" json:"owner,omitempty"` - BagSlot uint32 `protobuf:"varint,4,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` - Slot uint32 `protobuf:"varint,5,opt,name=slot,proto3" json:"slot,omitempty"` - IsTradable bool `protobuf:"varint,6,opt,name=isTradable,proto3" json:"isTradable,omitempty"` - Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` - Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` - Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` - RandomPropertyID uint32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` - Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` + DungeonEntry uint32 `protobuf:"varint,1,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + LockStatus uint32 `protobuf:"varint,2,opt,name=lockStatus,proto3" json:"lockStatus,omitempty"` } -func (x *GetPlayerItemsByGuidsResponse_Item) Reset() { - *x = GetPlayerItemsByGuidsResponse_Item{} +func (x *LfgDungeonLock) Reset() { + *x = LfgDungeonLock{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[22] + mi := &file_worldserver_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetPlayerItemsByGuidsResponse_Item) String() string { +func (x *LfgDungeonLock) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetPlayerItemsByGuidsResponse_Item) ProtoMessage() {} +func (*LfgDungeonLock) ProtoMessage() {} -func (x *GetPlayerItemsByGuidsResponse_Item) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[22] +func (x *LfgDungeonLock) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1644,119 +2264,265 @@ func (x *GetPlayerItemsByGuidsResponse_Item) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GetPlayerItemsByGuidsResponse_Item.ProtoReflect.Descriptor instead. -func (*GetPlayerItemsByGuidsResponse_Item) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{1, 0} +// Deprecated: Use LfgDungeonLock.ProtoReflect.Descriptor instead. +func (*LfgDungeonLock) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{24} } -func (x *GetPlayerItemsByGuidsResponse_Item) GetGuid() uint64 { +func (x *LfgDungeonLock) GetDungeonEntry() uint32 { if x != nil { - return x.Guid + return x.DungeonEntry } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetEntry() uint32 { +func (x *LfgDungeonLock) GetLockStatus() uint32 { if x != nil { - return x.Entry + return x.LockStatus } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetOwner() uint64 { +type GetLfgPlayerLockInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + DungeonEntries []uint32 `protobuf:"varint,3,rep,packed,name=dungeonEntries,proto3" json:"dungeonEntries,omitempty"` +} + +func (x *GetLfgPlayerLockInfoRequest) Reset() { + *x = GetLfgPlayerLockInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerLockInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerLockInfoRequest) ProtoMessage() {} + +func (x *GetLfgPlayerLockInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[25] + 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 GetLfgPlayerLockInfoRequest.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerLockInfoRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{25} +} + +func (x *GetLfgPlayerLockInfoRequest) GetApi() string { if x != nil { - return x.Owner + return x.Api } - return 0 + return "" } -func (x *GetPlayerItemsByGuidsResponse_Item) GetBagSlot() uint32 { +func (x *GetLfgPlayerLockInfoRequest) GetPlayerGUID() uint64 { if x != nil { - return x.BagSlot + return x.PlayerGUID } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetSlot() uint32 { +func (x *GetLfgPlayerLockInfoRequest) GetDungeonEntries() []uint32 { if x != nil { - return x.Slot + return x.DungeonEntries } - return 0 + return nil } -func (x *GetPlayerItemsByGuidsResponse_Item) GetIsTradable() bool { +type GetLfgPlayerLockInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetLfgPlayerLockInfoResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetLfgPlayerLockInfoResponse_Status" json:"status,omitempty"` + Locks []*LfgDungeonLock `protobuf:"bytes,3,rep,name=locks,proto3" json:"locks,omitempty"` + // AzerothCore LfgJoinResult for player-wide join restrictions not represented + // as per-dungeon lock rows, such as deserter or random dungeon cooldown. + JoinResult uint32 `protobuf:"varint,4,opt,name=joinResult,proto3" json:"joinResult,omitempty"` + // AzerothCore DBC-filtered and canonicalized dungeon entries accepted from + // the client selection. Gateway must queue these instead of raw client slots. + ValidDungeonEntries []uint32 `protobuf:"varint,5,rep,packed,name=validDungeonEntries,proto3" json:"validDungeonEntries,omitempty"` +} + +func (x *GetLfgPlayerLockInfoResponse) Reset() { + *x = GetLfgPlayerLockInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerLockInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerLockInfoResponse) ProtoMessage() {} + +func (x *GetLfgPlayerLockInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[26] + 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 GetLfgPlayerLockInfoResponse.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerLockInfoResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{26} +} + +func (x *GetLfgPlayerLockInfoResponse) GetApi() string { if x != nil { - return x.IsTradable + return x.Api } - return false + return "" } -func (x *GetPlayerItemsByGuidsResponse_Item) GetCount() uint32 { +func (x *GetLfgPlayerLockInfoResponse) GetStatus() GetLfgPlayerLockInfoResponse_Status { if x != nil { - return x.Count + return x.Status } - return 0 + return GetLfgPlayerLockInfoResponse_Success } -func (x *GetPlayerItemsByGuidsResponse_Item) GetFlags() uint32 { +func (x *GetLfgPlayerLockInfoResponse) GetLocks() []*LfgDungeonLock { if x != nil { - return x.Flags + return x.Locks + } + return nil +} + +func (x *GetLfgPlayerLockInfoResponse) GetJoinResult() uint32 { + if x != nil { + return x.JoinResult } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetDurability() uint32 { +func (x *GetLfgPlayerLockInfoResponse) GetValidDungeonEntries() []uint32 { if x != nil { - return x.Durability + return x.ValidDungeonEntries + } + return nil +} + +type LfgRewardItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ItemID uint32 `protobuf:"varint,1,opt,name=itemID,proto3" json:"itemID,omitempty"` + DisplayID uint32 `protobuf:"varint,2,opt,name=displayID,proto3" json:"displayID,omitempty"` + Count uint32 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *LfgRewardItem) Reset() { + *x = LfgRewardItem{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LfgRewardItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LfgRewardItem) ProtoMessage() {} + +func (x *LfgRewardItem) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[27] + 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 LfgRewardItem.ProtoReflect.Descriptor instead. +func (*LfgRewardItem) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{27} +} + +func (x *LfgRewardItem) GetItemID() uint32 { + if x != nil { + return x.ItemID } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetRandomPropertyID() uint32 { +func (x *LfgRewardItem) GetDisplayID() uint32 { if x != nil { - return x.RandomPropertyID + return x.DisplayID } return 0 } -func (x *GetPlayerItemsByGuidsResponse_Item) GetText() string { +func (x *LfgRewardItem) GetCount() uint32 { if x != nil { - return x.Text + return x.Count } - return "" + return 0 } -type AddExistingItemToPlayerRequest_Item struct { +type LfgRandomDungeonInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` - Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` - Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` - Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` - Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` - RandomPropertyID uint32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` - Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` + DungeonEntry uint32 `protobuf:"varint,1,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + Done bool `protobuf:"varint,2,opt,name=done,proto3" json:"done,omitempty"` + RewardMoney uint32 `protobuf:"varint,3,opt,name=rewardMoney,proto3" json:"rewardMoney,omitempty"` + RewardXP uint32 `protobuf:"varint,4,opt,name=rewardXP,proto3" json:"rewardXP,omitempty"` + RewardUnknown1 uint32 `protobuf:"varint,5,opt,name=rewardUnknown1,proto3" json:"rewardUnknown1,omitempty"` + RewardUnknown2 uint32 `protobuf:"varint,6,opt,name=rewardUnknown2,proto3" json:"rewardUnknown2,omitempty"` + RewardItems []*LfgRewardItem `protobuf:"bytes,7,rep,name=rewardItems,proto3" json:"rewardItems,omitempty"` } -func (x *AddExistingItemToPlayerRequest_Item) Reset() { - *x = AddExistingItemToPlayerRequest_Item{} +func (x *LfgRandomDungeonInfo) Reset() { + *x = LfgRandomDungeonInfo{} if protoimpl.UnsafeEnabled { - mi := &file_worldserver_proto_msgTypes[23] + mi := &file_worldserver_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *AddExistingItemToPlayerRequest_Item) String() string { +func (x *LfgRandomDungeonInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*AddExistingItemToPlayerRequest_Item) ProtoMessage() {} +func (*LfgRandomDungeonInfo) ProtoMessage() {} -func (x *AddExistingItemToPlayerRequest_Item) ProtoReflect() protoreflect.Message { - mi := &file_worldserver_proto_msgTypes[23] +func (x *LfgRandomDungeonInfo) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1767,76 +2533,1285 @@ func (x *AddExistingItemToPlayerRequest_Item) ProtoReflect() protoreflect.Messag return mi.MessageOf(x) } -// Deprecated: Use AddExistingItemToPlayerRequest_Item.ProtoReflect.Descriptor instead. -func (*AddExistingItemToPlayerRequest_Item) Descriptor() ([]byte, []int) { - return file_worldserver_proto_rawDescGZIP(), []int{4, 0} +// Deprecated: Use LfgRandomDungeonInfo.ProtoReflect.Descriptor instead. +func (*LfgRandomDungeonInfo) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{28} } -func (x *AddExistingItemToPlayerRequest_Item) GetGuid() uint64 { +func (x *LfgRandomDungeonInfo) GetDungeonEntry() uint32 { if x != nil { - return x.Guid + return x.DungeonEntry } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetEntry() uint32 { +func (x *LfgRandomDungeonInfo) GetDone() bool { if x != nil { - return x.Entry + return x.Done } - return 0 + return false } -func (x *AddExistingItemToPlayerRequest_Item) GetCount() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardMoney() uint32 { if x != nil { - return x.Count + return x.RewardMoney } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetFlags() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardXP() uint32 { if x != nil { - return x.Flags + return x.RewardXP } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetDurability() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardUnknown1() uint32 { if x != nil { - return x.Durability + return x.RewardUnknown1 } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetRandomPropertyID() uint32 { +func (x *LfgRandomDungeonInfo) GetRewardUnknown2() uint32 { if x != nil { - return x.RandomPropertyID + return x.RewardUnknown2 } return 0 } -func (x *AddExistingItemToPlayerRequest_Item) GetText() string { +func (x *LfgRandomDungeonInfo) GetRewardItems() []*LfgRewardItem { if x != nil { - return x.Text + return x.RewardItems + } + return nil +} + +type GetLfgPlayerInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` +} + +func (x *GetLfgPlayerInfoRequest) Reset() { + *x = GetLfgPlayerInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerInfoRequest) ProtoMessage() {} + +func (x *GetLfgPlayerInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[29] + 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 GetLfgPlayerInfoRequest.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerInfoRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{29} +} + +func (x *GetLfgPlayerInfoRequest) GetApi() string { + if x != nil { + return x.Api } return "" } -var File_worldserver_proto protoreflect.FileDescriptor +func (x *GetLfgPlayerInfoRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} -var file_worldserver_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x66, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, - 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x22, - 0x92, 0x03, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, +type GetLfgPlayerInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetLfgPlayerInfoResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetLfgPlayerInfoResponse_Status" json:"status,omitempty"` + RandomDungeons []*LfgRandomDungeonInfo `protobuf:"bytes,3,rep,name=randomDungeons,proto3" json:"randomDungeons,omitempty"` + Locks []*LfgDungeonLock `protobuf:"bytes,4,rep,name=locks,proto3" json:"locks,omitempty"` +} + +func (x *GetLfgPlayerInfoResponse) Reset() { + *x = GetLfgPlayerInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgPlayerInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgPlayerInfoResponse) ProtoMessage() {} + +func (x *GetLfgPlayerInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[30] + 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 GetLfgPlayerInfoResponse.ProtoReflect.Descriptor instead. +func (*GetLfgPlayerInfoResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{30} +} + +func (x *GetLfgPlayerInfoResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgPlayerInfoResponse) GetStatus() GetLfgPlayerInfoResponse_Status { + if x != nil { + return x.Status + } + return GetLfgPlayerInfoResponse_Success +} + +func (x *GetLfgPlayerInfoResponse) GetRandomDungeons() []*LfgRandomDungeonInfo { + if x != nil { + return x.RandomDungeons + } + return nil +} + +func (x *GetLfgPlayerInfoResponse) GetLocks() []*LfgDungeonLock { + if x != nil { + return x.Locks + } + return nil +} + +type GetLfgDungeonInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + DungeonEntry uint32 `protobuf:"varint,2,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` +} + +func (x *GetLfgDungeonInfoRequest) Reset() { + *x = GetLfgDungeonInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonInfoRequest) ProtoMessage() {} + +func (x *GetLfgDungeonInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[31] + 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 GetLfgDungeonInfoRequest.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonInfoRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{31} +} + +func (x *GetLfgDungeonInfoRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonInfoRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +type GetLfgDungeonInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status GetLfgDungeonInfoResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.GetLfgDungeonInfoResponse_Status" json:"status,omitempty"` + DungeonEntry uint32 `protobuf:"varint,3,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + DungeonID uint32 `protobuf:"varint,4,opt,name=dungeonID,proto3" json:"dungeonID,omitempty"` + MapID uint32 `protobuf:"varint,5,opt,name=mapID,proto3" json:"mapID,omitempty"` + TypeID uint32 `protobuf:"varint,6,opt,name=typeID,proto3" json:"typeID,omitempty"` + Difficulty uint32 `protobuf:"varint,7,opt,name=difficulty,proto3" json:"difficulty,omitempty"` +} + +func (x *GetLfgDungeonInfoResponse) Reset() { + *x = GetLfgDungeonInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLfgDungeonInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLfgDungeonInfoResponse) ProtoMessage() {} + +func (x *GetLfgDungeonInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[32] + 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 GetLfgDungeonInfoResponse.ProtoReflect.Descriptor instead. +func (*GetLfgDungeonInfoResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{32} +} + +func (x *GetLfgDungeonInfoResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *GetLfgDungeonInfoResponse) GetStatus() GetLfgDungeonInfoResponse_Status { + if x != nil { + return x.Status + } + return GetLfgDungeonInfoResponse_Success +} + +func (x *GetLfgDungeonInfoResponse) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetDungeonID() uint32 { + if x != nil { + return x.DungeonID + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetMapID() uint32 { + if x != nil { + return x.MapID + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetTypeID() uint32 { + if x != nil { + return x.TypeID + } + return 0 +} + +func (x *GetLfgDungeonInfoResponse) GetDifficulty() uint32 { + if x != nil { + return x.Difficulty + } + return 0 +} + +type TeleportLfgPlayerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Out bool `protobuf:"varint,3,opt,name=out,proto3" json:"out,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` +} + +func (x *TeleportLfgPlayerRequest) Reset() { + *x = TeleportLfgPlayerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TeleportLfgPlayerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TeleportLfgPlayerRequest) ProtoMessage() {} + +func (x *TeleportLfgPlayerRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[33] + 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 TeleportLfgPlayerRequest.ProtoReflect.Descriptor instead. +func (*TeleportLfgPlayerRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{33} +} + +func (x *TeleportLfgPlayerRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *TeleportLfgPlayerRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *TeleportLfgPlayerRequest) GetOut() bool { + if x != nil { + return x.Out + } + return false +} + +func (x *TeleportLfgPlayerRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +type TeleportLfgPlayerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status TeleportLfgPlayerResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.TeleportLfgPlayerResponse_Status" json:"status,omitempty"` +} + +func (x *TeleportLfgPlayerResponse) Reset() { + *x = TeleportLfgPlayerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TeleportLfgPlayerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TeleportLfgPlayerResponse) ProtoMessage() {} + +func (x *TeleportLfgPlayerResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[34] + 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 TeleportLfgPlayerResponse.ProtoReflect.Descriptor instead. +func (*TeleportLfgPlayerResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{34} +} + +func (x *TeleportLfgPlayerResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *TeleportLfgPlayerResponse) GetStatus() TeleportLfgPlayerResponse_Status { + if x != nil { + return x.Status + } + return TeleportLfgPlayerResponse_Success +} + +type SetLfgBootVoteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + PlayerGUID uint64 `protobuf:"varint,2,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + Agree bool `protobuf:"varint,3,opt,name=agree,proto3" json:"agree,omitempty"` +} + +func (x *SetLfgBootVoteRequest) Reset() { + *x = SetLfgBootVoteRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgBootVoteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgBootVoteRequest) ProtoMessage() {} + +func (x *SetLfgBootVoteRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[35] + 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 SetLfgBootVoteRequest.ProtoReflect.Descriptor instead. +func (*SetLfgBootVoteRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{35} +} + +func (x *SetLfgBootVoteRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgBootVoteRequest) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *SetLfgBootVoteRequest) GetAgree() bool { + if x != nil { + return x.Agree + } + return false +} + +type SetLfgBootVoteResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status SetLfgBootVoteResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.SetLfgBootVoteResponse_Status" json:"status,omitempty"` +} + +func (x *SetLfgBootVoteResponse) Reset() { + *x = SetLfgBootVoteResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetLfgBootVoteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetLfgBootVoteResponse) ProtoMessage() {} + +func (x *SetLfgBootVoteResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[36] + 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 SetLfgBootVoteResponse.ProtoReflect.Descriptor instead. +func (*SetLfgBootVoteResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{36} +} + +func (x *SetLfgBootVoteResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *SetLfgBootVoteResponse) GetStatus() SetLfgBootVoteResponse_Status { + if x != nil { + return x.Status + } + return SetLfgBootVoteResponse_Success +} + +// MaterializeLfgProposal +type MaterializeLfgProposalRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + RealmID uint32 `protobuf:"varint,2,opt,name=realmID,proto3" json:"realmID,omitempty"` + ProposalID uint32 `protobuf:"varint,3,opt,name=proposalID,proto3" json:"proposalID,omitempty"` + DungeonEntry uint32 `protobuf:"varint,4,opt,name=dungeonEntry,proto3" json:"dungeonEntry,omitempty"` + LeaderGUID uint64 `protobuf:"varint,5,opt,name=leaderGUID,proto3" json:"leaderGUID,omitempty"` + Members []*MaterializeLfgProposalRequest_Member `protobuf:"bytes,6,rep,name=members,proto3" json:"members,omitempty"` +} + +func (x *MaterializeLfgProposalRequest) Reset() { + *x = MaterializeLfgProposalRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeLfgProposalRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeLfgProposalRequest) ProtoMessage() {} + +func (x *MaterializeLfgProposalRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[37] + 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 MaterializeLfgProposalRequest.ProtoReflect.Descriptor instead. +func (*MaterializeLfgProposalRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{37} +} + +func (x *MaterializeLfgProposalRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *MaterializeLfgProposalRequest) GetRealmID() uint32 { + if x != nil { + return x.RealmID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetProposalID() uint32 { + if x != nil { + return x.ProposalID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetDungeonEntry() uint32 { + if x != nil { + return x.DungeonEntry + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetLeaderGUID() uint64 { + if x != nil { + return x.LeaderGUID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest) GetMembers() []*MaterializeLfgProposalRequest_Member { + if x != nil { + return x.Members + } + return nil +} + +type MaterializeLfgProposalResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status MaterializeLfgProposalResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.MaterializeLfgProposalResponse_Status" json:"status,omitempty"` +} + +func (x *MaterializeLfgProposalResponse) Reset() { + *x = MaterializeLfgProposalResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeLfgProposalResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeLfgProposalResponse) ProtoMessage() {} + +func (x *MaterializeLfgProposalResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[38] + 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 MaterializeLfgProposalResponse.ProtoReflect.Descriptor instead. +func (*MaterializeLfgProposalResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{38} +} + +func (x *MaterializeLfgProposalResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *MaterializeLfgProposalResponse) GetStatus() MaterializeLfgProposalResponse_Status { + if x != nil { + return x.Status + } + return MaterializeLfgProposalResponse_Success +} + +type CreateGuildRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + LeaderGuid uint64 `protobuf:"varint,2,opt,name=leaderGuid,proto3" json:"leaderGuid,omitempty"` + GuildName string `protobuf:"bytes,3,opt,name=guildName,proto3" json:"guildName,omitempty"` +} + +func (x *CreateGuildRequest) Reset() { + *x = CreateGuildRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGuildRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGuildRequest) ProtoMessage() {} + +func (x *CreateGuildRequest) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[39] + 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 CreateGuildRequest.ProtoReflect.Descriptor instead. +func (*CreateGuildRequest) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{39} +} + +func (x *CreateGuildRequest) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *CreateGuildRequest) GetLeaderGuid() uint64 { + if x != nil { + return x.LeaderGuid + } + return 0 +} + +func (x *CreateGuildRequest) GetGuildName() string { + if x != nil { + return x.GuildName + } + return "" +} + +type CreateGuildResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Api string `protobuf:"bytes,1,opt,name=api,proto3" json:"api,omitempty"` + Status CreateGuildResponse_Status `protobuf:"varint,2,opt,name=status,proto3,enum=v1.CreateGuildResponse_Status" json:"status,omitempty"` + GuildId uint64 `protobuf:"varint,3,opt,name=guildId,proto3" json:"guildId,omitempty"` +} + +func (x *CreateGuildResponse) Reset() { + *x = CreateGuildResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateGuildResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGuildResponse) ProtoMessage() {} + +func (x *CreateGuildResponse) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[40] + 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 CreateGuildResponse.ProtoReflect.Descriptor instead. +func (*CreateGuildResponse) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{40} +} + +func (x *CreateGuildResponse) GetApi() string { + if x != nil { + return x.Api + } + return "" +} + +func (x *CreateGuildResponse) GetStatus() CreateGuildResponse_Status { + if x != nil { + return x.Status + } + return CreateGuildResponse_Success +} + +func (x *CreateGuildResponse) GetGuildId() uint64 { + if x != nil { + return x.GuildId + } + return 0 +} + +type GetPlayerItemsByGuidsResponse_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Owner uint64 `protobuf:"varint,3,opt,name=owner,proto3" json:"owner,omitempty"` + BagSlot uint32 `protobuf:"varint,4,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,5,opt,name=slot,proto3" json:"slot,omitempty"` + IsTradable bool `protobuf:"varint,6,opt,name=isTradable,proto3" json:"isTradable,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` + Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` + RandomPropertyID int32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *GetPlayerItemsByGuidsResponse_Item) Reset() { + *x = GetPlayerItemsByGuidsResponse_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPlayerItemsByGuidsResponse_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPlayerItemsByGuidsResponse_Item) ProtoMessage() {} + +func (x *GetPlayerItemsByGuidsResponse_Item) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[41] + 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 GetPlayerItemsByGuidsResponse_Item.ProtoReflect.Descriptor instead. +func (*GetPlayerItemsByGuidsResponse_Item) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetOwner() uint64 { + if x != nil { + return x.Owner + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetBagSlot() uint32 { + if x != nil { + return x.BagSlot + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetIsTradable() bool { + if x != nil { + return x.IsTradable + } + return false +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *GetPlayerItemsByGuidsResponse_Item) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type TakePlayerItemByPosResponse_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Owner uint64 `protobuf:"varint,3,opt,name=owner,proto3" json:"owner,omitempty"` + BagSlot uint32 `protobuf:"varint,4,opt,name=bagSlot,proto3" json:"bagSlot,omitempty"` + Slot uint32 `protobuf:"varint,5,opt,name=slot,proto3" json:"slot,omitempty"` + IsTradable bool `protobuf:"varint,6,opt,name=isTradable,proto3" json:"isTradable,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` + Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` + RandomPropertyID int32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *TakePlayerItemByPosResponse_Item) Reset() { + *x = TakePlayerItemByPosResponse_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TakePlayerItemByPosResponse_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TakePlayerItemByPosResponse_Item) ProtoMessage() {} + +func (x *TakePlayerItemByPosResponse_Item) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[42] + 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 TakePlayerItemByPosResponse_Item.ProtoReflect.Descriptor instead. +func (*TakePlayerItemByPosResponse_Item) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *TakePlayerItemByPosResponse_Item) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetOwner() uint64 { + if x != nil { + return x.Owner + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetBagSlot() uint32 { + if x != nil { + return x.BagSlot + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetSlot() uint32 { + if x != nil { + return x.Slot + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetIsTradable() bool { + if x != nil { + return x.IsTradable + } + return false +} + +func (x *TakePlayerItemByPosResponse_Item) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *TakePlayerItemByPosResponse_Item) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type AddExistingItemToPlayerRequest_Item struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Guid uint64 `protobuf:"varint,1,opt,name=guid,proto3" json:"guid,omitempty"` + Entry uint32 `protobuf:"varint,2,opt,name=entry,proto3" json:"entry,omitempty"` + Count uint32 `protobuf:"varint,7,opt,name=count,proto3" json:"count,omitempty"` + Flags uint32 `protobuf:"varint,8,opt,name=flags,proto3" json:"flags,omitempty"` + Durability uint32 `protobuf:"varint,9,opt,name=durability,proto3" json:"durability,omitempty"` + RandomPropertyID int32 `protobuf:"varint,10,opt,name=randomPropertyID,proto3" json:"randomPropertyID,omitempty"` + Text string `protobuf:"bytes,11,opt,name=text,proto3" json:"text,omitempty"` +} + +func (x *AddExistingItemToPlayerRequest_Item) Reset() { + *x = AddExistingItemToPlayerRequest_Item{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddExistingItemToPlayerRequest_Item) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddExistingItemToPlayerRequest_Item) ProtoMessage() {} + +func (x *AddExistingItemToPlayerRequest_Item) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[43] + 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 AddExistingItemToPlayerRequest_Item.ProtoReflect.Descriptor instead. +func (*AddExistingItemToPlayerRequest_Item) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *AddExistingItemToPlayerRequest_Item) GetGuid() uint64 { + if x != nil { + return x.Guid + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetEntry() uint32 { + if x != nil { + return x.Entry + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetFlags() uint32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetDurability() uint32 { + if x != nil { + return x.Durability + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetRandomPropertyID() int32 { + if x != nil { + return x.RandomPropertyID + } + return 0 +} + +func (x *AddExistingItemToPlayerRequest_Item) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +type MaterializeLfgProposalRequest_Member struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlayerGUID uint64 `protobuf:"varint,1,opt,name=playerGUID,proto3" json:"playerGUID,omitempty"` + SelectedRoles uint32 `protobuf:"varint,2,opt,name=selectedRoles,proto3" json:"selectedRoles,omitempty"` + AssignedRole uint32 `protobuf:"varint,3,opt,name=assignedRole,proto3" json:"assignedRole,omitempty"` + QueueLeaderGUID uint64 `protobuf:"varint,4,opt,name=queueLeaderGUID,proto3" json:"queueLeaderGUID,omitempty"` +} + +func (x *MaterializeLfgProposalRequest_Member) Reset() { + *x = MaterializeLfgProposalRequest_Member{} + if protoimpl.UnsafeEnabled { + mi := &file_worldserver_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeLfgProposalRequest_Member) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeLfgProposalRequest_Member) ProtoMessage() {} + +func (x *MaterializeLfgProposalRequest_Member) ProtoReflect() protoreflect.Message { + mi := &file_worldserver_proto_msgTypes[44] + 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 MaterializeLfgProposalRequest_Member.ProtoReflect.Descriptor instead. +func (*MaterializeLfgProposalRequest_Member) Descriptor() ([]byte, []int) { + return file_worldserver_proto_rawDescGZIP(), []int{37, 0} +} + +func (x *MaterializeLfgProposalRequest_Member) GetPlayerGUID() uint64 { + if x != nil { + return x.PlayerGUID + } + return 0 +} + +func (x *MaterializeLfgProposalRequest_Member) GetSelectedRoles() uint32 { + if x != nil { + return x.SelectedRoles + } + return 0 +} + +func (x *MaterializeLfgProposalRequest_Member) GetAssignedRole() uint32 { + if x != nil { + return x.AssignedRole + } + return 0 +} + +func (x *MaterializeLfgProposalRequest_Member) GetQueueLeaderGUID() uint64 { + if x != nil { + return x.QueueLeaderGUID + } + return 0 +} + +var File_worldserver_proto protoreflect.FileDescriptor + +var file_worldserver_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x66, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, + 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x22, + 0x92, 0x03, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, + 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xa0, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, @@ -1854,36 +3829,88 @@ var file_worldserver_proto_rawDesc = []byte{ 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x74, 0x65, 0x78, 0x74, 0x22, 0x9f, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, - 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x04, 0x52, - 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, - 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, - 0x70, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x47, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x75, 0x69, 0x64, 0x73, - 0x22, 0xce, 0x02, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x74, 0x65, 0x78, 0x74, 0x22, 0xc2, 0x01, 0x0a, 0x1a, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x74, - 0x65, 0x6d, 0x1a, 0xbc, 0x01, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, + 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, + 0x6c, 0x6f, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, + 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x22, 0xaa, 0x04, 0x0a, 0x1b, 0x54, 0x61, + 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, 0x6f, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, + 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x69, + 0x74, 0x65, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, + 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x04, 0x69, 0x74, 0x65, 0x6d, 0x1a, 0xa0, 0x02, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, + 0x69, 0x73, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x69, 0x73, 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, + 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x5c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, + 0x64, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, 0x46, 0x6f, + 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x74, 0x65, 0x6d, 0x4e, 0x6f, 0x74, + 0x54, 0x72, 0x61, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x10, 0x04, 0x22, 0x9f, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, + 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x04, 0x52, 0x05, 0x67, 0x75, 0x69, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x54, 0x6f, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, + 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x47, 0x75, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x04, 0x52, + 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x75, 0x69, + 0x64, 0x73, 0x22, 0x9c, 0x03, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, + 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x69, 0x74, 0x65, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x74, 0x50, + 0x6f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x41, + 0x74, 0x50, 0x6f, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x62, 0x61, 0x67, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x73, 0x6c, + 0x6f, 0x74, 0x1a, 0xbc, 0x01, 0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, @@ -1892,7 +3919,7 @@ var file_worldserver_proto_rawDesc = []byte{ 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, - 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x72, 0x61, 0x6e, + 0x72, 0x74, 0x79, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x22, 0x9b, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, @@ -1957,7 +3984,7 @@ var file_worldserver_proto_rawDesc = []byte{ 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x63, 0x61, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, - 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, + 0x74, 0x22, 0xa6, 0x04, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x12, 0x62, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, @@ -1977,158 +4004,413 @@ var file_worldserver_proto_rawDesc = []byte{ 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x18, 0x08, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, - 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x22, 0x79, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, - 0x44, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x12, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x62, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x32, 0x0a, + 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, + 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x6f, 0x72, 0x64, + 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x10, 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x54, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, + 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, 0x65, 0x72, 0x52, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x61, 0x6c, 0x6c, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x1a, 0x68, 0x6f, + 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, 0x61, 0x6b, + 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1a, + 0x68, 0x6f, 0x72, 0x64, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x6d, + 0x61, 0x6b, 0x65, 0x72, 0x52, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x79, 0x0a, 0x19, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x44, 0x22, 0xfb, 0x01, 0x0a, 0x1f, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x44, 0x0a, 0x12, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, + 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x62, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, + 0x44, 0x12, 0x32, 0x0a, 0x14, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, + 0x64, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x14, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, - 0x69, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x04, 0x52, 0x14, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x41, 0x6c, 0x6c, 0x69, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, - 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, 0x52, 0x11, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x22, - 0x34, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, - 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x25, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x69, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, + 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, 0x72, 0x64, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x04, + 0x52, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x64, 0x64, 0x48, 0x6f, + 0x72, 0x64, 0x65, 0x22, 0x34, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x22, 0x59, 0x0a, 0x25, 0x43, 0x61, 0x6e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x22, 0x9c, 0x01, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, - 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, - 0x22, 0x9c, 0x01, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, - 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, - 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, - 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x49, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x22, - 0x5a, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, + 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, + 0x69, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x10, 0x00, 0x22, 0x5a, 0x0a, 0x26, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, + 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, + 0x9e, 0x01, 0x0a, 0x27, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, + 0x22, 0x54, 0x0a, 0x0e, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x4c, 0x6f, + 0x63, 0x6b, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x77, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x0e, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, + 0xab, 0x02, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x3f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, + 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, + 0x3c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x22, 0x5b, 0x0a, + 0x0d, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, + 0x69, 0x74, 0x65, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x02, 0x0a, 0x14, 0x4c, + 0x66, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x58, 0x50, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x58, 0x50, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x31, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x32, 0x12, 0x33, 0x0a, 0x0b, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, + 0x6d, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x4b, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0x9e, 0x01, 0x0a, 0x27, - 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x4a, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x15, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x2a, 0x9a, 0x02, 0x0a, - 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x61, 0x63, 0x56, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x10, 0x01, 0x12, 0x10, - 0x0a, 0x0c, 0x57, 0x61, 0x72, 0x73, 0x6f, 0x6e, 0x67, 0x47, 0x75, 0x6c, 0x63, 0x68, 0x10, 0x02, - 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x72, 0x61, 0x74, 0x68, 0x69, 0x42, 0x61, 0x73, 0x69, 0x6e, 0x10, - 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x61, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, 0x6e, - 0x61, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, 0x61, 0x64, 0x65, 0x73, 0x45, 0x64, 0x67, - 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x41, - 0x72, 0x65, 0x6e, 0x61, 0x73, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x79, 0x65, 0x4f, 0x66, - 0x54, 0x68, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x75, - 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x4c, 0x6f, 0x72, 0x64, 0x61, 0x65, 0x72, 0x6f, 0x6e, 0x10, 0x08, - 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x61, 0x6e, 0x64, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x41, - 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x61, 0x6c, - 0x61, 0x72, 0x61, 0x6e, 0x53, 0x65, 0x77, 0x65, 0x72, 0x73, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, - 0x52, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x56, 0x61, 0x6c, 0x6f, 0x72, 0x10, 0x0b, 0x12, 0x12, 0x0a, - 0x0e, 0x49, 0x73, 0x6c, 0x65, 0x4f, 0x66, 0x43, 0x6f, 0x6e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, - 0x1e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x20, 0x32, 0x8d, 0x09, 0x0a, 0x12, 0x57, 0x6f, - 0x72, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x5c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, - 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, - 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, - 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, - 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, - 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x45, 0x78, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xa2, 0x02, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, 0x67, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x72, 0x61, 0x6e, 0x64, 0x6f, + 0x6d, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f, 0x63, + 0x6b, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x66, + 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x6b, 0x52, 0x05, 0x6c, 0x6f, + 0x63, 0x6b, 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, + 0x22, 0x50, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x22, + 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x22, 0xc9, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, + 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, + 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6d, 0x61, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x79, 0x70, 0x65, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x79, 0x70, 0x65, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, + 0x22, 0x4c, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x22, 0x82, + 0x01, 0x0a, 0x18, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, + 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x10, 0x0a, + 0x03, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6f, 0x75, 0x74, 0x12, + 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x22, 0xb8, 0x01, 0x0a, 0x19, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x61, 0x70, 0x69, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x22, 0x5f, + 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x67, 0x72, + 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x67, 0x72, 0x65, 0x65, 0x22, + 0xb2, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x39, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x4b, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x10, 0x03, 0x22, 0x92, 0x03, 0x0a, 0x1d, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x6c, + 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x61, 0x6c, 0x6d, + 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x75, 0x6e, 0x67, 0x65, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x47, 0x55, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x6c, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x42, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x9c, 0x01, 0x0a, 0x06, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, + 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x55, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x28, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, + 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4c, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x55, 0x49, 0x44, 0x22, 0xd6, 0x01, 0x0a, 0x1e, 0x4d, 0x61, + 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x41, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, + 0x66, 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x22, 0x5f, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x6f, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x75, 0x6e, 0x67, 0x65, + 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x4e, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x10, 0x04, 0x22, 0x64, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x69, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, + 0x6c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x47, 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, + 0x70, 0x69, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, + 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x75, + 0x69, 0x6c, 0x64, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x67, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, + 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, + 0x61, 0x6d, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, + 0x4c, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x03, + 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x04, 0x2a, 0x9a, 0x02, 0x0a, 0x10, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x6f, 0x6e, 0x65, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x61, 0x63, 0x56, 0x61, 0x6c, + 0x6c, 0x65, 0x79, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x57, 0x61, 0x72, 0x73, 0x6f, 0x6e, 0x67, + 0x47, 0x75, 0x6c, 0x63, 0x68, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x72, 0x61, 0x74, 0x68, + 0x69, 0x42, 0x61, 0x73, 0x69, 0x6e, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x61, 0x67, 0x72, + 0x61, 0x6e, 0x64, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x6c, + 0x61, 0x64, 0x65, 0x73, 0x45, 0x64, 0x67, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x10, 0x05, 0x12, + 0x0d, 0x0a, 0x09, 0x41, 0x6c, 0x6c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x10, 0x06, 0x12, 0x11, + 0x0a, 0x0d, 0x45, 0x79, 0x65, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x6d, 0x10, + 0x07, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x75, 0x69, 0x6e, 0x73, 0x4f, 0x66, 0x4c, 0x6f, 0x72, 0x64, + 0x61, 0x65, 0x72, 0x6f, 0x6e, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x61, 0x6e, + 0x64, 0x4f, 0x66, 0x54, 0x68, 0x65, 0x41, 0x6e, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x10, 0x09, + 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x61, 0x6c, 0x61, 0x72, 0x61, 0x6e, 0x53, 0x65, 0x77, 0x65, 0x72, + 0x73, 0x10, 0x0a, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x56, 0x61, 0x6c, + 0x6f, 0x72, 0x10, 0x0b, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x73, 0x6c, 0x65, 0x4f, 0x66, 0x43, 0x6f, + 0x6e, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x1e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x61, 0x6e, 0x64, + 0x6f, 0x6d, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x20, + 0x32, 0x9d, 0x0e, 0x0a, 0x12, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, + 0x12, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x42, 0x79, 0x47, 0x75, 0x69, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x79, 0x50, 0x6f, 0x73, 0x12, 0x1e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, + 0x42, 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x6b, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x74, 0x65, 0x6d, + 0x42, 0x79, 0x50, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, + 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, + 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, + 0x57, 0x69, 0x74, 0x68, 0x47, 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x57, 0x69, 0x74, 0x68, 0x47, + 0x75, 0x69, 0x64, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x12, 0x22, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x45, - 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x6f, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, - 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, - 0x14, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, + 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, + 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x69, - 0x66, 0x79, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, - 0x68, 0x4e, 0x50, 0x43, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, - 0x50, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, - 0x57, 0x69, 0x74, 0x68, 0x4e, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x7a, 0x0a, 0x1f, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x4e, 0x50, 0x43, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x50, + 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, + 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, + 0x69, 0x74, 0x68, 0x4e, 0x50, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, + 0x0a, 0x1f, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, - 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x61, 0x63, 0x74, 0x57, 0x69, 0x74, 0x68, 0x47, 0x61, 0x6d, 0x65, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, - 0x18, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, - 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, - 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, - 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x18, + 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, + 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x23, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x42, + 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, - 0x1f, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x29, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4a, + 0x6f, 0x69, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7a, 0x0a, 0x1f, + 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x12, + 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, + 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, - 0x12, 0x2a, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, - 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x6f, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x67, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x14, 0x5a, 0x12, 0x67, 0x65, 0x6e, - 0x2f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, + 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1f, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4c, 0x6f, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, + 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4c, 0x66, 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x66, + 0x67, 0x44, 0x75, 0x6e, 0x67, 0x65, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x54, 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x65, 0x6c, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x6c, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x66, 0x67, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, + 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x74, 0x4c, 0x66, 0x67, 0x42, 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x66, 0x67, 0x42, + 0x6f, 0x6f, 0x74, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x5f, 0x0a, 0x16, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, + 0x67, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x21, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x4c, 0x66, 0x67, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x12, + 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x47, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x14, 0x5a, 0x12, 0x67, 0x65, 0x6e, 0x2f, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2143,73 +4425,132 @@ func file_worldserver_proto_rawDescGZIP() []byte { return file_worldserver_proto_rawDescData } -var file_worldserver_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_worldserver_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_worldserver_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_worldserver_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_worldserver_proto_goTypes = []interface{}{ (BattlegroundType)(0), // 0: v1.BattlegroundType - (AddExistingItemToPlayerResponse_Status)(0), // 1: v1.AddExistingItemToPlayerResponse.Status - (CanPlayerJoinBattlegroundQueueResponse_Status)(0), // 2: v1.CanPlayerJoinBattlegroundQueueResponse.Status - (CanPlayerTeleportToBattlegroundResponse_Status)(0), // 3: v1.CanPlayerTeleportToBattlegroundResponse.Status - (*GetPlayerItemsByGuidsRequest)(nil), // 4: v1.GetPlayerItemsByGuidsRequest - (*GetPlayerItemsByGuidsResponse)(nil), // 5: v1.GetPlayerItemsByGuidsResponse - (*RemoveItemsWithGuidsFromPlayerRequest)(nil), // 6: v1.RemoveItemsWithGuidsFromPlayerRequest - (*RemoveItemsWithGuidsFromPlayerResponse)(nil), // 7: v1.RemoveItemsWithGuidsFromPlayerResponse - (*AddExistingItemToPlayerRequest)(nil), // 8: v1.AddExistingItemToPlayerRequest - (*AddExistingItemToPlayerResponse)(nil), // 9: v1.AddExistingItemToPlayerResponse - (*GetMoneyForPlayerRequest)(nil), // 10: v1.GetMoneyForPlayerRequest - (*GetMoneyForPlayerResponse)(nil), // 11: v1.GetMoneyForPlayerResponse - (*ModifyMoneyForPlayerRequest)(nil), // 12: v1.ModifyMoneyForPlayerRequest - (*ModifyMoneyForPlayerResponse)(nil), // 13: v1.ModifyMoneyForPlayerResponse - (*CanPlayerInteractWithNPCRequest)(nil), // 14: v1.CanPlayerInteractWithNPCRequest - (*CanPlayerInteractWithNPCResponse)(nil), // 15: v1.CanPlayerInteractWithNPCResponse - (*CanPlayerInteractWithGameObjectRequest)(nil), // 16: v1.CanPlayerInteractWithGameObjectRequest - (*CanPlayerInteractWithGameObjectResponse)(nil), // 17: v1.CanPlayerInteractWithGameObjectResponse - (*StartBattlegroundRequest)(nil), // 18: v1.StartBattlegroundRequest - (*StartBattlegroundResponse)(nil), // 19: v1.StartBattlegroundResponse - (*AddPlayersToBattlegroundRequest)(nil), // 20: v1.AddPlayersToBattlegroundRequest - (*AddPlayersToBattlegroundResponse)(nil), // 21: v1.AddPlayersToBattlegroundResponse - (*CanPlayerJoinBattlegroundQueueRequest)(nil), // 22: v1.CanPlayerJoinBattlegroundQueueRequest - (*CanPlayerJoinBattlegroundQueueResponse)(nil), // 23: v1.CanPlayerJoinBattlegroundQueueResponse - (*CanPlayerTeleportToBattlegroundRequest)(nil), // 24: v1.CanPlayerTeleportToBattlegroundRequest - (*CanPlayerTeleportToBattlegroundResponse)(nil), // 25: v1.CanPlayerTeleportToBattlegroundResponse - (*GetPlayerItemsByGuidsResponse_Item)(nil), // 26: v1.GetPlayerItemsByGuidsResponse.Item - (*AddExistingItemToPlayerRequest_Item)(nil), // 27: v1.AddExistingItemToPlayerRequest.Item + (TakePlayerItemByPosResponse_Status)(0), // 1: v1.TakePlayerItemByPosResponse.Status + (AddExistingItemToPlayerResponse_Status)(0), // 2: v1.AddExistingItemToPlayerResponse.Status + (CanPlayerJoinBattlegroundQueueResponse_Status)(0), // 3: v1.CanPlayerJoinBattlegroundQueueResponse.Status + (CanPlayerTeleportToBattlegroundResponse_Status)(0), // 4: v1.CanPlayerTeleportToBattlegroundResponse.Status + (GetLfgPlayerLockInfoResponse_Status)(0), // 5: v1.GetLfgPlayerLockInfoResponse.Status + (GetLfgPlayerInfoResponse_Status)(0), // 6: v1.GetLfgPlayerInfoResponse.Status + (GetLfgDungeonInfoResponse_Status)(0), // 7: v1.GetLfgDungeonInfoResponse.Status + (TeleportLfgPlayerResponse_Status)(0), // 8: v1.TeleportLfgPlayerResponse.Status + (SetLfgBootVoteResponse_Status)(0), // 9: v1.SetLfgBootVoteResponse.Status + (MaterializeLfgProposalResponse_Status)(0), // 10: v1.MaterializeLfgProposalResponse.Status + (CreateGuildResponse_Status)(0), // 11: v1.CreateGuildResponse.Status + (*GetPlayerItemsByGuidsRequest)(nil), // 12: v1.GetPlayerItemsByGuidsRequest + (*GetPlayerItemsByGuidsResponse)(nil), // 13: v1.GetPlayerItemsByGuidsResponse + (*TakePlayerItemByPosRequest)(nil), // 14: v1.TakePlayerItemByPosRequest + (*TakePlayerItemByPosResponse)(nil), // 15: v1.TakePlayerItemByPosResponse + (*RemoveItemsWithGuidsFromPlayerRequest)(nil), // 16: v1.RemoveItemsWithGuidsFromPlayerRequest + (*RemoveItemsWithGuidsFromPlayerResponse)(nil), // 17: v1.RemoveItemsWithGuidsFromPlayerResponse + (*AddExistingItemToPlayerRequest)(nil), // 18: v1.AddExistingItemToPlayerRequest + (*AddExistingItemToPlayerResponse)(nil), // 19: v1.AddExistingItemToPlayerResponse + (*GetMoneyForPlayerRequest)(nil), // 20: v1.GetMoneyForPlayerRequest + (*GetMoneyForPlayerResponse)(nil), // 21: v1.GetMoneyForPlayerResponse + (*ModifyMoneyForPlayerRequest)(nil), // 22: v1.ModifyMoneyForPlayerRequest + (*ModifyMoneyForPlayerResponse)(nil), // 23: v1.ModifyMoneyForPlayerResponse + (*CanPlayerInteractWithNPCRequest)(nil), // 24: v1.CanPlayerInteractWithNPCRequest + (*CanPlayerInteractWithNPCResponse)(nil), // 25: v1.CanPlayerInteractWithNPCResponse + (*CanPlayerInteractWithGameObjectRequest)(nil), // 26: v1.CanPlayerInteractWithGameObjectRequest + (*CanPlayerInteractWithGameObjectResponse)(nil), // 27: v1.CanPlayerInteractWithGameObjectResponse + (*StartBattlegroundRequest)(nil), // 28: v1.StartBattlegroundRequest + (*StartBattlegroundResponse)(nil), // 29: v1.StartBattlegroundResponse + (*AddPlayersToBattlegroundRequest)(nil), // 30: v1.AddPlayersToBattlegroundRequest + (*AddPlayersToBattlegroundResponse)(nil), // 31: v1.AddPlayersToBattlegroundResponse + (*CanPlayerJoinBattlegroundQueueRequest)(nil), // 32: v1.CanPlayerJoinBattlegroundQueueRequest + (*CanPlayerJoinBattlegroundQueueResponse)(nil), // 33: v1.CanPlayerJoinBattlegroundQueueResponse + (*CanPlayerTeleportToBattlegroundRequest)(nil), // 34: v1.CanPlayerTeleportToBattlegroundRequest + (*CanPlayerTeleportToBattlegroundResponse)(nil), // 35: v1.CanPlayerTeleportToBattlegroundResponse + (*LfgDungeonLock)(nil), // 36: v1.LfgDungeonLock + (*GetLfgPlayerLockInfoRequest)(nil), // 37: v1.GetLfgPlayerLockInfoRequest + (*GetLfgPlayerLockInfoResponse)(nil), // 38: v1.GetLfgPlayerLockInfoResponse + (*LfgRewardItem)(nil), // 39: v1.LfgRewardItem + (*LfgRandomDungeonInfo)(nil), // 40: v1.LfgRandomDungeonInfo + (*GetLfgPlayerInfoRequest)(nil), // 41: v1.GetLfgPlayerInfoRequest + (*GetLfgPlayerInfoResponse)(nil), // 42: v1.GetLfgPlayerInfoResponse + (*GetLfgDungeonInfoRequest)(nil), // 43: v1.GetLfgDungeonInfoRequest + (*GetLfgDungeonInfoResponse)(nil), // 44: v1.GetLfgDungeonInfoResponse + (*TeleportLfgPlayerRequest)(nil), // 45: v1.TeleportLfgPlayerRequest + (*TeleportLfgPlayerResponse)(nil), // 46: v1.TeleportLfgPlayerResponse + (*SetLfgBootVoteRequest)(nil), // 47: v1.SetLfgBootVoteRequest + (*SetLfgBootVoteResponse)(nil), // 48: v1.SetLfgBootVoteResponse + (*MaterializeLfgProposalRequest)(nil), // 49: v1.MaterializeLfgProposalRequest + (*MaterializeLfgProposalResponse)(nil), // 50: v1.MaterializeLfgProposalResponse + (*CreateGuildRequest)(nil), // 51: v1.CreateGuildRequest + (*CreateGuildResponse)(nil), // 52: v1.CreateGuildResponse + (*GetPlayerItemsByGuidsResponse_Item)(nil), // 53: v1.GetPlayerItemsByGuidsResponse.Item + (*TakePlayerItemByPosResponse_Item)(nil), // 54: v1.TakePlayerItemByPosResponse.Item + (*AddExistingItemToPlayerRequest_Item)(nil), // 55: v1.AddExistingItemToPlayerRequest.Item + (*MaterializeLfgProposalRequest_Member)(nil), // 56: v1.MaterializeLfgProposalRequest.Member } var file_worldserver_proto_depIdxs = []int32{ - 26, // 0: v1.GetPlayerItemsByGuidsResponse.items:type_name -> v1.GetPlayerItemsByGuidsResponse.Item - 27, // 1: v1.AddExistingItemToPlayerRequest.item:type_name -> v1.AddExistingItemToPlayerRequest.Item - 1, // 2: v1.AddExistingItemToPlayerResponse.status:type_name -> v1.AddExistingItemToPlayerResponse.Status - 0, // 3: v1.StartBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType - 0, // 4: v1.AddPlayersToBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType - 2, // 5: v1.CanPlayerJoinBattlegroundQueueResponse.status:type_name -> v1.CanPlayerJoinBattlegroundQueueResponse.Status - 3, // 6: v1.CanPlayerTeleportToBattlegroundResponse.status:type_name -> v1.CanPlayerTeleportToBattlegroundResponse.Status - 4, // 7: v1.WorldServerService.GetPlayerItemsByGuids:input_type -> v1.GetPlayerItemsByGuidsRequest - 6, // 8: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:input_type -> v1.RemoveItemsWithGuidsFromPlayerRequest - 8, // 9: v1.WorldServerService.AddExistingItemToPlayer:input_type -> v1.AddExistingItemToPlayerRequest - 10, // 10: v1.WorldServerService.GetMoneyForPlayer:input_type -> v1.GetMoneyForPlayerRequest - 12, // 11: v1.WorldServerService.ModifyMoneyForPlayer:input_type -> v1.ModifyMoneyForPlayerRequest - 14, // 12: v1.WorldServerService.CanPlayerInteractWithNPC:input_type -> v1.CanPlayerInteractWithNPCRequest - 16, // 13: v1.WorldServerService.CanPlayerInteractWithGameObject:input_type -> v1.CanPlayerInteractWithGameObjectRequest - 18, // 14: v1.WorldServerService.StartBattleground:input_type -> v1.StartBattlegroundRequest - 20, // 15: v1.WorldServerService.AddPlayersToBattleground:input_type -> v1.AddPlayersToBattlegroundRequest - 22, // 16: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:input_type -> v1.CanPlayerJoinBattlegroundQueueRequest - 24, // 17: v1.WorldServerService.CanPlayerTeleportToBattleground:input_type -> v1.CanPlayerTeleportToBattlegroundRequest - 5, // 18: v1.WorldServerService.GetPlayerItemsByGuids:output_type -> v1.GetPlayerItemsByGuidsResponse - 7, // 19: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:output_type -> v1.RemoveItemsWithGuidsFromPlayerResponse - 9, // 20: v1.WorldServerService.AddExistingItemToPlayer:output_type -> v1.AddExistingItemToPlayerResponse - 11, // 21: v1.WorldServerService.GetMoneyForPlayer:output_type -> v1.GetMoneyForPlayerResponse - 13, // 22: v1.WorldServerService.ModifyMoneyForPlayer:output_type -> v1.ModifyMoneyForPlayerResponse - 15, // 23: v1.WorldServerService.CanPlayerInteractWithNPC:output_type -> v1.CanPlayerInteractWithNPCResponse - 17, // 24: v1.WorldServerService.CanPlayerInteractWithGameObject:output_type -> v1.CanPlayerInteractWithGameObjectResponse - 19, // 25: v1.WorldServerService.StartBattleground:output_type -> v1.StartBattlegroundResponse - 21, // 26: v1.WorldServerService.AddPlayersToBattleground:output_type -> v1.AddPlayersToBattlegroundResponse - 23, // 27: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:output_type -> v1.CanPlayerJoinBattlegroundQueueResponse - 25, // 28: v1.WorldServerService.CanPlayerTeleportToBattleground:output_type -> v1.CanPlayerTeleportToBattlegroundResponse - 18, // [18:29] is the sub-list for method output_type - 7, // [7:18] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 53, // 0: v1.GetPlayerItemsByGuidsResponse.items:type_name -> v1.GetPlayerItemsByGuidsResponse.Item + 1, // 1: v1.TakePlayerItemByPosResponse.status:type_name -> v1.TakePlayerItemByPosResponse.Status + 54, // 2: v1.TakePlayerItemByPosResponse.item:type_name -> v1.TakePlayerItemByPosResponse.Item + 55, // 3: v1.AddExistingItemToPlayerRequest.item:type_name -> v1.AddExistingItemToPlayerRequest.Item + 2, // 4: v1.AddExistingItemToPlayerResponse.status:type_name -> v1.AddExistingItemToPlayerResponse.Status + 0, // 5: v1.StartBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType + 0, // 6: v1.AddPlayersToBattlegroundRequest.battlegroundTypeID:type_name -> v1.BattlegroundType + 3, // 7: v1.CanPlayerJoinBattlegroundQueueResponse.status:type_name -> v1.CanPlayerJoinBattlegroundQueueResponse.Status + 4, // 8: v1.CanPlayerTeleportToBattlegroundResponse.status:type_name -> v1.CanPlayerTeleportToBattlegroundResponse.Status + 5, // 9: v1.GetLfgPlayerLockInfoResponse.status:type_name -> v1.GetLfgPlayerLockInfoResponse.Status + 36, // 10: v1.GetLfgPlayerLockInfoResponse.locks:type_name -> v1.LfgDungeonLock + 39, // 11: v1.LfgRandomDungeonInfo.rewardItems:type_name -> v1.LfgRewardItem + 6, // 12: v1.GetLfgPlayerInfoResponse.status:type_name -> v1.GetLfgPlayerInfoResponse.Status + 40, // 13: v1.GetLfgPlayerInfoResponse.randomDungeons:type_name -> v1.LfgRandomDungeonInfo + 36, // 14: v1.GetLfgPlayerInfoResponse.locks:type_name -> v1.LfgDungeonLock + 7, // 15: v1.GetLfgDungeonInfoResponse.status:type_name -> v1.GetLfgDungeonInfoResponse.Status + 8, // 16: v1.TeleportLfgPlayerResponse.status:type_name -> v1.TeleportLfgPlayerResponse.Status + 9, // 17: v1.SetLfgBootVoteResponse.status:type_name -> v1.SetLfgBootVoteResponse.Status + 56, // 18: v1.MaterializeLfgProposalRequest.members:type_name -> v1.MaterializeLfgProposalRequest.Member + 10, // 19: v1.MaterializeLfgProposalResponse.status:type_name -> v1.MaterializeLfgProposalResponse.Status + 11, // 20: v1.CreateGuildResponse.status:type_name -> v1.CreateGuildResponse.Status + 12, // 21: v1.WorldServerService.GetPlayerItemsByGuids:input_type -> v1.GetPlayerItemsByGuidsRequest + 14, // 22: v1.WorldServerService.TakePlayerItemByPos:input_type -> v1.TakePlayerItemByPosRequest + 16, // 23: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:input_type -> v1.RemoveItemsWithGuidsFromPlayerRequest + 18, // 24: v1.WorldServerService.AddExistingItemToPlayer:input_type -> v1.AddExistingItemToPlayerRequest + 20, // 25: v1.WorldServerService.GetMoneyForPlayer:input_type -> v1.GetMoneyForPlayerRequest + 22, // 26: v1.WorldServerService.ModifyMoneyForPlayer:input_type -> v1.ModifyMoneyForPlayerRequest + 24, // 27: v1.WorldServerService.CanPlayerInteractWithNPC:input_type -> v1.CanPlayerInteractWithNPCRequest + 26, // 28: v1.WorldServerService.CanPlayerInteractWithGameObject:input_type -> v1.CanPlayerInteractWithGameObjectRequest + 28, // 29: v1.WorldServerService.StartBattleground:input_type -> v1.StartBattlegroundRequest + 30, // 30: v1.WorldServerService.AddPlayersToBattleground:input_type -> v1.AddPlayersToBattlegroundRequest + 32, // 31: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:input_type -> v1.CanPlayerJoinBattlegroundQueueRequest + 34, // 32: v1.WorldServerService.CanPlayerTeleportToBattleground:input_type -> v1.CanPlayerTeleportToBattlegroundRequest + 37, // 33: v1.WorldServerService.GetLfgPlayerLockInfo:input_type -> v1.GetLfgPlayerLockInfoRequest + 41, // 34: v1.WorldServerService.GetLfgPlayerInfo:input_type -> v1.GetLfgPlayerInfoRequest + 43, // 35: v1.WorldServerService.GetLfgDungeonInfo:input_type -> v1.GetLfgDungeonInfoRequest + 45, // 36: v1.WorldServerService.TeleportLfgPlayer:input_type -> v1.TeleportLfgPlayerRequest + 47, // 37: v1.WorldServerService.SetLfgBootVote:input_type -> v1.SetLfgBootVoteRequest + 49, // 38: v1.WorldServerService.MaterializeLfgProposal:input_type -> v1.MaterializeLfgProposalRequest + 51, // 39: v1.WorldServerService.CreateGuild:input_type -> v1.CreateGuildRequest + 13, // 40: v1.WorldServerService.GetPlayerItemsByGuids:output_type -> v1.GetPlayerItemsByGuidsResponse + 15, // 41: v1.WorldServerService.TakePlayerItemByPos:output_type -> v1.TakePlayerItemByPosResponse + 17, // 42: v1.WorldServerService.RemoveItemsWithGuidsFromPlayer:output_type -> v1.RemoveItemsWithGuidsFromPlayerResponse + 19, // 43: v1.WorldServerService.AddExistingItemToPlayer:output_type -> v1.AddExistingItemToPlayerResponse + 21, // 44: v1.WorldServerService.GetMoneyForPlayer:output_type -> v1.GetMoneyForPlayerResponse + 23, // 45: v1.WorldServerService.ModifyMoneyForPlayer:output_type -> v1.ModifyMoneyForPlayerResponse + 25, // 46: v1.WorldServerService.CanPlayerInteractWithNPC:output_type -> v1.CanPlayerInteractWithNPCResponse + 27, // 47: v1.WorldServerService.CanPlayerInteractWithGameObject:output_type -> v1.CanPlayerInteractWithGameObjectResponse + 29, // 48: v1.WorldServerService.StartBattleground:output_type -> v1.StartBattlegroundResponse + 31, // 49: v1.WorldServerService.AddPlayersToBattleground:output_type -> v1.AddPlayersToBattlegroundResponse + 33, // 50: v1.WorldServerService.CanPlayerJoinBattlegroundQueue:output_type -> v1.CanPlayerJoinBattlegroundQueueResponse + 35, // 51: v1.WorldServerService.CanPlayerTeleportToBattleground:output_type -> v1.CanPlayerTeleportToBattlegroundResponse + 38, // 52: v1.WorldServerService.GetLfgPlayerLockInfo:output_type -> v1.GetLfgPlayerLockInfoResponse + 42, // 53: v1.WorldServerService.GetLfgPlayerInfo:output_type -> v1.GetLfgPlayerInfoResponse + 44, // 54: v1.WorldServerService.GetLfgDungeonInfo:output_type -> v1.GetLfgDungeonInfoResponse + 46, // 55: v1.WorldServerService.TeleportLfgPlayer:output_type -> v1.TeleportLfgPlayerResponse + 48, // 56: v1.WorldServerService.SetLfgBootVote:output_type -> v1.SetLfgBootVoteResponse + 50, // 57: v1.WorldServerService.MaterializeLfgProposal:output_type -> v1.MaterializeLfgProposalResponse + 52, // 58: v1.WorldServerService.CreateGuild:output_type -> v1.CreateGuildResponse + 40, // [40:59] is the sub-list for method output_type + 21, // [21:40] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_worldserver_proto_init() } @@ -2243,7 +4584,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveItemsWithGuidsFromPlayerRequest); i { + switch v := v.(*TakePlayerItemByPosRequest); i { case 0: return &v.state case 1: @@ -2255,7 +4596,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveItemsWithGuidsFromPlayerResponse); i { + switch v := v.(*TakePlayerItemByPosResponse); i { case 0: return &v.state case 1: @@ -2267,7 +4608,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddExistingItemToPlayerRequest); i { + switch v := v.(*RemoveItemsWithGuidsFromPlayerRequest); i { case 0: return &v.state case 1: @@ -2279,7 +4620,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddExistingItemToPlayerResponse); i { + switch v := v.(*RemoveItemsWithGuidsFromPlayerResponse); i { case 0: return &v.state case 1: @@ -2291,7 +4632,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMoneyForPlayerRequest); i { + switch v := v.(*AddExistingItemToPlayerRequest); i { case 0: return &v.state case 1: @@ -2303,7 +4644,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMoneyForPlayerResponse); i { + switch v := v.(*AddExistingItemToPlayerResponse); i { case 0: return &v.state case 1: @@ -2315,7 +4656,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ModifyMoneyForPlayerRequest); i { + switch v := v.(*GetMoneyForPlayerRequest); i { case 0: return &v.state case 1: @@ -2327,7 +4668,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ModifyMoneyForPlayerResponse); i { + switch v := v.(*GetMoneyForPlayerResponse); i { case 0: return &v.state case 1: @@ -2339,7 +4680,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithNPCRequest); i { + switch v := v.(*ModifyMoneyForPlayerRequest); i { case 0: return &v.state case 1: @@ -2351,7 +4692,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithNPCResponse); i { + switch v := v.(*ModifyMoneyForPlayerResponse); i { case 0: return &v.state case 1: @@ -2363,7 +4704,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithGameObjectRequest); i { + switch v := v.(*CanPlayerInteractWithNPCRequest); i { case 0: return &v.state case 1: @@ -2375,7 +4716,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerInteractWithGameObjectResponse); i { + switch v := v.(*CanPlayerInteractWithNPCResponse); i { case 0: return &v.state case 1: @@ -2387,7 +4728,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartBattlegroundRequest); i { + switch v := v.(*CanPlayerInteractWithGameObjectRequest); i { case 0: return &v.state case 1: @@ -2399,7 +4740,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartBattlegroundResponse); i { + switch v := v.(*CanPlayerInteractWithGameObjectResponse); i { case 0: return &v.state case 1: @@ -2411,7 +4752,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPlayersToBattlegroundRequest); i { + switch v := v.(*StartBattlegroundRequest); i { case 0: return &v.state case 1: @@ -2423,7 +4764,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddPlayersToBattlegroundResponse); i { + switch v := v.(*StartBattlegroundResponse); i { case 0: return &v.state case 1: @@ -2435,7 +4776,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerJoinBattlegroundQueueRequest); i { + switch v := v.(*AddPlayersToBattlegroundRequest); i { case 0: return &v.state case 1: @@ -2447,7 +4788,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerJoinBattlegroundQueueResponse); i { + switch v := v.(*AddPlayersToBattlegroundResponse); i { case 0: return &v.state case 1: @@ -2459,7 +4800,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerTeleportToBattlegroundRequest); i { + switch v := v.(*CanPlayerJoinBattlegroundQueueRequest); i { case 0: return &v.state case 1: @@ -2471,7 +4812,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CanPlayerTeleportToBattlegroundResponse); i { + switch v := v.(*CanPlayerJoinBattlegroundQueueResponse); i { case 0: return &v.state case 1: @@ -2483,7 +4824,7 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPlayerItemsByGuidsResponse_Item); i { + switch v := v.(*CanPlayerTeleportToBattlegroundRequest); i { case 0: return &v.state case 1: @@ -2495,6 +4836,246 @@ func file_worldserver_proto_init() { } } file_worldserver_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CanPlayerTeleportToBattlegroundResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgDungeonLock); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerLockInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerLockInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgRewardItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LfgRandomDungeonInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgPlayerInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLfgDungeonInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TeleportLfgPlayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TeleportLfgPlayerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgBootVoteRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetLfgBootVoteResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeLfgProposalRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeLfgProposalResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGuildRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGuildResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPlayerItemsByGuidsResponse_Item); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TakePlayerItemByPosResponse_Item); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_worldserver_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddExistingItemToPlayerRequest_Item); i { case 0: return &v.state @@ -2506,14 +5087,26 @@ func file_worldserver_proto_init() { return nil } } + file_worldserver_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeLfgProposalRequest_Member); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_worldserver_proto_rawDesc, - NumEnums: 4, - NumMessages: 24, + NumEnums: 12, + NumMessages: 45, NumExtensions: 0, NumServices: 1, }, diff --git a/gen/worldserver/pb/worldserver_grpc.pb.go b/gen/worldserver/pb/worldserver_grpc.pb.go index 769043a..cf54e4e 100644 --- a/gen/worldserver/pb/worldserver_grpc.pb.go +++ b/gen/worldserver/pb/worldserver_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.20.3 +// - protoc v3.21.12 // source: worldserver.proto package pb @@ -20,6 +20,7 @@ const _ = grpc.SupportPackageIsVersion7 const ( WorldServerService_GetPlayerItemsByGuids_FullMethodName = "/v1.WorldServerService/GetPlayerItemsByGuids" + WorldServerService_TakePlayerItemByPos_FullMethodName = "/v1.WorldServerService/TakePlayerItemByPos" WorldServerService_RemoveItemsWithGuidsFromPlayer_FullMethodName = "/v1.WorldServerService/RemoveItemsWithGuidsFromPlayer" WorldServerService_AddExistingItemToPlayer_FullMethodName = "/v1.WorldServerService/AddExistingItemToPlayer" WorldServerService_GetMoneyForPlayer_FullMethodName = "/v1.WorldServerService/GetMoneyForPlayer" @@ -30,6 +31,13 @@ const ( WorldServerService_AddPlayersToBattleground_FullMethodName = "/v1.WorldServerService/AddPlayersToBattleground" WorldServerService_CanPlayerJoinBattlegroundQueue_FullMethodName = "/v1.WorldServerService/CanPlayerJoinBattlegroundQueue" WorldServerService_CanPlayerTeleportToBattleground_FullMethodName = "/v1.WorldServerService/CanPlayerTeleportToBattleground" + WorldServerService_GetLfgPlayerLockInfo_FullMethodName = "/v1.WorldServerService/GetLfgPlayerLockInfo" + WorldServerService_GetLfgPlayerInfo_FullMethodName = "/v1.WorldServerService/GetLfgPlayerInfo" + WorldServerService_GetLfgDungeonInfo_FullMethodName = "/v1.WorldServerService/GetLfgDungeonInfo" + WorldServerService_TeleportLfgPlayer_FullMethodName = "/v1.WorldServerService/TeleportLfgPlayer" + WorldServerService_SetLfgBootVote_FullMethodName = "/v1.WorldServerService/SetLfgBootVote" + WorldServerService_MaterializeLfgProposal_FullMethodName = "/v1.WorldServerService/MaterializeLfgProposal" + WorldServerService_CreateGuild_FullMethodName = "/v1.WorldServerService/CreateGuild" ) // WorldServerServiceClient is the client API for WorldServerService service. @@ -38,6 +46,7 @@ const ( type WorldServerServiceClient interface { // Items GetPlayerItemsByGuids(ctx context.Context, in *GetPlayerItemsByGuidsRequest, opts ...grpc.CallOption) (*GetPlayerItemsByGuidsResponse, error) + TakePlayerItemByPos(ctx context.Context, in *TakePlayerItemByPosRequest, opts ...grpc.CallOption) (*TakePlayerItemByPosResponse, error) RemoveItemsWithGuidsFromPlayer(ctx context.Context, in *RemoveItemsWithGuidsFromPlayerRequest, opts ...grpc.CallOption) (*RemoveItemsWithGuidsFromPlayerResponse, error) AddExistingItemToPlayer(ctx context.Context, in *AddExistingItemToPlayerRequest, opts ...grpc.CallOption) (*AddExistingItemToPlayerResponse, error) // Money @@ -51,6 +60,15 @@ type WorldServerServiceClient interface { AddPlayersToBattleground(ctx context.Context, in *AddPlayersToBattlegroundRequest, opts ...grpc.CallOption) (*AddPlayersToBattlegroundResponse, error) CanPlayerJoinBattlegroundQueue(ctx context.Context, in *CanPlayerJoinBattlegroundQueueRequest, opts ...grpc.CallOption) (*CanPlayerJoinBattlegroundQueueResponse, error) CanPlayerTeleportToBattleground(ctx context.Context, in *CanPlayerTeleportToBattlegroundRequest, opts ...grpc.CallOption) (*CanPlayerTeleportToBattlegroundResponse, error) + // LFG + GetLfgPlayerLockInfo(ctx context.Context, in *GetLfgPlayerLockInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerLockInfoResponse, error) + GetLfgPlayerInfo(ctx context.Context, in *GetLfgPlayerInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerInfoResponse, error) + GetLfgDungeonInfo(ctx context.Context, in *GetLfgDungeonInfoRequest, opts ...grpc.CallOption) (*GetLfgDungeonInfoResponse, error) + TeleportLfgPlayer(ctx context.Context, in *TeleportLfgPlayerRequest, opts ...grpc.CallOption) (*TeleportLfgPlayerResponse, error) + SetLfgBootVote(ctx context.Context, in *SetLfgBootVoteRequest, opts ...grpc.CallOption) (*SetLfgBootVoteResponse, error) + MaterializeLfgProposal(ctx context.Context, in *MaterializeLfgProposalRequest, opts ...grpc.CallOption) (*MaterializeLfgProposalResponse, error) + // Guilds + CreateGuild(ctx context.Context, in *CreateGuildRequest, opts ...grpc.CallOption) (*CreateGuildResponse, error) } type worldServerServiceClient struct { @@ -70,6 +88,15 @@ func (c *worldServerServiceClient) GetPlayerItemsByGuids(ctx context.Context, in return out, nil } +func (c *worldServerServiceClient) TakePlayerItemByPos(ctx context.Context, in *TakePlayerItemByPosRequest, opts ...grpc.CallOption) (*TakePlayerItemByPosResponse, error) { + out := new(TakePlayerItemByPosResponse) + err := c.cc.Invoke(ctx, WorldServerService_TakePlayerItemByPos_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *worldServerServiceClient) RemoveItemsWithGuidsFromPlayer(ctx context.Context, in *RemoveItemsWithGuidsFromPlayerRequest, opts ...grpc.CallOption) (*RemoveItemsWithGuidsFromPlayerResponse, error) { out := new(RemoveItemsWithGuidsFromPlayerResponse) err := c.cc.Invoke(ctx, WorldServerService_RemoveItemsWithGuidsFromPlayer_FullMethodName, in, out, opts...) @@ -160,12 +187,76 @@ func (c *worldServerServiceClient) CanPlayerTeleportToBattleground(ctx context.C return out, nil } +func (c *worldServerServiceClient) GetLfgPlayerLockInfo(ctx context.Context, in *GetLfgPlayerLockInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerLockInfoResponse, error) { + out := new(GetLfgPlayerLockInfoResponse) + err := c.cc.Invoke(ctx, WorldServerService_GetLfgPlayerLockInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) GetLfgPlayerInfo(ctx context.Context, in *GetLfgPlayerInfoRequest, opts ...grpc.CallOption) (*GetLfgPlayerInfoResponse, error) { + out := new(GetLfgPlayerInfoResponse) + err := c.cc.Invoke(ctx, WorldServerService_GetLfgPlayerInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) GetLfgDungeonInfo(ctx context.Context, in *GetLfgDungeonInfoRequest, opts ...grpc.CallOption) (*GetLfgDungeonInfoResponse, error) { + out := new(GetLfgDungeonInfoResponse) + err := c.cc.Invoke(ctx, WorldServerService_GetLfgDungeonInfo_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) TeleportLfgPlayer(ctx context.Context, in *TeleportLfgPlayerRequest, opts ...grpc.CallOption) (*TeleportLfgPlayerResponse, error) { + out := new(TeleportLfgPlayerResponse) + err := c.cc.Invoke(ctx, WorldServerService_TeleportLfgPlayer_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) SetLfgBootVote(ctx context.Context, in *SetLfgBootVoteRequest, opts ...grpc.CallOption) (*SetLfgBootVoteResponse, error) { + out := new(SetLfgBootVoteResponse) + err := c.cc.Invoke(ctx, WorldServerService_SetLfgBootVote_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) MaterializeLfgProposal(ctx context.Context, in *MaterializeLfgProposalRequest, opts ...grpc.CallOption) (*MaterializeLfgProposalResponse, error) { + out := new(MaterializeLfgProposalResponse) + err := c.cc.Invoke(ctx, WorldServerService_MaterializeLfgProposal_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *worldServerServiceClient) CreateGuild(ctx context.Context, in *CreateGuildRequest, opts ...grpc.CallOption) (*CreateGuildResponse, error) { + out := new(CreateGuildResponse) + err := c.cc.Invoke(ctx, WorldServerService_CreateGuild_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // WorldServerServiceServer is the server API for WorldServerService service. // All implementations must embed UnimplementedWorldServerServiceServer // for forward compatibility type WorldServerServiceServer interface { // Items GetPlayerItemsByGuids(context.Context, *GetPlayerItemsByGuidsRequest) (*GetPlayerItemsByGuidsResponse, error) + TakePlayerItemByPos(context.Context, *TakePlayerItemByPosRequest) (*TakePlayerItemByPosResponse, error) RemoveItemsWithGuidsFromPlayer(context.Context, *RemoveItemsWithGuidsFromPlayerRequest) (*RemoveItemsWithGuidsFromPlayerResponse, error) AddExistingItemToPlayer(context.Context, *AddExistingItemToPlayerRequest) (*AddExistingItemToPlayerResponse, error) // Money @@ -179,6 +270,15 @@ type WorldServerServiceServer interface { AddPlayersToBattleground(context.Context, *AddPlayersToBattlegroundRequest) (*AddPlayersToBattlegroundResponse, error) CanPlayerJoinBattlegroundQueue(context.Context, *CanPlayerJoinBattlegroundQueueRequest) (*CanPlayerJoinBattlegroundQueueResponse, error) CanPlayerTeleportToBattleground(context.Context, *CanPlayerTeleportToBattlegroundRequest) (*CanPlayerTeleportToBattlegroundResponse, error) + // LFG + GetLfgPlayerLockInfo(context.Context, *GetLfgPlayerLockInfoRequest) (*GetLfgPlayerLockInfoResponse, error) + GetLfgPlayerInfo(context.Context, *GetLfgPlayerInfoRequest) (*GetLfgPlayerInfoResponse, error) + GetLfgDungeonInfo(context.Context, *GetLfgDungeonInfoRequest) (*GetLfgDungeonInfoResponse, error) + TeleportLfgPlayer(context.Context, *TeleportLfgPlayerRequest) (*TeleportLfgPlayerResponse, error) + SetLfgBootVote(context.Context, *SetLfgBootVoteRequest) (*SetLfgBootVoteResponse, error) + MaterializeLfgProposal(context.Context, *MaterializeLfgProposalRequest) (*MaterializeLfgProposalResponse, error) + // Guilds + CreateGuild(context.Context, *CreateGuildRequest) (*CreateGuildResponse, error) mustEmbedUnimplementedWorldServerServiceServer() } @@ -189,6 +289,9 @@ type UnimplementedWorldServerServiceServer struct { func (UnimplementedWorldServerServiceServer) GetPlayerItemsByGuids(context.Context, *GetPlayerItemsByGuidsRequest) (*GetPlayerItemsByGuidsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetPlayerItemsByGuids not implemented") } +func (UnimplementedWorldServerServiceServer) TakePlayerItemByPos(context.Context, *TakePlayerItemByPosRequest) (*TakePlayerItemByPosResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TakePlayerItemByPos not implemented") +} func (UnimplementedWorldServerServiceServer) RemoveItemsWithGuidsFromPlayer(context.Context, *RemoveItemsWithGuidsFromPlayerRequest) (*RemoveItemsWithGuidsFromPlayerResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RemoveItemsWithGuidsFromPlayer not implemented") } @@ -219,6 +322,27 @@ func (UnimplementedWorldServerServiceServer) CanPlayerJoinBattlegroundQueue(cont func (UnimplementedWorldServerServiceServer) CanPlayerTeleportToBattleground(context.Context, *CanPlayerTeleportToBattlegroundRequest) (*CanPlayerTeleportToBattlegroundResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CanPlayerTeleportToBattleground not implemented") } +func (UnimplementedWorldServerServiceServer) GetLfgPlayerLockInfo(context.Context, *GetLfgPlayerLockInfoRequest) (*GetLfgPlayerLockInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgPlayerLockInfo not implemented") +} +func (UnimplementedWorldServerServiceServer) GetLfgPlayerInfo(context.Context, *GetLfgPlayerInfoRequest) (*GetLfgPlayerInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgPlayerInfo not implemented") +} +func (UnimplementedWorldServerServiceServer) GetLfgDungeonInfo(context.Context, *GetLfgDungeonInfoRequest) (*GetLfgDungeonInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetLfgDungeonInfo not implemented") +} +func (UnimplementedWorldServerServiceServer) TeleportLfgPlayer(context.Context, *TeleportLfgPlayerRequest) (*TeleportLfgPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method TeleportLfgPlayer not implemented") +} +func (UnimplementedWorldServerServiceServer) SetLfgBootVote(context.Context, *SetLfgBootVoteRequest) (*SetLfgBootVoteResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetLfgBootVote not implemented") +} +func (UnimplementedWorldServerServiceServer) MaterializeLfgProposal(context.Context, *MaterializeLfgProposalRequest) (*MaterializeLfgProposalResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MaterializeLfgProposal not implemented") +} +func (UnimplementedWorldServerServiceServer) CreateGuild(context.Context, *CreateGuildRequest) (*CreateGuildResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateGuild not implemented") +} func (UnimplementedWorldServerServiceServer) mustEmbedUnimplementedWorldServerServiceServer() {} // UnsafeWorldServerServiceServer may be embedded to opt out of forward compatibility for this service. @@ -250,6 +374,24 @@ func _WorldServerService_GetPlayerItemsByGuids_Handler(srv interface{}, ctx cont return interceptor(ctx, in, info, handler) } +func _WorldServerService_TakePlayerItemByPos_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TakePlayerItemByPosRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).TakePlayerItemByPos(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_TakePlayerItemByPos_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).TakePlayerItemByPos(ctx, req.(*TakePlayerItemByPosRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _WorldServerService_RemoveItemsWithGuidsFromPlayer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RemoveItemsWithGuidsFromPlayerRequest) if err := dec(in); err != nil { @@ -430,6 +572,132 @@ func _WorldServerService_CanPlayerTeleportToBattleground_Handler(srv interface{} return interceptor(ctx, in, info, handler) } +func _WorldServerService_GetLfgPlayerLockInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgPlayerLockInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).GetLfgPlayerLockInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_GetLfgPlayerLockInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).GetLfgPlayerLockInfo(ctx, req.(*GetLfgPlayerLockInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_GetLfgPlayerInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgPlayerInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).GetLfgPlayerInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_GetLfgPlayerInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).GetLfgPlayerInfo(ctx, req.(*GetLfgPlayerInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_GetLfgDungeonInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetLfgDungeonInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).GetLfgDungeonInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_GetLfgDungeonInfo_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).GetLfgDungeonInfo(ctx, req.(*GetLfgDungeonInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_TeleportLfgPlayer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TeleportLfgPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).TeleportLfgPlayer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_TeleportLfgPlayer_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).TeleportLfgPlayer(ctx, req.(*TeleportLfgPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_SetLfgBootVote_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetLfgBootVoteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).SetLfgBootVote(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_SetLfgBootVote_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).SetLfgBootVote(ctx, req.(*SetLfgBootVoteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_MaterializeLfgProposal_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MaterializeLfgProposalRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).MaterializeLfgProposal(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_MaterializeLfgProposal_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).MaterializeLfgProposal(ctx, req.(*MaterializeLfgProposalRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorldServerService_CreateGuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateGuildRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorldServerServiceServer).CreateGuild(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorldServerService_CreateGuild_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorldServerServiceServer).CreateGuild(ctx, req.(*CreateGuildRequest)) + } + return interceptor(ctx, in, info, handler) +} + // WorldServerService_ServiceDesc is the grpc.ServiceDesc for WorldServerService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -441,6 +709,10 @@ var WorldServerService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetPlayerItemsByGuids", Handler: _WorldServerService_GetPlayerItemsByGuids_Handler, }, + { + MethodName: "TakePlayerItemByPos", + Handler: _WorldServerService_TakePlayerItemByPos_Handler, + }, { MethodName: "RemoveItemsWithGuidsFromPlayer", Handler: _WorldServerService_RemoveItemsWithGuidsFromPlayer_Handler, @@ -481,6 +753,34 @@ var WorldServerService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CanPlayerTeleportToBattleground", Handler: _WorldServerService_CanPlayerTeleportToBattleground_Handler, }, + { + MethodName: "GetLfgPlayerLockInfo", + Handler: _WorldServerService_GetLfgPlayerLockInfo_Handler, + }, + { + MethodName: "GetLfgPlayerInfo", + Handler: _WorldServerService_GetLfgPlayerInfo_Handler, + }, + { + MethodName: "GetLfgDungeonInfo", + Handler: _WorldServerService_GetLfgDungeonInfo_Handler, + }, + { + MethodName: "TeleportLfgPlayer", + Handler: _WorldServerService_TeleportLfgPlayer_Handler, + }, + { + MethodName: "SetLfgBootVote", + Handler: _WorldServerService_SetLfgBootVote_Handler, + }, + { + MethodName: "MaterializeLfgProposal", + Handler: _WorldServerService_MaterializeLfgProposal_Handler, + }, + { + MethodName: "CreateGuild", + Handler: _WorldServerService_CreateGuild_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "worldserver.proto", diff --git a/go.mod b/go.mod index efd3cfb..a58dd15 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.22 require ( github.com/go-mysql-org/go-mysql v1.10.1-0.20241221150101-2f4217957dd5 github.com/go-sql-driver/mysql v1.8.1 + github.com/google/uuid v1.6.0 github.com/ilyakaznacheev/cleanenv v1.5.0 github.com/nats-io/nats.go v1.38.0 github.com/pingcap/tidb/pkg/parser v0.0.0-20250124080159-3f742662039e @@ -21,13 +22,13 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/BurntSushi/toml v1.4.0 // indirect + github.com/DATA-DOG/go-sqlmock v1.5.2 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/goccy/go-json v0.10.2 // indirect - github.com/google/uuid v1.6.0 // indirect github.com/joho/godotenv v1.5.1 // indirect github.com/klauspost/compress v1.17.11 // indirect github.com/mattn/go-colorable v0.1.14 // indirect diff --git a/go.sum b/go.sum index fab66ab..4aa21fb 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -42,6 +44,7 @@ github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2l github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk= github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= +github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= diff --git a/shared/authidentity/identity.go b/shared/authidentity/identity.go new file mode 100644 index 0000000..388f1ed --- /dev/null +++ b/shared/authidentity/identity.go @@ -0,0 +1,116 @@ +package authidentity + +import "strings" + +const ( + MaxClassicUsernameLen = 16 + MaxEmailLen = 255 +) + +func NormalizeLoginIdentity(identity string) string { + return strings.TrimSpace(identity) +} + +func IsValidLoginIdentity(identity string) bool { + normalized := NormalizeLoginIdentity(identity) + if identity != normalized { + return false + } + return IsValidClassicUsername(normalized) +} + +func IsValidClassicUsername(username string) bool { + if len(username) == 0 || len(username) > MaxClassicUsernameLen { + return false + } + for i := 0; i < len(username); i++ { + c := username[i] + if isASCIILetter(c) || isASCIIDigit(c) || c == '_' || c == '-' || c == '.' { + continue + } + return false + } + return true +} + +func IsValidEmail(email string) bool { + normalized := NormalizeLoginIdentity(email) + if email != normalized { + return false + } + email = normalized + if len(email) == 0 || len(email) > MaxEmailLen || !isPrintableASCII(email) { + return false + } + if strings.Count(email, "@") != 1 { + return false + } + + parts := strings.Split(email, "@") + local, domain := parts[0], parts[1] + if !isValidEmailLocalPart(local) || !isValidEmailDomain(domain) { + return false + } + return true +} + +func isValidEmailLocalPart(local string) bool { + if len(local) == 0 || len(local) > 64 { + return false + } + if local[0] == '.' || local[len(local)-1] == '.' || strings.Contains(local, "..") { + return false + } + for i := 0; i < len(local); i++ { + c := local[i] + if isASCIILetter(c) || isASCIIDigit(c) { + continue + } + switch c { + case '.', '_', '%', '+', '-': + continue + default: + return false + } + } + return true +} + +func isValidEmailDomain(domain string) bool { + if len(domain) == 0 || len(domain) > 253 || !strings.Contains(domain, ".") { + return false + } + labels := strings.Split(domain, ".") + for _, label := range labels { + if len(label) == 0 || len(label) > 63 { + return false + } + if label[0] == '-' || label[len(label)-1] == '-' { + return false + } + for i := 0; i < len(label); i++ { + c := label[i] + if !isASCIILetter(c) && !isASCIIDigit(c) && c != '-' { + return false + } + } + } + return true +} + +func isPrintableASCII(value string) bool { + for i := 0; i < len(value); i++ { + if value[i] < 0x21 || value[i] > 0x7E { + return false + } + } + return true +} + +func isASCIILetter(c byte) bool { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') +} + +func isASCIIDigit(c byte) bool { + return c >= '0' && c <= '9' +} diff --git a/shared/events/consumer-gateway.go b/shared/events/consumer-gateway.go index d7b33d3..60d86c4 100644 --- a/shared/events/consumer-gateway.go +++ b/shared/events/consumer-gateway.go @@ -10,6 +10,11 @@ type GWCharacterLoggedInHandler interface { HandleCharacterLoggedIn(payload GWEventCharacterLoggedInPayload) error } +type GWGatewayStartedHandler interface { + // HandleGatewayStarted handles gateway lifecycle start events. + HandleGatewayStarted(payload GWEventGatewayStartedPayload) error +} + type GWCharacterLoggedOutHandler interface { // HandleCharacterLoggedOut handles player logged out events. HandleCharacterLoggedOut(payload GWEventCharacterLoggedOutPayload) error @@ -20,6 +25,11 @@ type GWCharactersUpdatesHandler interface { HandleCharactersUpdates(payload GWEventCharactersUpdatesPayload) error } +type GWGuildCreatedHandler interface { + // HandleGuildCreated handles guild creation events observed by gateway. + HandleGuildCreated(payload GWEventGuildCreatedPayload) error +} + // GatewayConsumer listens to gateway events and handles events if there are handlers. type GatewayConsumer interface { // Listen is non-blocking operation that listens to the gateway events. @@ -37,10 +47,12 @@ func NewGatewayConsumer(nc *nats.Conn, options ...GatewayConsumerOption) Gateway opt.apply(params) } return &gatewayConsumerImpl{ - nc: nc, - loggedInHandler: params.loggedInHandler, - loggedOutHandler: params.loggedOutHandler, - charsUpdatesHandler: params.charsUpdatesHandler, + nc: nc, + gatewayStartedHandler: params.gatewayStartedHandler, + loggedInHandler: params.loggedInHandler, + loggedOutHandler: params.loggedOutHandler, + charsUpdatesHandler: params.charsUpdatesHandler, + guildCreatedHandler: params.guildCreatedHandler, } } @@ -49,6 +61,14 @@ type GatewayConsumerOption interface { apply(*gatewayConsumerParams) } +// WithGWConsumerGatewayStartedHandler creates gateway consumer option with gateway started handler. +// If not specified, listener will ignore this kind of events. +func WithGWConsumerGatewayStartedHandler(h GWGatewayStartedHandler) GatewayConsumerOption { + return newFuncGatewayConsumerOption(func(params *gatewayConsumerParams) { + params.gatewayStartedHandler = h + }) +} + // WithGWConsumerLoggedInHandler creates gateway consumer option with logged in handler. // If not specified, listener will ignore these kind of events. func WithGWConsumerLoggedInHandler(h GWCharacterLoggedInHandler) GatewayConsumerOption { @@ -73,6 +93,14 @@ func WithGWConsumerCharsUpdatesHandler(h GWCharactersUpdatesHandler) GatewayCons }) } +// WithGWConsumerGuildCreatedHandler creates gateway consumer option with guild created handler. +// If not specified, listener will ignore this kind of events. +func WithGWConsumerGuildCreatedHandler(h GWGuildCreatedHandler) GatewayConsumerOption { + return newFuncGatewayConsumerOption(func(params *gatewayConsumerParams) { + params.guildCreatedHandler = h + }) +} + // funcGatewayConsumerOption wraps a function that modifies funcGatewayConsumerOption into an // implementation of the GatewayConsumerOption interface. type funcGatewayConsumerOption struct { @@ -91,9 +119,11 @@ func newFuncGatewayConsumerOption(f func(*gatewayConsumerParams)) *funcGatewayCo // gatewayConsumerParams list of all possible parameters of GatewayConsumer. type gatewayConsumerParams struct { - loggedInHandler GWCharacterLoggedInHandler - loggedOutHandler GWCharacterLoggedOutHandler - charsUpdatesHandler GWCharactersUpdatesHandler + gatewayStartedHandler GWGatewayStartedHandler + loggedInHandler GWCharacterLoggedInHandler + loggedOutHandler GWCharacterLoggedOutHandler + charsUpdatesHandler GWCharactersUpdatesHandler + guildCreatedHandler GWGuildCreatedHandler } // gatewayConsumerImpl implementation of GatewayConsumer. @@ -102,13 +132,37 @@ type gatewayConsumerImpl struct { // subs is all subscriptions list. subs []*nats.Subscription - loggedInHandler GWCharacterLoggedInHandler - loggedOutHandler GWCharacterLoggedOutHandler - charsUpdatesHandler GWCharactersUpdatesHandler + gatewayStartedHandler GWGatewayStartedHandler + loggedInHandler GWCharacterLoggedInHandler + loggedOutHandler GWCharacterLoggedOutHandler + charsUpdatesHandler GWCharactersUpdatesHandler + guildCreatedHandler GWGuildCreatedHandler } // Listen is non-blocking operation that listens to gateway events. func (c *gatewayConsumerImpl) Listen() error { + if c.gatewayStartedHandler != nil { + sub, err := c.nc.Subscribe(GWEventGatewayStarted.SubjectName(), func(msg *nats.Msg) { + payload := GWEventGatewayStartedPayload{} + _, err := Unmarshal(msg.Data, &payload) + if err != nil { + log.Error().Err(err).Msg("can't read GWEventGatewayStarted (payload part) event") + return + } + + err = c.gatewayStartedHandler.HandleGatewayStarted(payload) + if err != nil { + log.Error().Err(err).Msg("can't handle GWEventGatewayStarted event") + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) + } + if c.loggedInHandler != nil { sub, err := c.nc.Subscribe(GWEventCharacterLoggedIn.SubjectName(), func(msg *nats.Msg) { loggedInP := GWEventCharacterLoggedInPayload{} @@ -175,6 +229,28 @@ func (c *gatewayConsumerImpl) Listen() error { c.subs = append(c.subs, sub) } + if c.guildCreatedHandler != nil { + sub, err := c.nc.Subscribe(GWEventGuildCreated.SubjectName(), func(msg *nats.Msg) { + guildCreatedP := GWEventGuildCreatedPayload{} + _, err := Unmarshal(msg.Data, &guildCreatedP) + if err != nil { + log.Error().Err(err).Msg("can't read GWEventGuildCreated (payload part) event") + return + } + + err = c.guildCreatedHandler.HandleGuildCreated(guildCreatedP) + if err != nil { + log.Error().Err(err).Msg("can't handle GWEventGuildCreated event") + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) + } + return nil } diff --git a/shared/events/consumer-group.go b/shared/events/consumer-group.go index 086bee8..caa68dc 100644 --- a/shared/events/consumer-group.go +++ b/shared/events/consumer-group.go @@ -10,6 +10,11 @@ type GroupEventInviteCreatedHandler interface { GroupInviteCreatedEvent(payload *GroupEventInviteCreatedPayload) error } +type GroupEventInviteDeclinedHandler interface { + // GroupInviteDeclinedEvent handles group invite declined events. + GroupInviteDeclinedEvent(payload *GroupEventInviteDeclinedPayload) error +} + type GroupEventGroupCreatedHandler interface { // GroupCreatedEvent handles group invite created events. GroupCreatedEvent(payload *GroupEventGroupCreatedPayload) error @@ -65,6 +70,42 @@ type GroupEventGroupDifficultyChangedHandler interface { GroupDifficultyChangedEvent(payload *GroupEventGroupDifficultyChangedPayload) error } +type GroupEventReadyCheckStartedHandler interface { + GroupReadyCheckStartedEvent(payload *GroupEventReadyCheckStartedPayload) error +} + +type GroupEventReadyCheckMemberStateHandler interface { + GroupReadyCheckMemberStateEvent(payload *GroupEventReadyCheckMemberStatePayload) error +} + +type GroupEventReadyCheckFinishedHandler interface { + GroupReadyCheckFinishedEvent(payload *GroupEventReadyCheckFinishedPayload) error +} + +type GroupEventMemberSubGroupChangedHandler interface { + GroupMemberSubGroupChangedEvent(payload *GroupEventMemberSubGroupChangedPayload) error +} + +type GroupEventMemberFlagsChangedHandler interface { + GroupMemberFlagsChangedEvent(payload *GroupEventMemberFlagsChangedPayload) error +} + +type GroupEventMemberStateChangedHandler interface { + GroupMemberStateChangedEvent(payload *GroupEventMemberStateChangedPayload) error +} + +type GroupEventMemberStatesChangedHandler interface { + GroupMemberStatesChangedEvent(payload *GroupEventMemberStatesChangedPayload) error +} + +type GroupEventInstanceResetRequestHandler interface { + GroupInstanceResetRequestEvent(payload *GroupEventInstanceResetRequestPayload) error +} + +type GroupEventInstanceBindExtensionRequestHandler interface { + GroupInstanceBindExtensionRequestEvent(payload *GroupEventInstanceBindExtensionRequestPayload) error +} + // GroupEventsConsumer listens to group events and handles events if there are handlers. type GroupEventsConsumer interface { // Listen is non-blocking operation that listens to the group events. @@ -84,6 +125,7 @@ func NewGroupEventsConsumer(nc *nats.Conn, options ...GroupEventsConsumerOption) return &groupEventsConsumerImpl{ nc: nc, inviteCreatedHandler: params.inviteCreatedHandler, + inviteDeclinedHandler: params.inviteDeclinedHandler, groupCreatedHandler: params.groupCreatedHandler, groupMemberOnlineStatusChangedHandler: params.groupMemberOnlineStatusChangedHandler, groupMemberLeftHandler: params.groupMemberLeftHandler, @@ -95,6 +137,15 @@ func NewGroupEventsConsumer(nc *nats.Conn, options ...GroupEventsConsumerOption) newMessageHandler: params.newMessageHandler, newTargetIconHandler: params.newTargetIconHandler, difficultyChangedHandler: params.difficultyChangedHandler, + readyCheckStartedHandler: params.readyCheckStartedHandler, + readyCheckMemberStateHandler: params.readyCheckMemberStateHandler, + readyCheckFinishedHandler: params.readyCheckFinishedHandler, + memberSubGroupChangedHandler: params.memberSubGroupChangedHandler, + memberFlagsChangedHandler: params.memberFlagsChangedHandler, + memberStateChangedHandler: params.memberStateChangedHandler, + memberStatesChangedHandler: params.memberStatesChangedHandler, + instanceResetRequestHandler: params.instanceResetRequestHandler, + instanceBindExtensionRequestHandler: params.instanceBindExtensionRequestHandler, } } @@ -111,6 +162,14 @@ func WithGroupEventConsumerInviteCreatedHandler(h GroupEventInviteCreatedHandler }) } +// WithGroupEventConsumerInviteDeclinedHandler creates group events consumer option with invite declined handler. +// If not specified, listener will ignore this kind of events. +func WithGroupEventConsumerInviteDeclinedHandler(h GroupEventInviteDeclinedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.inviteDeclinedHandler = h + }) +} + // WithGroupEventConsumerGroupCreatedHandler creates group events consumer option with group created handler. // If not specified, listener will ignore this kind of events. func WithGroupEventConsumerGroupCreatedHandler(h GroupEventGroupCreatedHandler) GroupEventsConsumerOption { @@ -200,6 +259,60 @@ func WithGroupDifficultyChangedHandler(h GroupEventGroupDifficultyChangedHandler }) } +func WithGroupEventReadyCheckStartedHandler(h GroupEventReadyCheckStartedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.readyCheckStartedHandler = h + }) +} + +func WithGroupEventReadyCheckMemberStateHandler(h GroupEventReadyCheckMemberStateHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.readyCheckMemberStateHandler = h + }) +} + +func WithGroupEventReadyCheckFinishedHandler(h GroupEventReadyCheckFinishedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.readyCheckFinishedHandler = h + }) +} + +func WithGroupEventMemberSubGroupChangedHandler(h GroupEventMemberSubGroupChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberSubGroupChangedHandler = h + }) +} + +func WithGroupEventMemberFlagsChangedHandler(h GroupEventMemberFlagsChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberFlagsChangedHandler = h + }) +} + +func WithGroupEventMemberStateChangedHandler(h GroupEventMemberStateChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberStateChangedHandler = h + }) +} + +func WithGroupEventMemberStatesChangedHandler(h GroupEventMemberStatesChangedHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.memberStatesChangedHandler = h + }) +} + +func WithGroupEventInstanceResetRequestHandler(h GroupEventInstanceResetRequestHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.instanceResetRequestHandler = h + }) +} + +func WithGroupEventInstanceBindExtensionRequestHandler(h GroupEventInstanceBindExtensionRequestHandler) GroupEventsConsumerOption { + return newFuncGroupEventsConsumerOption(func(params *groupEventsConsumerParams) { + params.instanceBindExtensionRequestHandler = h + }) +} + // funcGatewayConsumerOption wraps a function that modifies funcGatewayConsumerOption into an // implementation of the GatewayConsumerOption interface. type funcGroupEventsConsumerOption struct { @@ -219,6 +332,7 @@ func newFuncGroupEventsConsumerOption(f func(*groupEventsConsumerParams)) *funcG // groupEventsConsumerParams list of all possible parameters of GroupEventsConsumer. type groupEventsConsumerParams struct { inviteCreatedHandler GroupEventInviteCreatedHandler + inviteDeclinedHandler GroupEventInviteDeclinedHandler groupCreatedHandler GroupEventGroupCreatedHandler groupMemberOnlineStatusChangedHandler GroupEventGroupMemberOnlineStatusChangedHandler groupMemberLeftHandler GroupEventGroupMemberLeftHandler @@ -230,6 +344,15 @@ type groupEventsConsumerParams struct { newMessageHandler GroupEventNewMessageHandler newTargetIconHandler GroupEventNewTargetIconHandler difficultyChangedHandler GroupEventGroupDifficultyChangedHandler + readyCheckStartedHandler GroupEventReadyCheckStartedHandler + readyCheckMemberStateHandler GroupEventReadyCheckMemberStateHandler + readyCheckFinishedHandler GroupEventReadyCheckFinishedHandler + memberSubGroupChangedHandler GroupEventMemberSubGroupChangedHandler + memberFlagsChangedHandler GroupEventMemberFlagsChangedHandler + memberStateChangedHandler GroupEventMemberStateChangedHandler + memberStatesChangedHandler GroupEventMemberStatesChangedHandler + instanceResetRequestHandler GroupEventInstanceResetRequestHandler + instanceBindExtensionRequestHandler GroupEventInstanceBindExtensionRequestHandler } // groupEventsConsumerImpl implementation of GroupEventsConsumer. @@ -239,6 +362,7 @@ type groupEventsConsumerImpl struct { subs []*nats.Subscription inviteCreatedHandler GroupEventInviteCreatedHandler + inviteDeclinedHandler GroupEventInviteDeclinedHandler groupCreatedHandler GroupEventGroupCreatedHandler groupMemberOnlineStatusChangedHandler GroupEventGroupMemberOnlineStatusChangedHandler groupMemberLeftHandler GroupEventGroupMemberLeftHandler @@ -250,6 +374,15 @@ type groupEventsConsumerImpl struct { newMessageHandler GroupEventNewMessageHandler newTargetIconHandler GroupEventNewTargetIconHandler difficultyChangedHandler GroupEventGroupDifficultyChangedHandler + readyCheckStartedHandler GroupEventReadyCheckStartedHandler + readyCheckMemberStateHandler GroupEventReadyCheckMemberStateHandler + readyCheckFinishedHandler GroupEventReadyCheckFinishedHandler + memberSubGroupChangedHandler GroupEventMemberSubGroupChangedHandler + memberFlagsChangedHandler GroupEventMemberFlagsChangedHandler + memberStateChangedHandler GroupEventMemberStateChangedHandler + memberStatesChangedHandler GroupEventMemberStatesChangedHandler + instanceResetRequestHandler GroupEventInstanceResetRequestHandler + instanceBindExtensionRequestHandler GroupEventInstanceBindExtensionRequestHandler } // Listen is non-blocking operation that listens to gateway events. @@ -276,6 +409,28 @@ func (c *groupEventsConsumerImpl) Listen() error { c.subs = append(c.subs, sub) } + if c.inviteDeclinedHandler != nil { + sub, err := c.nc.Subscribe(GroupEventInviteDeclined.SubjectName(), func(msg *nats.Msg) { + payload := GroupEventInviteDeclinedPayload{} + _, err := Unmarshal(msg.Data, &payload) + if err != nil { + log.Error().Err(err).Msg("can't read GroupEventInviteDeclined (payload part) event") + return + } + + err = c.inviteDeclinedHandler.GroupInviteDeclinedEvent(&payload) + if err != nil { + log.Error().Err(err).Msg("can't handle GroupEventInviteDeclined event") + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) + } + if c.groupCreatedHandler != nil { sub, err := c.nc.Subscribe(GroupEventGroupCreated.SubjectName(), func(msg *nats.Msg) { payload := GroupEventGroupCreatedPayload{} @@ -518,6 +673,82 @@ func (c *groupEventsConsumerImpl) Listen() error { c.subs = append(c.subs, sub) } + if c.readyCheckStartedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupReadyCheckStarted, "GroupEventGroupReadyCheckStarted", c.readyCheckStartedHandler.GroupReadyCheckStartedEvent); err != nil { + return err + } + } + + if c.readyCheckMemberStateHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupReadyCheckMemberState, "GroupEventGroupReadyCheckMemberState", c.readyCheckMemberStateHandler.GroupReadyCheckMemberStateEvent); err != nil { + return err + } + } + + if c.readyCheckFinishedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupReadyCheckFinished, "GroupEventGroupReadyCheckFinished", c.readyCheckFinishedHandler.GroupReadyCheckFinishedEvent); err != nil { + return err + } + } + + if c.memberSubGroupChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberSubGroupChanged, "GroupEventGroupMemberSubGroupChanged", c.memberSubGroupChangedHandler.GroupMemberSubGroupChangedEvent); err != nil { + return err + } + } + + if c.memberFlagsChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberFlagsChanged, "GroupEventGroupMemberFlagsChanged", c.memberFlagsChangedHandler.GroupMemberFlagsChangedEvent); err != nil { + return err + } + } + + if c.memberStateChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberStateChanged, "GroupEventGroupMemberStateChanged", c.memberStateChangedHandler.GroupMemberStateChangedEvent); err != nil { + return err + } + } + + if c.memberStatesChangedHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupMemberStatesChanged, "GroupEventGroupMemberStatesChanged", c.memberStatesChangedHandler.GroupMemberStatesChangedEvent); err != nil { + return err + } + } + + if c.instanceResetRequestHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupInstanceResetRequest, "GroupEventGroupInstanceResetRequest", c.instanceResetRequestHandler.GroupInstanceResetRequestEvent); err != nil { + return err + } + } + + if c.instanceBindExtensionRequestHandler != nil { + if err := subscribeGroupEvent(c, GroupEventGroupInstanceBindExtensionRequest, "GroupEventGroupInstanceBindExtensionRequest", c.instanceBindExtensionRequestHandler.GroupInstanceBindExtensionRequestEvent); err != nil { + return err + } + } + + return nil +} + +func subscribeGroupEvent[T any](c *groupEventsConsumerImpl, event GroupServiceEvent, eventName string, handler func(*T) error) error { + sub, err := c.nc.Subscribe(event.SubjectName(), func(msg *nats.Msg) { + payload := new(T) + _, err := Unmarshal(msg.Data, payload) + if err != nil { + log.Error().Err(err).Msgf("can't read %s (payload part) event", eventName) + return + } + + if err = handler(payload); err != nil { + log.Error().Err(err).Msgf("can't handle %s event", eventName) + return + } + }) + if err != nil { + return err + } + + c.subs = append(c.subs, sub) return nil } diff --git a/shared/events/events-characters.go b/shared/events/events-characters.go index 2046c31..24eb9af 100644 --- a/shared/events/events-characters.go +++ b/shared/events/events-characters.go @@ -8,6 +8,12 @@ type CharactersServiceEvent int const ( // CharEventCharsDisconnectedUnhealthyGW event that contains players that were connected to unhealthy gateway CharEventCharsDisconnectedUnhealthyGW CharactersServiceEvent = iota + 1 + + // CharEventArenaTeamInviteCreated is emitted when charserver accepts an arena team invite request. + CharEventArenaTeamInviteCreated + + // CharEventArenaTeamNativeEvent is emitted after a committed arena team mutation. + CharEventArenaTeamNativeEvent ) // SubjectName is key that nats uses @@ -15,13 +21,37 @@ func (e CharactersServiceEvent) SubjectName() string { switch e { case CharEventCharsDisconnectedUnhealthyGW: return "char.chars.unhealthy.gw" + case CharEventArenaTeamInviteCreated: + return "char.arena-team.invite-created" + case CharEventArenaTeamNativeEvent: + return "char.arena-team.native-event" } panic(fmt.Errorf("unk event %d", e)) } // CharEventCharsDisconnectedUnhealthyGWPayload represents payload of CharEventCharsDisconnectedUnhealthyGW event type CharEventCharsDisconnectedUnhealthyGWPayload struct { - RealmID uint32 - GatewayID string - CharactersGUID []uint64 + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + CharactersGUID []uint64 +} + +type CharEventArenaTeamInviteCreatedPayload struct { + RealmID uint32 + TargetGUID uint64 + TargetName string + InviterGUID uint64 + InviterName string + ArenaTeamID uint32 + TeamName string +} + +type CharEventArenaTeamNativeEventPayload struct { + RealmID uint32 + ReceiverGUIDs []uint64 + ArenaTeamID uint32 + Event uint8 + EventGUID uint64 + Args []string } diff --git a/shared/events/events-chat.go b/shared/events/events-chat.go index b8e0557..98f1257 100644 --- a/shared/events/events-chat.go +++ b/shared/events/events-chat.go @@ -37,45 +37,59 @@ func (e ChatServiceEvent) SubjectName(gatewayID string) string { // ChatEventIncomingWhisperPayload represents payload of ChatEventIncomingWhisper event type ChatEventIncomingWhisperPayload struct { - SenderGUID uint64 - SenderName string - SenderRace uint8 - ReceiverGUID uint64 - ReceiverName string - Language uint32 - Msg string + SenderRealmID uint32 + SenderGUID uint64 + SenderName string + SenderRace uint8 + SenderClass uint8 + SenderGender uint8 + SenderChatTag uint8 + ReceiverRealmID uint32 + ReceiverGUID uint64 + ReceiverName string + Language uint32 + Msg string } // ChatEventChannelMessagePayload represents payload of ChatEventChannelMessage event type ChatEventChannelMessagePayload struct { - RealmID uint32 - ChannelName string - ChannelID uint32 - SenderGUID uint64 - SenderName string - Language uint32 - Message string + RealmID uint32 + ChannelName string + ChannelID uint32 + TeamID uint32 + SenderGUID uint64 + SenderName string + Language uint32 + Message string + SenderChatTag uint8 } // ChatEventChannelJoinedPayload represents payload of ChatEventChannelJoined event type ChatEventChannelJoinedPayload struct { - ServiceID string - RealmID uint32 - ChannelName string - ChannelID uint32 - PlayerGUID uint64 - PlayerName string - PlayerFlags uint8 // MEMBER_FLAG_* + ServiceID string + RealmID uint32 + ChannelName string + ChannelID uint32 + ChannelFlags uint32 + TeamID uint32 + NumMembers uint32 + PlayerGUID uint64 + PlayerName string + PlayerFlags uint8 // MEMBER_FLAG_* } // ChatEventChannelLeftPayload represents payload of ChatEventChannelLeft event type ChatEventChannelLeftPayload struct { - ServiceID string - RealmID uint32 - ChannelName string - ChannelID uint32 - PlayerGUID uint64 - PlayerName string + ServiceID string + RealmID uint32 + ChannelName string + ChannelID uint32 + ChannelFlags uint32 + TeamID uint32 + NumMembers uint32 + PlayerGUID uint64 + PlayerName string + Silent bool } // ChatEventChannelNotificationPayload represents payload of ChatEventChannelNotification event @@ -83,6 +97,9 @@ type ChatEventChannelNotificationPayload struct { RealmID uint32 ChannelName string ChannelID uint32 + ChannelFlags uint32 + TeamID uint32 + NumMembers uint32 NotifyType uint8 // ChatNotify type from Channel.h TargetGUID uint64 TargetName string diff --git a/shared/events/events-friends.go b/shared/events/events-friends.go index fd382ac..b4e6add 100644 --- a/shared/events/events-friends.go +++ b/shared/events/events-friends.go @@ -29,7 +29,7 @@ type FriendEventStatusChangePayload struct { ServiceID string RealmID uint32 PlayerGUID uint64 - Status uint8 // 0=offline, 1=online + Status uint8 // 0=offline, 1=online Area uint32 Level uint32 ClassID uint32 diff --git a/shared/events/events-gateway.go b/shared/events/events-gateway.go index 53b1e57..97f4cb6 100644 --- a/shared/events/events-gateway.go +++ b/shared/events/events-gateway.go @@ -14,6 +14,12 @@ const ( // GWEventCharactersUpdates pack of characters update that occurs every N seconds. GWEventCharactersUpdates + + // GWEventGuildCreated is event that occurs when gateway observes successful guild creation from worldserver. + GWEventGuildCreated + + // GWEventGatewayStarted is event that occurs when gateway is registered and ready to accept new sessions. + GWEventGatewayStarted ) // SubjectName is key that nats uses. @@ -25,50 +31,73 @@ func (e GatewayEvent) SubjectName() string { return "gw.char.logged-out" case GWEventCharactersUpdates: return "gw.char.chars-updates" + case GWEventGuildCreated: + return "gw.guild.created" + case GWEventGatewayStarted: + return "gw.gateway.started" } panic(fmt.Errorf("unk event %d", e)) } -// GWEventCharacterLoggedInPayload represents payload of GWEventCharacterLoggedIn event. -type GWEventCharacterLoggedInPayload struct { +// GWEventGatewayStartedPayload represents payload of GWEventGatewayStarted event. +type GWEventGatewayStartedPayload struct { RealmID uint32 GatewayID string - CharGUID uint64 - CharName string - CharRace uint8 - CharClass uint8 - CharGender uint8 - CharLevel uint8 - CharZone uint32 - CharMap uint32 - CharPosX float32 - CharPosY float32 - CharPosZ float32 - CharGuildID uint32 - AccountID uint32 + StartedAtMs uint64 +} + +// GWEventCharacterLoggedInPayload represents payload of GWEventCharacterLoggedIn event. +type GWEventCharacterLoggedInPayload struct { + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + CharGUID uint64 + CharName string + CharRace uint8 + CharClass uint8 + CharGender uint8 + CharLevel uint8 + CharZone uint32 + CharMap uint32 + CharPosX float32 + CharPosY float32 + CharPosZ float32 + CharGuildID uint32 + AccountID uint32 } // GWEventCharacterLoggedOutPayload represents payload of GWEventCharacterLoggedOut event. type GWEventCharacterLoggedOutPayload struct { - RealmID uint32 - GatewayID string - CharGUID uint64 - CharName string - CharGuildID uint32 - AccountID uint32 + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + CharGUID uint64 + CharName string + CharGuildID uint32 + AccountID uint32 } type GWEventCharactersUpdatesPayload struct { - RealmID uint32 - GatewayID string - Updates []*CharacterUpdate + RealmID uint32 + GatewayID string + EventTimeUnixNano uint64 + Updates []*CharacterUpdate +} + +// GWEventGuildCreatedPayload represents payload of GWEventGuildCreated event. +type GWEventGuildCreatedPayload struct { + RealmID uint32 + GatewayID string + LeaderGUID uint64 + GuildName string } // CharacterUpdate represents new values of fields for the character. type CharacterUpdate struct { - ID uint64 `json:"i"` - Lvl *uint8 `json:"l,omitempty"` - Map *uint32 `json:"m,omitempty"` - Area *uint32 `json:"a,omitempty"` - Zone *uint32 `json:"z,omitempty"` + ID uint64 `json:"i"` + EventTimeUnixNano uint64 `json:"t,omitempty"` + Lvl *uint8 `json:"l,omitempty"` + Map *uint32 `json:"m,omitempty"` + Area *uint32 `json:"a,omitempty"` + Zone *uint32 `json:"z,omitempty"` } diff --git a/shared/events/events-group.go b/shared/events/events-group.go index 918781c..337efff 100644 --- a/shared/events/events-group.go +++ b/shared/events/events-group.go @@ -41,6 +41,20 @@ const ( // GroupEventGroupDifficultyChanged group event when dungeon or raid difficulty changed for the group GroupEventGroupDifficultyChanged + + GroupEventGroupReadyCheckStarted + GroupEventGroupReadyCheckMemberState + GroupEventGroupReadyCheckFinished + GroupEventGroupMemberSubGroupChanged + GroupEventGroupMemberFlagsChanged + GroupEventGroupMemberStateChanged + GroupEventGroupInstanceResetRequest + GroupEventGroupInstanceBindExtensionRequest + + // GroupEventInviteDeclined group event when player invite declined + GroupEventInviteDeclined + + GroupEventGroupMemberStatesChanged ) // SubjectName is key that nats uses @@ -48,6 +62,8 @@ func (e GroupServiceEvent) SubjectName() string { switch e { case GroupEventInviteCreated: return "group.invite.created" + case GroupEventInviteDeclined: + return "group.invite.declined" case GroupEventGroupCreated: return "group.created" case GroupEventGroupMemberOnlineStatusChanged: @@ -70,6 +86,24 @@ func (e GroupServiceEvent) SubjectName() string { return "group.targeticons.new" case GroupEventGroupDifficultyChanged: return "group.difficulty.changed" + case GroupEventGroupReadyCheckStarted: + return "group.readycheck.started" + case GroupEventGroupReadyCheckMemberState: + return "group.readycheck.member.state" + case GroupEventGroupReadyCheckFinished: + return "group.readycheck.finished" + case GroupEventGroupMemberSubGroupChanged: + return "group.member.subgroup.changed" + case GroupEventGroupMemberFlagsChanged: + return "group.member.flags.changed" + case GroupEventGroupMemberStateChanged: + return "group.member.state.changed" + case GroupEventGroupMemberStatesChanged: + return "group.member.states.changed" + case GroupEventGroupInstanceResetRequest: + return "group.instance.reset.request" + case GroupEventGroupInstanceBindExtensionRequest: + return "group.instance.bind.extension.request" } panic(fmt.Errorf("unk event %d", e)) } @@ -88,6 +122,15 @@ type GroupEventInviteCreatedPayload struct { InviteeName string } +type GroupEventInviteDeclinedPayload struct { + ServiceID string + RealmID uint32 + + InviterGUID uint64 + InviteeGUID uint64 + InviteeName string +} + type GroupEventGroupCreatedPayload struct { ServiceID string RealmID uint32 @@ -101,6 +144,7 @@ type GroupEventGroupCreatedPayload struct { Difficulty uint8 RaidDifficulty uint8 MasterLooterGuid uint64 + LfgDungeonEntry uint32 Members []GroupMember } @@ -186,8 +230,9 @@ type GroupEventNewMessagePayload struct { GroupID uint - SenderGUID uint64 - SenderName string + SenderGUID uint64 + SenderName string + SenderChatTag uint8 Language uint32 Msg string @@ -230,3 +275,130 @@ type GroupMember struct { SubGroup uint8 Roles uint8 } + +type GroupEventReadyCheckStartedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + LeaderGUID uint64 + DurationMs uint32 + Receivers []uint64 +} + +type GroupEventReadyCheckMemberStatePayload struct { + ServiceID string + RealmID uint32 + GroupID uint + MemberGUID uint64 + State uint8 // 0 waiting, 1 ready, 2 not ready + Receivers []uint64 +} + +type GroupEventReadyCheckFinishedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + Receivers []uint64 +} + +type GroupEventMemberSubGroupChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + MemberGUID uint64 + SubGroup uint8 + Receivers []uint64 +} + +type GroupEventMemberFlagsChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + MemberGUID uint64 + Flags uint8 + Roles uint8 + Receivers []uint64 +} + +type GroupEventMemberStateChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + SourceGatewayID string + SourceWorldserverID string + MemberGUID uint64 + Online bool + Level uint8 + Class uint8 + ZoneID uint32 + MapID uint32 + Health uint32 + MaxHealth uint32 + PowerType uint8 + Power uint32 + MaxPower uint32 + AurasKnown bool + Auras []GroupMemberAuraState + DeadKnown bool + Dead bool + GhostKnown bool + Ghost bool + Receivers []uint64 +} + +type GroupEventMemberStatesChangedPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + SourceGatewayID string + SourceWorldserverID string + States []GroupMemberStateUpdate + Receivers []uint64 +} + +type GroupMemberStateUpdate struct { + MemberGUID uint64 + Online bool + Level uint8 + Class uint8 + ZoneID uint32 + MapID uint32 + Health uint32 + MaxHealth uint32 + PowerType uint8 + Power uint32 + MaxPower uint32 + AurasKnown bool + Auras []GroupMemberAuraState + DeadKnown bool + Dead bool + GhostKnown bool + Ghost bool +} + +type GroupMemberAuraState struct { + Slot uint8 + SpellID uint32 + Flags uint8 +} + +type GroupEventInstanceResetRequestPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + PlayerGUID uint64 + MapID uint32 + Difficulty uint8 + Receivers []uint64 +} + +type GroupEventInstanceBindExtensionRequestPayload struct { + ServiceID string + RealmID uint32 + GroupID uint + PlayerGUID uint64 + MapID uint32 + Difficulty uint8 + Extended bool + Receivers []uint64 +} diff --git a/shared/events/events-guild.go b/shared/events/events-guild.go index 986af18..afb7f2b 100644 --- a/shared/events/events-guild.go +++ b/shared/events/events-guild.go @@ -47,6 +47,12 @@ const ( // GuildEventNewMessage guild event when guild member sent some message GuildEventNewMessage + + // GuildEventPetitionOffered guild event when a guild charter is offered to a same-realm target. + GuildEventPetitionOffered + + // GuildEventPetitionSigned guild event when a same-realm guild charter signature was processed. + GuildEventPetitionSigned ) // SubjectName is key that nats uses @@ -80,6 +86,10 @@ func (e GuildServiceEvent) SubjectName() string { return "guild.info.updated" case GuildEventNewMessage: return "guild.message.new" + case GuildEventPetitionOffered: + return "guild.petition.offered" + case GuildEventPetitionSigned: + return "guild.petition.signed" } panic(fmt.Errorf("unk event %d", e)) } @@ -231,8 +241,9 @@ type GuildEventNewMessagePayload struct { GuildID uint64 - SenderGUID uint64 - SenderName string + SenderGUID uint64 + SenderName string + SenderChatTag uint8 Language uint32 Msg string @@ -241,3 +252,36 @@ type GuildEventNewMessagePayload struct { Receivers []uint64 } + +type GuildPetitionSignature struct { + PlayerGUID uint64 + PlayerAccount uint32 +} + +type GuildEventPetitionOfferedPayload struct { + ServiceID string + RealmID uint32 + + PetitionGUID uint64 + PetitionID uint32 + OwnerGUID uint64 + TargetGUID uint64 + TargetName string + GuildName string + + RequiredSigns uint32 + Signatures []GuildPetitionSignature +} + +type GuildEventPetitionSignedPayload struct { + ServiceID string + RealmID uint32 + + PetitionGUID uint64 + OwnerGUID uint64 + SignerGUID uint64 + SignerName string + NativeStatus uint32 + + RequiredSigns uint32 +} diff --git a/shared/events/events-matchmaking.go b/shared/events/events-matchmaking.go index 7ad2bb5..ccfd886 100644 --- a/shared/events/events-matchmaking.go +++ b/shared/events/events-matchmaking.go @@ -17,6 +17,12 @@ const ( // MatchmakingEventPlayersInviteExpired matchmaking event for battleground and arena queue when players invite expired. MatchmakingEventPlayersInviteExpired + + // MatchmakingEventLfgStatusChanged matchmaking event for LFG queue, role check, and proposal state changes. + MatchmakingEventLfgStatusChanged + + // MatchmakingEventLfgProposalAccepted matchmaking event emitted when every LFG proposal member accepts. + MatchmakingEventLfgProposalAccepted ) // SubjectName is key that nats uses @@ -28,6 +34,10 @@ func (e MatchmakingServiceEvent) SubjectName() string { return "matchmaking.pvpqueue.invited" case MatchmakingEventPlayersInviteExpired: return "matchmaking.pvpqueue.invite.expired" + case MatchmakingEventLfgStatusChanged: + return "matchmaking.lfg.status.changed" + case MatchmakingEventLfgProposalAccepted: + return "matchmaking.lfg.proposal.accepted" } panic(fmt.Errorf("unk event %d", e)) } @@ -78,3 +88,96 @@ type MatchmakingEventPlayersInviteExpiredPayload struct { PlayersGUID []guid.LowType QueueSlotByPlayer map[guid.LowType]uint8 } + +type MatchmakingLfgState uint8 + +const ( + MatchmakingLfgStateNone MatchmakingLfgState = iota + MatchmakingLfgStateRoleCheck + MatchmakingLfgStateQueued + MatchmakingLfgStateProposal + MatchmakingLfgStateBoot + MatchmakingLfgStateDungeon + MatchmakingLfgStateFinishedDungeon + MatchmakingLfgStateRaidBrowser +) + +type MatchmakingLfgProposalState uint8 + +const ( + MatchmakingLfgProposalInitiating MatchmakingLfgProposalState = iota + MatchmakingLfgProposalFailed + MatchmakingLfgProposalSuccess +) + +type MatchmakingLfgProposalFailure uint8 + +const ( + MatchmakingLfgProposalFailureNone MatchmakingLfgProposalFailure = iota + MatchmakingLfgProposalFailureFailed + MatchmakingLfgProposalFailureDeclined +) + +type MatchmakingLfgMember struct { + RealmID uint32 + PlayerGUID guid.LowType + Roles uint8 + Leader bool + QueueLeaderRealmID uint32 + QueueLeaderGUID guid.LowType +} + +type MatchmakingLfgProposalMember struct { + RealmID uint32 + PlayerGUID guid.LowType + SelectedRoles uint8 + AssignedRole uint8 + Answered bool + Accepted bool +} + +type MatchmakingLfgStatusPayload struct { + State MatchmakingLfgState + ProposalID uint32 + ProposalState MatchmakingLfgProposalState + ProposalFailure MatchmakingLfgProposalFailure + DungeonEntry uint32 + SelectedDungeons []uint32 + QueuedMembers []MatchmakingLfgMember + ProposalMembers []MatchmakingLfgProposalMember + + QueuedTimeMilliseconds uint32 + TanksNeeded uint8 + HealersNeeded uint8 + DamageNeeded uint8 +} + +type MatchmakingEventLfgStatusChangedPayload struct { + RealmID uint32 + PlayersGUID []guid.LowType + Status MatchmakingLfgStatusPayload +} + +type MatchmakingLfgProposalAcceptedMember struct { + RealmID uint32 + PlayerGUID guid.LowType + SelectedRoles uint8 + AssignedRole uint8 + QueueLeaderRealmID uint32 + QueueLeaderGUID guid.LowType + WorldserverID string +} + +type MatchmakingEventLfgProposalAcceptedPayload struct { + RealmID uint32 + LeaderRealmID uint32 + BattlegroupID uint32 + CrossRealm bool + ProposalID uint32 + GroupID uint32 + DungeonEntry uint32 + LeaderGUID guid.LowType + LeaderWorldserverID string + PlayersGUID []guid.LowType + Members []MatchmakingLfgProposalAcceptedMember +} diff --git a/shared/events/events-serversregistry.go b/shared/events/events-serversregistry.go index 36571ac..57a3559 100644 --- a/shared/events/events-serversregistry.go +++ b/shared/events/events-serversregistry.go @@ -20,6 +20,12 @@ const ( // ServerRegistryEventGSRemoved is event that occurs when server registry removes game server (unhealthy or shutdown). ServerRegistryEventGSRemoved + + // ServerRegistryEventMatchmakingRemovedUnhealthy is event that occurs when matchmaking service becomes unhealthy. + ServerRegistryEventMatchmakingRemovedUnhealthy + + // ServerRegistryEventMatchmakingRecovered is event that occurs when matchmaking service becomes healthy again. + ServerRegistryEventMatchmakingRecovered ) // SubjectName is key that nats uses. @@ -35,6 +41,10 @@ func (e ServerRegistryEvent) SubjectName() string { return "sr.gs.added" case ServerRegistryEventGSRemoved: return "sr.gs.removed" + case ServerRegistryEventMatchmakingRemovedUnhealthy: + return "sr.matchmaking.removed.unhealthy" + case ServerRegistryEventMatchmakingRecovered: + return "sr.matchmaking.recovered" } panic(fmt.Errorf("unk event %d", e)) } @@ -49,10 +59,11 @@ type ServerRegistryEventGWAddedPayload struct { // ServerRegistryEventGWRemovedUnhealthyPayload represents payload of ServerRegistryEventGWRemovedUnhealthy event. type ServerRegistryEventGWRemovedUnhealthyPayload struct { - ID string - Address string - HealthCheckAddr string - RealmID uint32 + ID string + Address string + HealthCheckAddr string + RealmID uint32 + EventTimeUnixNano uint64 } type GameServer struct { @@ -112,3 +123,18 @@ type ServerRegistryEventGSAddedPayload struct { type ServerRegistryEventGSRemovedPayload struct { GameServer GameServer } + +type MatchmakingService struct { + Address string + HealthCheckAddr string + ObservedAtUnixMs int64 +} + +type ServerRegistryEventMatchmakingRemovedUnhealthyPayload struct { + MatchmakingService MatchmakingService + Error string +} + +type ServerRegistryEventMatchmakingRecoveredPayload struct { + MatchmakingService MatchmakingService +} diff --git a/shared/events/producer-characters.go b/shared/events/producer-characters.go index 6ba7519..ad2d8b2 100644 --- a/shared/events/producer-characters.go +++ b/shared/events/producer-characters.go @@ -2,12 +2,15 @@ package events import ( "encoding/json" + "time" "github.com/nats-io/nats.go" ) type CharactersServiceProducer interface { CharsDisconnectedUnhealthyLB(payload *CharEventCharsDisconnectedUnhealthyGWPayload) error + ArenaTeamInviteCreated(payload *CharEventArenaTeamInviteCreatedPayload) error + ArenaTeamNativeEvent(payload *CharEventArenaTeamNativeEventPayload) error } type charactersServiceProducerNatsJSON struct { @@ -24,9 +27,20 @@ func NewCharactersServiceProducerNatsJSON(conn *nats.Conn, ver string) Character } func (c *charactersServiceProducerNatsJSON) CharsDisconnectedUnhealthyLB(payload *CharEventCharsDisconnectedUnhealthyGWPayload) error { + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return c.publish(CharEventCharsDisconnectedUnhealthyGW, payload) } +func (c *charactersServiceProducerNatsJSON) ArenaTeamInviteCreated(payload *CharEventArenaTeamInviteCreatedPayload) error { + return c.publish(CharEventArenaTeamInviteCreated, payload) +} + +func (c *charactersServiceProducerNatsJSON) ArenaTeamNativeEvent(payload *CharEventArenaTeamNativeEventPayload) error { + return c.publish(CharEventArenaTeamNativeEvent, payload) +} + func (c *charactersServiceProducerNatsJSON) publish(e CharactersServiceEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: c.ver, diff --git a/shared/events/producer-gateway.go b/shared/events/producer-gateway.go index 299d2c3..e0d93a6 100644 --- a/shared/events/producer-gateway.go +++ b/shared/events/producer-gateway.go @@ -2,15 +2,18 @@ package events import ( "encoding/json" + "time" "github.com/nats-io/nats.go" ) //go:generate mockery --name=GatewayProducer type GatewayProducer interface { + GatewayStarted(payload *GWEventGatewayStartedPayload) error CharacterLoggedIn(payload *GWEventCharacterLoggedInPayload) error CharacterLoggedOut(payload *GWEventCharacterLoggedOutPayload) error CharactersUpdates(payload *GWEventCharactersUpdatesPayload) error + GuildCreated(payload *GWEventGuildCreatedPayload) error } type gatewayProducerNatsJSON struct { @@ -30,24 +33,48 @@ func NewGatewayProducerNatsJSON(conn *nats.Conn, ver string, realmID uint32, gat } } +func (p *gatewayProducerNatsJSON) GatewayStarted(payload *GWEventGatewayStartedPayload) error { + payload.RealmID = p.RealmID + payload.GatewayID = p.ID + if payload.StartedAtMs == 0 { + payload.StartedAtMs = uint64(time.Now().UnixMilli()) + } + return p.publish(GWEventGatewayStarted, payload) +} + func (p *gatewayProducerNatsJSON) CharacterLoggedIn(payload *GWEventCharacterLoggedInPayload) error { payload.RealmID = p.RealmID payload.GatewayID = p.ID + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return p.publish(GWEventCharacterLoggedIn, payload) } func (p *gatewayProducerNatsJSON) CharacterLoggedOut(payload *GWEventCharacterLoggedOutPayload) error { payload.RealmID = p.RealmID payload.GatewayID = p.ID + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return p.publish(GWEventCharacterLoggedOut, payload) } func (p *gatewayProducerNatsJSON) CharactersUpdates(payload *GWEventCharactersUpdatesPayload) error { payload.RealmID = p.RealmID payload.GatewayID = p.ID + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return p.publish(GWEventCharactersUpdates, payload) } +func (p *gatewayProducerNatsJSON) GuildCreated(payload *GWEventGuildCreatedPayload) error { + payload.RealmID = p.RealmID + payload.GatewayID = p.ID + return p.publish(GWEventGuildCreated, payload) +} + func (p *gatewayProducerNatsJSON) publish(e GatewayEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: p.ver, diff --git a/shared/events/producer-group.go b/shared/events/producer-group.go index ef1fa65..b371ead 100644 --- a/shared/events/producer-group.go +++ b/shared/events/producer-group.go @@ -13,6 +13,9 @@ type GroupServiceProducer interface { // InviteCreated publishes an event for an invite being created. InviteCreated(payload *GroupEventInviteCreatedPayload) error + // InviteDeclined publishes an event for an invite being declined. + InviteDeclined(payload *GroupEventInviteDeclinedPayload) error + // GroupCreated publishes an event for a group being created. GroupCreated(payload *GroupEventGroupCreatedPayload) error @@ -45,6 +48,16 @@ type GroupServiceProducer interface { // SendChatMessage publishes an event for a new chat message in a group or raid. SendChatMessage(payload *GroupEventNewMessagePayload) error + + GroupReadyCheckStarted(payload *GroupEventReadyCheckStartedPayload) error + GroupReadyCheckMemberState(payload *GroupEventReadyCheckMemberStatePayload) error + GroupReadyCheckFinished(payload *GroupEventReadyCheckFinishedPayload) error + GroupMemberSubGroupChanged(payload *GroupEventMemberSubGroupChangedPayload) error + GroupMemberFlagsChanged(payload *GroupEventMemberFlagsChangedPayload) error + GroupMemberStateChanged(payload *GroupEventMemberStateChangedPayload) error + GroupMemberStatesChanged(payload *GroupEventMemberStatesChangedPayload) error + GroupInstanceResetRequest(payload *GroupEventInstanceResetRequestPayload) error + GroupInstanceBindExtensionRequest(payload *GroupEventInstanceBindExtensionRequestPayload) error } // groupServiceProducerNatsJSON implements the GroupServiceProducer interface using NATS as the underlying message broker. @@ -65,6 +78,10 @@ func (s *groupServiceProducerNatsJSON) InviteCreated(payload *GroupEventInviteCr return s.publish(GroupEventInviteCreated, payload) } +func (s *groupServiceProducerNatsJSON) InviteDeclined(payload *GroupEventInviteDeclinedPayload) error { + return s.publish(GroupEventInviteDeclined, payload) +} + func (s *groupServiceProducerNatsJSON) GroupCreated(payload *GroupEventGroupCreatedPayload) error { return s.publish(GroupEventGroupCreated, payload) } @@ -123,3 +140,39 @@ func (s *groupServiceProducerNatsJSON) publish(e GroupServiceEvent, payload inte return s.conn.Publish(e.SubjectName(), d) } + +func (s *groupServiceProducerNatsJSON) GroupReadyCheckStarted(payload *GroupEventReadyCheckStartedPayload) error { + return s.publish(GroupEventGroupReadyCheckStarted, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupReadyCheckMemberState(payload *GroupEventReadyCheckMemberStatePayload) error { + return s.publish(GroupEventGroupReadyCheckMemberState, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupReadyCheckFinished(payload *GroupEventReadyCheckFinishedPayload) error { + return s.publish(GroupEventGroupReadyCheckFinished, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberSubGroupChanged(payload *GroupEventMemberSubGroupChangedPayload) error { + return s.publish(GroupEventGroupMemberSubGroupChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberFlagsChanged(payload *GroupEventMemberFlagsChangedPayload) error { + return s.publish(GroupEventGroupMemberFlagsChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberStateChanged(payload *GroupEventMemberStateChangedPayload) error { + return s.publish(GroupEventGroupMemberStateChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupMemberStatesChanged(payload *GroupEventMemberStatesChangedPayload) error { + return s.publish(GroupEventGroupMemberStatesChanged, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupInstanceResetRequest(payload *GroupEventInstanceResetRequestPayload) error { + return s.publish(GroupEventGroupInstanceResetRequest, payload) +} + +func (s *groupServiceProducerNatsJSON) GroupInstanceBindExtensionRequest(payload *GroupEventInstanceBindExtensionRequestPayload) error { + return s.publish(GroupEventGroupInstanceBindExtensionRequest, payload) +} diff --git a/shared/events/producer-guild.go b/shared/events/producer-guild.go index 446c5e1..e65681a 100644 --- a/shared/events/producer-guild.go +++ b/shared/events/producer-guild.go @@ -28,6 +28,9 @@ type GuildServiceProducer interface { GuildInfoUpdated(payload *GuildEventGuildInfoUpdatedPayload) error NewMessage(payload *GuildEventNewMessagePayload) error + + PetitionOffered(payload *GuildEventPetitionOfferedPayload) error + PetitionSigned(payload *GuildEventPetitionSignedPayload) error } type guildServiceProducerNatsJSON struct { @@ -98,6 +101,14 @@ func (s *guildServiceProducerNatsJSON) NewMessage(payload *GuildEventNewMessageP return s.publish(GuildEventNewMessage, payload) } +func (s *guildServiceProducerNatsJSON) PetitionOffered(payload *GuildEventPetitionOfferedPayload) error { + return s.publish(GuildEventPetitionOffered, payload) +} + +func (s *guildServiceProducerNatsJSON) PetitionSigned(payload *GuildEventPetitionSignedPayload) error { + return s.publish(GuildEventPetitionSigned, payload) +} + func (s *guildServiceProducerNatsJSON) publish(e GuildServiceEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: s.ver, diff --git a/shared/events/producer-matchmaking.go b/shared/events/producer-matchmaking.go index a87115f..8c5023c 100644 --- a/shared/events/producer-matchmaking.go +++ b/shared/events/producer-matchmaking.go @@ -11,6 +11,8 @@ type MatchmakingServiceProducer interface { JoinedQueue(payload *MatchmakingEventPlayersQueuedPayload) error InvitedToBGOrArena(payload *MatchmakingEventPlayersInvitedPayload) error InviteExpired(payload *MatchmakingEventPlayersInviteExpiredPayload) error + LfgStatusChanged(payload *MatchmakingEventLfgStatusChangedPayload) error + LfgProposalAccepted(payload *MatchmakingEventLfgProposalAcceptedPayload) error } type matchmakingServiceProducerNatsJSON struct { @@ -37,6 +39,14 @@ func (c *matchmakingServiceProducerNatsJSON) InviteExpired(payload *MatchmakingE return c.publish(MatchmakingEventPlayersInviteExpired, payload) } +func (c *matchmakingServiceProducerNatsJSON) LfgStatusChanged(payload *MatchmakingEventLfgStatusChangedPayload) error { + return c.publish(MatchmakingEventLfgStatusChanged, payload) +} + +func (c *matchmakingServiceProducerNatsJSON) LfgProposalAccepted(payload *MatchmakingEventLfgProposalAcceptedPayload) error { + return c.publish(MatchmakingEventLfgProposalAccepted, payload) +} + func (c *matchmakingServiceProducerNatsJSON) publish(e MatchmakingServiceEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: c.ver, diff --git a/shared/events/producer-serversregistry.go b/shared/events/producer-serversregistry.go index bcf23e1..4384bbd 100644 --- a/shared/events/producer-serversregistry.go +++ b/shared/events/producer-serversregistry.go @@ -2,6 +2,7 @@ package events import ( "encoding/json" + "time" "github.com/nats-io/nats.go" ) @@ -13,6 +14,8 @@ type ServerRegistryProducer interface { GSMapsReassigned(payload *ServerRegistryEventGSMapsReassignedPayload) error GSAdded(payload *ServerRegistryEventGSAddedPayload) error GSRemoved(payload *ServerRegistryEventGSRemovedPayload) error + MatchmakingRemovedUnhealthy(payload *ServerRegistryEventMatchmakingRemovedUnhealthyPayload) error + MatchmakingRecovered(payload *ServerRegistryEventMatchmakingRecoveredPayload) error } type serverRegistryProducerNatsJSON struct { @@ -32,6 +35,9 @@ func (s serverRegistryProducerNatsJSON) GatewayAdded(payload *ServerRegistryEven } func (s serverRegistryProducerNatsJSON) GatewayRemovedUnhealthy(payload *ServerRegistryEventGWRemovedUnhealthyPayload) error { + if payload.EventTimeUnixNano == 0 { + payload.EventTimeUnixNano = uint64(time.Now().UnixNano()) + } return s.publish(ServerRegistryEventGWRemovedUnhealthy, payload) } @@ -47,6 +53,14 @@ func (s serverRegistryProducerNatsJSON) GSRemoved(payload *ServerRegistryEventGS return s.publish(ServerRegistryEventGSRemoved, payload) } +func (s serverRegistryProducerNatsJSON) MatchmakingRemovedUnhealthy(payload *ServerRegistryEventMatchmakingRemovedUnhealthyPayload) error { + return s.publish(ServerRegistryEventMatchmakingRemovedUnhealthy, payload) +} + +func (s serverRegistryProducerNatsJSON) MatchmakingRecovered(payload *ServerRegistryEventMatchmakingRecoveredPayload) error { + return s.publish(ServerRegistryEventMatchmakingRecovered, payload) +} + func (s *serverRegistryProducerNatsJSON) publish(e ServerRegistryEvent, payload interface{}) error { msg := EventToSendGenericPayload{ Version: s.ver, diff --git a/shared/groupstatetrace/trace.go b/shared/groupstatetrace/trace.go new file mode 100644 index 0000000..c7944f3 --- /dev/null +++ b/shared/groupstatetrace/trace.go @@ -0,0 +1,137 @@ +package groupstatetrace + +import ( + "os" + "strconv" + "strings" + "sync" + "time" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" +) + +const ( + EnvGUIDs = "TC9_GROUP_STATE_TRACE_GUIDS" + EnvGUIDFile = "TC9_GROUP_STATE_TRACE_FILE" + Message = "TC9_GROUP_STATE_TRACE" +) + +type traceConfig struct { + raw string + all bool + guids map[uint64]struct{} +} + +var traceCache = struct { + sync.RWMutex + envRaw string + filePath string + loadedAt time.Time + cfg traceConfig +}{} + +func Enabled(memberGUIDs ...uint64) bool { + return currentConfig().matches(memberGUIDs...) +} + +func Event(logger *zerolog.Logger, stage string, memberGUIDs ...uint64) *zerolog.Event { + cfg := currentConfig() + if !cfg.matches(memberGUIDs...) { + return nil + } + + var event *zerolog.Event + if logger != nil { + event = logger.Info() + } else { + event = log.Info() + } + + return event. + Str("tc9Trace", "group-state"). + Str("traceStage", stage). + Str("traceGUIDs", cfg.raw) +} + +func currentConfig() traceConfig { + envRaw := os.Getenv(EnvGUIDs) + filePath := os.Getenv(EnvGUIDFile) + now := time.Now() + + traceCache.RLock() + if envRaw == traceCache.envRaw && filePath == traceCache.filePath && now.Sub(traceCache.loadedAt) < time.Second { + cfg := traceCache.cfg + traceCache.RUnlock() + return cfg + } + traceCache.RUnlock() + + raw := envRaw + if filePath != "" { + if data, err := os.ReadFile(filePath); err == nil { + raw = strings.Trim(envRaw+","+string(data), ", \t\r\n") + } + } + cfg := parseConfig(raw) + + traceCache.Lock() + traceCache.envRaw = envRaw + traceCache.filePath = filePath + traceCache.loadedAt = now + traceCache.cfg = cfg + traceCache.Unlock() + + return cfg +} + +func parseConfig(raw string) traceConfig { + cfg := traceConfig{ + raw: raw, + guids: map[uint64]struct{}{}, + } + + for _, token := range strings.FieldsFunc(raw, func(r rune) bool { + return r == ',' || r == ';' || r == ' ' || r == '\t' || r == '\n' + }) { + token = strings.TrimSpace(token) + if token == "" { + continue + } + if token == "*" { + cfg.all = true + continue + } + + guid, err := strconv.ParseUint(token, 10, 64) + if err != nil || guid == 0 { + continue + } + cfg.guids[guid] = struct{}{} + } + + return cfg +} + +func (cfg traceConfig) matches(memberGUIDs ...uint64) bool { + if cfg.raw == "" { + return false + } + if cfg.all { + return true + } + if len(cfg.guids) == 0 { + return false + } + + for _, guid := range memberGUIDs { + if guid == 0 { + continue + } + if _, ok := cfg.guids[guid]; ok { + return true + } + } + + return false +} diff --git a/shared/healthandmetrics/health-checker.go b/shared/healthandmetrics/health-checker.go index d7f7f7e..b425579 100644 --- a/shared/healthandmetrics/health-checker.go +++ b/shared/healthandmetrics/health-checker.go @@ -3,6 +3,7 @@ package healthandmetrics import ( "fmt" "net/http" + "reflect" "sync" "time" ) @@ -27,6 +28,16 @@ type HealthCheckProcessor interface { Check(HealthCheckObject) error } +const defaultHealthCheckFailureThreshold = 2 + +type HTTPStatusError struct { + StatusCode int +} + +func (e *HTTPStatusError) Error() string { + return fmt.Sprintf("bad status code %d", e.StatusCode) +} + type healthCheckResult struct { obj HealthCheckObject err error @@ -45,17 +56,23 @@ type healthChecker struct { successObservers []HealthCheckSuccessObserver failedObservers []HealthCheckFailedObserver + failureCountsMu sync.Mutex + failureCounts map[string]int + failureThreshold int + results chan healthCheckResult queue chan HealthCheckObject } func NewHealthChecker(delay time.Duration, processorsCount int, processor HealthCheckProcessor) HealthChecker { return &healthChecker{ - delay: delay, - processorsCount: processorsCount, - processor: processor, - results: make(chan healthCheckResult, 100), - queue: make(chan HealthCheckObject, 100), + delay: delay, + processorsCount: processorsCount, + processor: processor, + failureCounts: map[string]int{}, + failureThreshold: defaultHealthCheckFailureThreshold, + results: make(chan healthCheckResult, 100), + queue: make(chan HealthCheckObject, 100), } } @@ -63,14 +80,16 @@ func (h *healthChecker) AddHealthCheckObject(object HealthCheckObject) error { h.objectsMu.Lock() defer h.objectsMu.Unlock() - // Check if we already have this observable. - for _, o := range h.objects { + for i, o := range h.objects { if o.HealthCheckAddress() == object.HealthCheckAddress() { + h.objects[i] = object + h.resetFailureCount(object) return nil } } h.objects = append(h.objects, object) + h.resetFailureCount(object) return nil } @@ -80,11 +99,16 @@ func (h *healthChecker) RemoveHealthCheckObject(object HealthCheckObject) error for i := range h.objects { if h.objects[i].HealthCheckAddress() == object.HealthCheckAddress() { + if !sameHealthCheckObject(h.objects[i], object) { + return nil + } h.objects = append(h.objects[:i], h.objects[i+1:]...) + h.clearFailureCount(object) return nil } } + h.clearFailureCount(object) return nil } @@ -134,7 +158,15 @@ func (h *healthChecker) makeIteration() { } func (h *healthChecker) handleResult(result healthCheckResult) { + if !h.isCurrentHealthCheckObject(result.obj) { + return + } + if result.err != nil { + if h.recordFailure(result.obj) < h.failureThreshold { + return + } + h.RemoveHealthCheckObject(result.obj) h.observersMu.RLock() @@ -144,6 +176,8 @@ func (h *healthChecker) handleResult(result healthCheckResult) { observer(result.obj, result.err) } } else { + h.resetFailureCount(result.obj) + h.observersMu.RLock() defer h.observersMu.RUnlock() @@ -153,6 +187,57 @@ func (h *healthChecker) handleResult(result healthCheckResult) { } } +func (h *healthChecker) isCurrentHealthCheckObject(object HealthCheckObject) bool { + h.objectsMu.RLock() + defer h.objectsMu.RUnlock() + + for _, current := range h.objects { + if current.HealthCheckAddress() != object.HealthCheckAddress() { + continue + } + + return sameHealthCheckObject(current, object) + } + + return false +} + +func sameHealthCheckObject(a, b HealthCheckObject) bool { + if a == nil || b == nil { + return a == b + } + + aType := reflect.TypeOf(a) + if aType != reflect.TypeOf(b) || !aType.Comparable() { + return true + } + + return a == b +} + +func (h *healthChecker) recordFailure(object HealthCheckObject) int { + h.failureCountsMu.Lock() + defer h.failureCountsMu.Unlock() + + address := object.HealthCheckAddress() + h.failureCounts[address]++ + return h.failureCounts[address] +} + +func (h *healthChecker) resetFailureCount(object HealthCheckObject) { + h.failureCountsMu.Lock() + defer h.failureCountsMu.Unlock() + + h.failureCounts[object.HealthCheckAddress()] = 0 +} + +func (h *healthChecker) clearFailureCount(object HealthCheckObject) { + h.failureCountsMu.Lock() + defer h.failureCountsMu.Unlock() + + delete(h.failureCounts, object.HealthCheckAddress()) +} + func (h *healthChecker) process(processorsCount int) { for i := 0; i < processorsCount; i++ { go func() { @@ -184,8 +269,10 @@ func (h *httpHealthCheckProcessor) Check(object HealthCheckObject) error { return err } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { - return fmt.Errorf("bad status code %d", resp.StatusCode) + return &HTTPStatusError{StatusCode: resp.StatusCode} } return nil diff --git a/shared/healthandmetrics/metrics-reader.go b/shared/healthandmetrics/metrics-reader.go index 73a6245..0cbee32 100644 --- a/shared/healthandmetrics/metrics-reader.go +++ b/shared/healthandmetrics/metrics-reader.go @@ -4,6 +4,7 @@ import ( "fmt" "io" "net/http" + "reflect" "sync" "time" @@ -25,7 +26,7 @@ type MetricsRead struct { Delay99Percentile int DelayMax int - Raw []dto.MetricFamily + Raw []*dto.MetricFamily } type MetricsObserver func(MetricsObservable, *MetricsRead) @@ -67,9 +68,9 @@ func (m *metricsConsumerImpl) AddMetricsObservable(observable MetricsObservable) m.objectsMu.Lock() defer m.objectsMu.Unlock() - // Check if we already have this observable. - for _, object := range m.objects { + for i, object := range m.objects { if object.MetricsAddress() == observable.MetricsAddress() { + m.objects[i] = observable return nil } } @@ -84,6 +85,9 @@ func (m *metricsConsumerImpl) RemoveMetricsObservable(observable MetricsObservab for i := range m.objects { if m.objects[i].MetricsAddress() == observable.MetricsAddress() { + if !sameMetricsObservable(m.objects[i], observable) { + return nil + } m.objects = append(m.objects[:i], m.objects[i+1:]...) return nil } @@ -146,6 +150,10 @@ func (m *metricsConsumerImpl) makeIteration() { } func (m *metricsConsumerImpl) handleResult(result metricsReadResult) { + if !m.isCurrentMetricsObservable(result.Observable) { + return + } + if result.Err != nil { log.Error().Err(result.Err).Msgf("failed to read metrics for %s object", result.Observable.MetricsAddress()) return @@ -159,6 +167,34 @@ func (m *metricsConsumerImpl) handleResult(result metricsReadResult) { } } +func (m *metricsConsumerImpl) isCurrentMetricsObservable(observable MetricsObservable) bool { + m.objectsMu.RLock() + defer m.objectsMu.RUnlock() + + for _, current := range m.objects { + if current.MetricsAddress() != observable.MetricsAddress() { + continue + } + + return sameMetricsObservable(current, observable) + } + + return false +} + +func sameMetricsObservable(a, b MetricsObservable) bool { + if a == nil || b == nil { + return a == b + } + + aType := reflect.TypeOf(a) + if aType != reflect.TypeOf(b) || !aType.Comparable() { + return true + } + + return a == b +} + func NewMetricsConsumer(delay time.Duration, processorsCount int, reader MetricsReader) MetricsConsumer { return &metricsConsumerImpl{ delay: delay, @@ -192,7 +228,7 @@ func (h httpPrometheusMetricsReader) Read(observable MetricsObservable) (*Metric return nil, fmt.Errorf("bad status code %d", resp.StatusCode) } - metrics := []dto.MetricFamily{} + metrics := []*dto.MetricFamily{} dec := expfmt.NewDecoder(resp.Body, expfmt.NewFormat(expfmt.TypeTextPlain)) for { @@ -204,7 +240,7 @@ func (h httpPrometheusMetricsReader) Read(observable MetricsObservable) (*Metric if err != nil { return nil, err } - metrics = append(metrics, result) + metrics = append(metrics, &result) } results := MetricsRead{ diff --git a/shared/healthandmetrics/server.go b/shared/healthandmetrics/server.go index 9b8e4d3..7bfd5f6 100644 --- a/shared/healthandmetrics/server.go +++ b/shared/healthandmetrics/server.go @@ -2,39 +2,60 @@ package healthandmetrics import ( "context" + "encoding/json" + "fmt" "net/http" + "time" ) var ( HealthCheckURL = "/healthcheck" MetricsURL = "/metrics" - healthCheckOKPayload = []byte(`{"status":"OK"}`) + healthCheckOKPayload = "OK" ) type Server interface { ListenAndServe() error Shutdown(ctx context.Context) error Port() string + StartedAtUnixMs() int64 } +type HealthProbe func(context.Context) error + type server struct { http.Server - port string + port string + startedAtUnixMs int64 +} + +type healthCheckPayload struct { + Status string `json:"status"` + StartedAtUnixMs int64 `json:"startedAtUnixMs"` } func NewServer(port string, metricsHandler http.Handler) Server { - mux := http.NewServeMux() - mux.HandleFunc(HealthCheckURL, func(w http.ResponseWriter, r *http.Request) { - w.Write(healthCheckOKPayload) + return NewServerWithHealthProbe(port, metricsHandler, nil) +} + +func NewServerWithHealthProbe(port string, metricsHandler http.Handler, healthProbe HealthProbe) Server { + startedAtUnixMs := time.Now().UnixMilli() + payload, _ := json.Marshal(healthCheckPayload{ + Status: healthCheckOKPayload, + StartedAtUnixMs: startedAtUnixMs, }) + mux := http.NewServeMux() + mux.HandleFunc(HealthCheckURL, healthCheckHandler(payload, healthProbe)) + if metricsHandler != nil { mux.Handle(MetricsURL, metricsHandler) } return &server{ - port: port, + port: port, + startedAtUnixMs: startedAtUnixMs, Server: http.Server{ Addr: ":" + port, Handler: mux, @@ -42,6 +63,24 @@ func NewServer(port string, metricsHandler http.Handler) Server { } } +func healthCheckHandler(okPayload []byte, healthProbe HealthProbe) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if healthProbe != nil { + if err := healthProbe(r.Context()); err != nil { + w.WriteHeader(http.StatusServiceUnavailable) + _, _ = w.Write([]byte(fmt.Sprintf(`{"status":"UNHEALTHY","error":%q}`, err.Error()))) + return + } + } + + w.Write(okPayload) + } +} + func (s *server) Port() string { return s.port } + +func (s *server) StartedAtUnixMs() int64 { + return s.startedAtUnixMs +} diff --git a/shared/repo/charactersdb.go b/shared/repo/charactersdb.go index 1c805e5..b1dc772 100644 --- a/shared/repo/charactersdb.go +++ b/shared/repo/charactersdb.go @@ -3,6 +3,7 @@ package repo import ( "database/sql" "fmt" + "sort" ) // PreparedStatement represents prepared statement with id. @@ -16,6 +17,7 @@ type PreparedStatement interface { type CharactersDB interface { DBByRealm(realmID uint32) *sql.DB + RealmIDs() []uint32 SetDBForRealm(realmID uint32, db *sql.DB) PreparedStatement(realm uint32, stmt PreparedStatement) *sql.Stmt @@ -42,6 +44,17 @@ func (c *characterDBImpl) DBByRealm(realmID uint32) *sql.DB { return c.dbByReam[realmID].db } +func (c *characterDBImpl) RealmIDs() []uint32 { + realmIDs := make([]uint32, 0, len(c.dbByReam)) + for realmID := range c.dbByReam { + realmIDs = append(realmIDs, realmID) + } + sort.Slice(realmIDs, func(i, j int) bool { + return realmIDs[i] < realmIDs[j] + }) + return realmIDs +} + func (c *characterDBImpl) SetDBForRealm(realmID uint32, db *sql.DB) { c.dbByReam[realmID] = dbWithPreparedStmts{ db: db, diff --git a/shared/wow/arena/team_id.go b/shared/wow/arena/team_id.go new file mode 100644 index 0000000..13bba01 --- /dev/null +++ b/shared/wow/arena/team_id.go @@ -0,0 +1,24 @@ +package arena + +const ( + teamIDRealmShift = 24 + teamIDLowMask = uint32(0x00FFFFFF) +) + +func NewCrossrealmTeamID(realmID uint16, teamID uint32) uint32 { + if realmID == 0 || teamID == 0 { + return teamID + } + return uint32(realmID)<> teamIDRealmShift +} + +func TeamIDCounter(teamID uint32) uint32 { + if TeamIDRealmID(teamID) == 0 { + return teamID + } + return teamID & teamIDLowMask +} diff --git a/shared/wow/guid/player.go b/shared/wow/guid/player.go index e201aec..41e8c9a 100644 --- a/shared/wow/guid/player.go +++ b/shared/wow/guid/player.go @@ -5,6 +5,18 @@ type PlayerUnwrapped struct { LowGUID LowType } +// Player GUID convention: +// - Persistent ToCloud9 service keys use (realmID, low player DB guid). +// - Same-realm client/AzerothCore player ObjectGuid values are serialized as +// the low DB guid. +// - Foreign-realm client/AzerothCore player ObjectGuid values are serialized +// as realm-scoped player GUIDs: realmID << 32 | low DB guid. +// - Already encoded non-player ObjectGuid values are preserved unchanged. +// +// Use these helpers at service, gateway, and libsidecar boundaries instead of +// open-coding shifts/masks. Do not normalize already serialized client packets +// before forwarding them to the owning worldserver. + func NewPlayerUnwrappedFromRawGUID(g ObjectGuid) PlayerUnwrapped { // TODO: we probably should validate guid here return PlayerUnwrapped{ @@ -23,3 +35,58 @@ func NewPlayerUnwrapped(realm uint16, low uint32) PlayerUnwrapped { func (u PlayerUnwrapped) Wrap() ObjectGuid { return NewCrossrealmPlayerGUID(u.RealmID, u.LowGUID) } + +func PlayerRealmIDOrDefault(defaultRealmID uint32, playerGUID uint64) uint32 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return defaultRealmID + } + if realmID := uint32((playerGUID >> 32) & 0xffff); realmID != 0 { + return realmID + } + return defaultRealmID +} + +func PlayerLowGUID(playerGUID uint64) uint64 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return playerGUID + } + if playerGUID>>32 == 0 { + return playerGUID + } + return playerGUID & 0xffffffff +} + +func PlayerGUIDForRealm(groupRealmID, playerRealmID uint32, playerGUID uint64) uint64 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return playerGUID + } + + lowGUID := PlayerLowGUID(playerGUID) + if playerRealmID == 0 { + playerRealmID = PlayerRealmIDOrDefault(groupRealmID, playerGUID) + } + if playerRealmID == 0 || playerRealmID == groupRealmID { + return lowGUID + } + + return NewCrossrealmPlayerGUID(uint16(playerRealmID), LowType(lowGUID)).GetRawValue() +} + +func NormalizePlayerGUIDForRealm(defaultRealmID uint32, playerGUID uint64) uint64 { + if playerGUID == 0 || playerGUID>>48 != 0 { + return playerGUID + } + realmID := uint32((playerGUID >> 32) & 0xffff) + if realmID == 0 || realmID == defaultRealmID { + return PlayerLowGUID(playerGUID) + } + return playerGUID +} + +func SamePlayer(defaultRealmA uint32, playerA uint64, defaultRealmB uint32, playerB uint64) bool { + if playerA == 0 || playerB == 0 { + return false + } + return PlayerRealmIDOrDefault(defaultRealmA, playerA) == PlayerRealmIDOrDefault(defaultRealmB, playerB) && + PlayerLowGUID(playerA) == PlayerLowGUID(playerB) +} diff --git a/shared/wow/power.go b/shared/wow/power.go new file mode 100644 index 0000000..1974180 --- /dev/null +++ b/shared/wow/power.go @@ -0,0 +1,50 @@ +package wow + +const ( + ClassWarrior uint8 = 1 + ClassRogue uint8 = 4 + ClassDeathKnight uint8 = 6 + + PowerTypeMana uint8 = 0 + PowerTypeRage uint8 = 1 + PowerTypeEnergy uint8 = 3 + PowerTypeRunicPower uint8 = 6 +) + +func FixedPrimaryPowerTypeForClass(classID uint8) (uint8, bool) { + switch classID { + case ClassWarrior: + return PowerTypeRage, true + case ClassRogue: + return PowerTypeEnergy, true + case ClassDeathKnight: + return PowerTypeRunicPower, true + default: + return PowerTypeMana, false + } +} + +func DefaultMaxPowerForClass(classID uint8) uint32 { + switch classID { + case ClassWarrior, ClassDeathKnight: + return 1000 + case ClassRogue: + return 100 + default: + return 0 + } +} + +func IsFixedClassInactivePowerType(classID, powerType uint8) bool { + expectedPowerType, fixed := FixedPrimaryPowerTypeForClass(classID) + if !fixed || powerType == expectedPowerType { + return false + } + + switch powerType { + case PowerTypeRage, PowerTypeEnergy, PowerTypeRunicPower: + return true + default: + return false + } +}