diff --git a/internal/frontend/bridge-gui/bridge-gui/QMLBackend.cpp b/internal/frontend/bridge-gui/bridge-gui/QMLBackend.cpp index 1541d942..c5201974 100644 --- a/internal/frontend/bridge-gui/bridge-gui/QMLBackend.cpp +++ b/internal/frontend/bridge-gui/bridge-gui/QMLBackend.cpp @@ -137,6 +137,7 @@ void QMLBackend::connectGrpcEvents() connect(client, &GRPCClient::updateSilentRestartNeeded, this, &QMLBackend::updateSilentRestartNeeded); connect(client, &GRPCClient::updateIsLatestVersion, this, &QMLBackend::updateIsLatestVersion); connect(client, &GRPCClient::checkUpdatesFinished, this, &QMLBackend::checkUpdatesFinished); + connect(client, &GRPCClient::updateVersionChanged, this, &QMLBackend::onVersionChanged); // mail settings events connect(client, &GRPCClient::portIssueIMAP, this, &QMLBackend::portIssueIMAP); @@ -369,6 +370,7 @@ void QMLBackend::triggerReset() app().grpc().triggerReset(); } + //**************************************************************************************************************************************************** // //**************************************************************************************************************************************************** @@ -379,3 +381,11 @@ void QMLBackend::onResetFinished() } +//**************************************************************************************************************************************************** +// onVersionChanged update dynamic link related to version +//**************************************************************************************************************************************************** +void QMLBackend::onVersionChanged() +{ + emit releaseNotesLinkChanged(releaseNotesLink()); + emit landingPageLinkChanged(landingPageLink()); +} diff --git a/internal/frontend/bridge-gui/bridge-gui/QMLBackend.h b/internal/frontend/bridge-gui/bridge-gui/QMLBackend.h index 4da2ec64..361f43a9 100644 --- a/internal/frontend/bridge-gui/bridge-gui/QMLBackend.h +++ b/internal/frontend/bridge-gui/bridge-gui/QMLBackend.h @@ -167,7 +167,8 @@ public slots: // slot for signals received from QML -> To be forwarded to Bridge void triggerReset(); // _ func() `slot:"triggerReset"` void reportBug(QString const &description, QString const& address, QString const &emailClient, bool includeLogs) { app().grpc().reportBug(description, address, emailClient, includeLogs); } // _ func(description, address, emailClient string, includeLogs bool) `slot:"reportBug"` - void onResetFinished(); + void onResetFinished(); // _ func() `slot:"onResetFinished"` + void onVersionChanged(); // _ func() `slot:"onVersionChanged"` signals: // Signals received from the Go backend, to be forwarded to QML void toggleAutostartFinished(); // _ func() `signal:"toggleAutostartFinished"` diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp index 9c4b680c..35bb2657 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp @@ -1251,6 +1251,10 @@ void GRPCClient::processUpdateEvent(UpdateEvent const &event) this->logDebug("Update event received: kCheckFinished."); emit checkUpdatesFinished(); break; + case UpdateEvent::kVersionChanged: + this->logDebug("Update event received: kVersionChanged."); + emit updateVersionChanged(); + break; default: this->logError("Unknown Update event received."); break; diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h index 67beb8ea..e04e83bd 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h @@ -161,6 +161,7 @@ signals: void updateSilentRestartNeeded(); void updateIsLatestVersion(); void checkUpdatesFinished(); + void updateVersionChanged(); public: // user related calls grpc::Status getUserList(QList &outUsers); diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc index 3833924d..6c39f3cf 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc @@ -467,6 +467,17 @@ struct UpdateCheckFinishedDefaultTypeInternal { }; }; PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UpdateCheckFinishedDefaultTypeInternal _UpdateCheckFinished_default_instance_; +PROTOBUF_CONSTEXPR UpdateVersionChanged::UpdateVersionChanged( + ::_pbi::ConstantInitialized) {} +struct UpdateVersionChangedDefaultTypeInternal { + PROTOBUF_CONSTEXPR UpdateVersionChangedDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~UpdateVersionChangedDefaultTypeInternal() {} + union { + UpdateVersionChanged _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UpdateVersionChangedDefaultTypeInternal _UpdateVersionChanged_default_instance_; PROTOBUF_CONSTEXPR CacheEvent::CacheEvent( ::_pbi::ConstantInitialized): _impl_{ /*decltype(_impl_.event_)*/{} @@ -756,7 +767,7 @@ struct UserChangedEventDefaultTypeInternal { }; PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserChangedEventDefaultTypeInternal _UserChangedEvent_default_instance_; } // namespace grpc -static ::_pb::Metadata file_level_metadata_bridge_2eproto[57]; +static ::_pb::Metadata file_level_metadata_bridge_2eproto[58]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_bridge_2eproto[5]; static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_bridge_2eproto = nullptr; @@ -991,6 +1002,7 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, + ::_pbi::kInvalidFieldOffsetTag, PROTOBUF_FIELD_OFFSET(::grpc::UpdateEvent, _impl_.event_), ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::grpc::UpdateErrorEvent, _internal_metadata_), @@ -1038,6 +1050,12 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p ~0u, // no _weak_field_map_ ~0u, // no _inlined_string_donated_ ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::grpc::UpdateVersionChanged, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::grpc::CacheEvent, _internal_metadata_), ~0u, // no _extensions_ PROTOBUF_FIELD_OFFSET(::grpc::CacheEvent, _impl_._oneof_case_[0]), @@ -1237,36 +1255,37 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode { 204, -1, -1, sizeof(::grpc::LoginTwoPasswordsRequestedEvent)}, { 210, -1, -1, sizeof(::grpc::LoginFinishedEvent)}, { 217, -1, -1, sizeof(::grpc::UpdateEvent)}, - { 231, -1, -1, sizeof(::grpc::UpdateErrorEvent)}, - { 238, -1, -1, sizeof(::grpc::UpdateManualReadyEvent)}, - { 245, -1, -1, sizeof(::grpc::UpdateManualRestartNeededEvent)}, - { 251, -1, -1, sizeof(::grpc::UpdateForceEvent)}, - { 258, -1, -1, sizeof(::grpc::UpdateSilentRestartNeeded)}, - { 264, -1, -1, sizeof(::grpc::UpdateIsLatestVersion)}, - { 270, -1, -1, sizeof(::grpc::UpdateCheckFinished)}, - { 276, -1, -1, sizeof(::grpc::CacheEvent)}, - { 288, -1, -1, sizeof(::grpc::CacheErrorEvent)}, - { 295, -1, -1, sizeof(::grpc::CacheLocationChangeSuccessEvent)}, - { 301, -1, -1, sizeof(::grpc::ChangeLocalCacheFinishedEvent)}, - { 307, -1, -1, sizeof(::grpc::IsCacheOnDiskEnabledChanged)}, - { 314, -1, -1, sizeof(::grpc::DiskCachePathChanged)}, - { 321, -1, -1, sizeof(::grpc::MailSettingsEvent)}, - { 331, -1, -1, sizeof(::grpc::MailSettingsErrorEvent)}, - { 338, -1, -1, sizeof(::grpc::UseSslForSmtpFinishedEvent)}, - { 344, -1, -1, sizeof(::grpc::ChangePortsFinishedEvent)}, - { 350, -1, -1, sizeof(::grpc::KeychainEvent)}, - { 360, -1, -1, sizeof(::grpc::ChangeKeychainFinishedEvent)}, - { 366, -1, -1, sizeof(::grpc::HasNoKeychainEvent)}, - { 372, -1, -1, sizeof(::grpc::RebuildKeychainEvent)}, - { 378, -1, -1, sizeof(::grpc::MailEvent)}, - { 389, -1, -1, sizeof(::grpc::NoActiveKeyForRecipientEvent)}, - { 396, -1, -1, sizeof(::grpc::AddressChangedEvent)}, - { 403, -1, -1, sizeof(::grpc::AddressChangedLogoutEvent)}, - { 410, -1, -1, sizeof(::grpc::ApiCertIssueEvent)}, - { 416, -1, -1, sizeof(::grpc::UserEvent)}, - { 426, -1, -1, sizeof(::grpc::ToggleSplitModeFinishedEvent)}, - { 433, -1, -1, sizeof(::grpc::UserDisconnectedEvent)}, - { 440, -1, -1, sizeof(::grpc::UserChangedEvent)}, + { 232, -1, -1, sizeof(::grpc::UpdateErrorEvent)}, + { 239, -1, -1, sizeof(::grpc::UpdateManualReadyEvent)}, + { 246, -1, -1, sizeof(::grpc::UpdateManualRestartNeededEvent)}, + { 252, -1, -1, sizeof(::grpc::UpdateForceEvent)}, + { 259, -1, -1, sizeof(::grpc::UpdateSilentRestartNeeded)}, + { 265, -1, -1, sizeof(::grpc::UpdateIsLatestVersion)}, + { 271, -1, -1, sizeof(::grpc::UpdateCheckFinished)}, + { 277, -1, -1, sizeof(::grpc::UpdateVersionChanged)}, + { 283, -1, -1, sizeof(::grpc::CacheEvent)}, + { 295, -1, -1, sizeof(::grpc::CacheErrorEvent)}, + { 302, -1, -1, sizeof(::grpc::CacheLocationChangeSuccessEvent)}, + { 308, -1, -1, sizeof(::grpc::ChangeLocalCacheFinishedEvent)}, + { 314, -1, -1, sizeof(::grpc::IsCacheOnDiskEnabledChanged)}, + { 321, -1, -1, sizeof(::grpc::DiskCachePathChanged)}, + { 328, -1, -1, sizeof(::grpc::MailSettingsEvent)}, + { 338, -1, -1, sizeof(::grpc::MailSettingsErrorEvent)}, + { 345, -1, -1, sizeof(::grpc::UseSslForSmtpFinishedEvent)}, + { 351, -1, -1, sizeof(::grpc::ChangePortsFinishedEvent)}, + { 357, -1, -1, sizeof(::grpc::KeychainEvent)}, + { 367, -1, -1, sizeof(::grpc::ChangeKeychainFinishedEvent)}, + { 373, -1, -1, sizeof(::grpc::HasNoKeychainEvent)}, + { 379, -1, -1, sizeof(::grpc::RebuildKeychainEvent)}, + { 385, -1, -1, sizeof(::grpc::MailEvent)}, + { 396, -1, -1, sizeof(::grpc::NoActiveKeyForRecipientEvent)}, + { 403, -1, -1, sizeof(::grpc::AddressChangedEvent)}, + { 410, -1, -1, sizeof(::grpc::AddressChangedLogoutEvent)}, + { 417, -1, -1, sizeof(::grpc::ApiCertIssueEvent)}, + { 423, -1, -1, sizeof(::grpc::UserEvent)}, + { 433, -1, -1, sizeof(::grpc::ToggleSplitModeFinishedEvent)}, + { 440, -1, -1, sizeof(::grpc::UserDisconnectedEvent)}, + { 447, -1, -1, sizeof(::grpc::UserChangedEvent)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -1304,6 +1323,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::grpc::_UpdateSilentRestartNeeded_default_instance_._instance, &::grpc::_UpdateIsLatestVersion_default_instance_._instance, &::grpc::_UpdateCheckFinished_default_instance_._instance, + &::grpc::_UpdateVersionChanged_default_instance_._instance, &::grpc::_CacheEvent_default_instance_._instance, &::grpc::_CacheErrorEvent_default_instance_._instance, &::grpc::_CacheLocationChangeSuccessEvent_default_instance_._instance, @@ -1389,7 +1409,7 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE( "rpc.LoginErrorType\022\017\n\007message\030\002 \001(\t\"*\n\026L" "oginTfaRequestedEvent\022\020\n\010username\030\001 \001(\t\"" "!\n\037LoginTwoPasswordsRequestedEvent\"$\n\022Lo" - "ginFinishedEvent\022\016\n\006userID\030\001 \001(\t\"\216\003\n\013Upd" + "ginFinishedEvent\022\016\n\006userID\030\001 \001(\t\"\304\003\n\013Upd" "ateEvent\022\'\n\005error\030\001 \001(\0132\026.grpc.UpdateErr" "orEventH\000\0223\n\013manualReady\030\002 \001(\0132\034.grpc.Up" "dateManualReadyEventH\000\022C\n\023manualRestartN" @@ -1399,176 +1419,178 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE( "\0132\037.grpc.UpdateSilentRestartNeededH\000\0226\n\017" "isLatestVersion\030\006 \001(\0132\033.grpc.UpdateIsLat" "estVersionH\000\0222\n\rcheckFinished\030\007 \001(\0132\031.gr" - "pc.UpdateCheckFinishedH\000B\007\n\005event\"7\n\020Upd" - "ateErrorEvent\022#\n\004type\030\001 \001(\0162\025.grpc.Updat" - "eErrorType\")\n\026UpdateManualReadyEvent\022\017\n\007" - "version\030\001 \001(\t\" \n\036UpdateManualRestartNeed" - "edEvent\"#\n\020UpdateForceEvent\022\017\n\007version\030\001" - " \001(\t\"\033\n\031UpdateSilentRestartNeeded\"\027\n\025Upd" - "ateIsLatestVersion\"\025\n\023UpdateCheckFinishe" - "d\"\325\002\n\nCacheEvent\022&\n\005error\030\001 \001(\0132\025.grpc.C" - "acheErrorEventH\000\022G\n\026locationChangedSucce" - "ss\030\002 \001(\0132%.grpc.CacheLocationChangeSucce" - "ssEventH\000\022G\n\030changeLocalCacheFinished\030\003 " - "\001(\0132#.grpc.ChangeLocalCacheFinishedEvent" - "H\000\022H\n\033isCacheOnDiskEnabledChanged\030\004 \001(\0132" - "!.grpc.IsCacheOnDiskEnabledChangedH\000\022:\n\024" - "diskCachePathChanged\030\005 \001(\0132\032.grpc.DiskCa" - "chePathChangedH\000B\007\n\005event\"5\n\017CacheErrorE" - "vent\022\"\n\004type\030\001 \001(\0162\024.grpc.CacheErrorType" - "\"!\n\037CacheLocationChangeSuccessEvent\"\037\n\035C" - "hangeLocalCacheFinishedEvent\".\n\033IsCacheO" - "nDiskEnabledChanged\022\017\n\007enabled\030\001 \001(\010\"$\n\024" - "DiskCachePathChanged\022\014\n\004path\030\001 \001(\t\"\315\001\n\021M" - "ailSettingsEvent\022-\n\005error\030\001 \001(\0132\034.grpc.M" - "ailSettingsErrorEventH\000\022A\n\025useSslForSmtp" - "Finished\030\002 \001(\0132 .grpc.UseSslForSmtpFinis" - "hedEventH\000\022=\n\023changePortsFinished\030\003 \001(\0132" - "\036.grpc.ChangePortsFinishedEventH\000B\007\n\005eve" - "nt\"C\n\026MailSettingsErrorEvent\022)\n\004type\030\001 \001" - "(\0162\033.grpc.MailSettingsErrorType\"\034\n\032UseSs" - "lForSmtpFinishedEvent\"\032\n\030ChangePortsFini" - "shedEvent\"\307\001\n\rKeychainEvent\022C\n\026changeKey" - "chainFinished\030\001 \001(\0132!.grpc.ChangeKeychai" - "nFinishedEventH\000\0221\n\rhasNoKeychain\030\002 \001(\0132" - "\030.grpc.HasNoKeychainEventH\000\0225\n\017rebuildKe" - "ychain\030\003 \001(\0132\032.grpc.RebuildKeychainEvent" - "H\000B\007\n\005event\"\035\n\033ChangeKeychainFinishedEve" - "nt\"\024\n\022HasNoKeychainEvent\"\026\n\024RebuildKeych" - "ainEvent\"\207\002\n\tMailEvent\022J\n\034noActiveKeyFor" - "RecipientEvent\030\001 \001(\0132\".grpc.NoActiveKeyF" - "orRecipientEventH\000\0223\n\016addressChanged\030\002 \001" - "(\0132\031.grpc.AddressChangedEventH\000\022\?\n\024addre" - "ssChangedLogout\030\003 \001(\0132\037.grpc.AddressChan" - "gedLogoutEventH\000\022/\n\014apiCertIssue\030\006 \001(\0132\027" - ".grpc.ApiCertIssueEventH\000B\007\n\005event\"-\n\034No" - "ActiveKeyForRecipientEvent\022\r\n\005email\030\001 \001(" - "\t\"&\n\023AddressChangedEvent\022\017\n\007address\030\001 \001(" - "\t\",\n\031AddressChangedLogoutEvent\022\017\n\007addres" - "s\030\001 \001(\t\"\023\n\021ApiCertIssueEvent\"\303\001\n\tUserEve" - "nt\022E\n\027toggleSplitModeFinished\030\001 \001(\0132\".gr" - "pc.ToggleSplitModeFinishedEventH\000\0227\n\020use" - "rDisconnected\030\002 \001(\0132\033.grpc.UserDisconnec" - "tedEventH\000\022-\n\013userChanged\030\003 \001(\0132\026.grpc.U" - "serChangedEventH\000B\007\n\005event\".\n\034ToggleSpli" - "tModeFinishedEvent\022\016\n\006userID\030\001 \001(\t\")\n\025Us" - "erDisconnectedEvent\022\020\n\010username\030\001 \001(\t\"\"\n" - "\020UserChangedEvent\022\016\n\006userID\030\001 \001(\t*q\n\010Log" - "Level\022\r\n\tLOG_PANIC\020\000\022\r\n\tLOG_FATAL\020\001\022\r\n\tL" - "OG_ERROR\020\002\022\014\n\010LOG_WARN\020\003\022\014\n\010LOG_INFO\020\004\022\r" - "\n\tLOG_DEBUG\020\005\022\r\n\tLOG_TRACE\020\006*\242\001\n\016LoginEr" - "rorType\022\033\n\027USERNAME_PASSWORD_ERROR\020\000\022\r\n\t" - "FREE_USER\020\001\022\024\n\020CONNECTION_ERROR\020\002\022\r\n\tTFA" - "_ERROR\020\003\022\r\n\tTFA_ABORT\020\004\022\027\n\023TWO_PASSWORDS" - "_ERROR\020\005\022\027\n\023TWO_PASSWORDS_ABORT\020\006*[\n\017Upd" - "ateErrorType\022\027\n\023UPDATE_MANUAL_ERROR\020\000\022\026\n" - "\022UPDATE_FORCE_ERROR\020\001\022\027\n\023UPDATE_SILENT_E" - "RROR\020\002*W\n\016CacheErrorType\022\033\n\027CACHE_UNAVAI" - "LABLE_ERROR\020\000\022\031\n\025CACHE_CANT_MOVE_ERROR\020\001" - "\022\r\n\tDISK_FULL\020\002*A\n\025MailSettingsErrorType" - "\022\023\n\017IMAP_PORT_ISSUE\020\000\022\023\n\017SMTP_PORT_ISSUE" - "\020\0012\234\037\n\006Bridge\022\?\n\013AddLogEntry\022\030.grpc.AddL" - "ogEntryRequest\032\026.google.protobuf.Empty\022:" - "\n\010GuiReady\022\026.google.protobuf.Empty\032\026.goo" - "gle.protobuf.Empty\0226\n\004Quit\022\026.google.prot" - "obuf.Empty\032\026.google.protobuf.Empty\0229\n\007Re" - "start\022\026.google.protobuf.Empty\032\026.google.p" - "rotobuf.Empty\022C\n\rShowOnStartup\022\026.google." - "protobuf.Empty\032\032.google.protobuf.BoolVal" - "ue\022F\n\020ShowSplashScreen\022\026.google.protobuf" - ".Empty\032\032.google.protobuf.BoolValue\022E\n\017Is" - "FirstGuiStart\022\026.google.protobuf.Empty\032\032." - "google.protobuf.BoolValue\022F\n\020SetIsAutost" - "artOn\022\032.google.protobuf.BoolValue\032\026.goog" - "le.protobuf.Empty\022C\n\rIsAutostartOn\022\026.goo" - "gle.protobuf.Empty\032\032.google.protobuf.Boo" - "lValue\022F\n\020SetIsBetaEnabled\022\032.google.prot" - "obuf.BoolValue\032\026.google.protobuf.Empty\022C" - "\n\rIsBetaEnabled\022\026.google.protobuf.Empty\032" - "\032.google.protobuf.BoolValue\022I\n\023SetIsAllM" - "ailVisible\022\032.google.protobuf.BoolValue\032\026" - ".google.protobuf.Empty\022F\n\020IsAllMailVisib" - "le\022\026.google.protobuf.Empty\032\032.google.prot" - "obuf.BoolValue\022<\n\004GoOs\022\026.google.protobuf" - ".Empty\032\034.google.protobuf.StringValue\022>\n\014" - "TriggerReset\022\026.google.protobuf.Empty\032\026.g" - "oogle.protobuf.Empty\022\?\n\007Version\022\026.google" - ".protobuf.Empty\032\034.google.protobuf.String" - "Value\022@\n\010LogsPath\022\026.google.protobuf.Empt" - "y\032\034.google.protobuf.StringValue\022C\n\013Licen" - "sePath\022\026.google.protobuf.Empty\032\034.google." - "protobuf.StringValue\022L\n\024ReleaseNotesPage" - "Link\022\026.google.protobuf.Empty\032\034.google.pr" - "otobuf.StringValue\022N\n\026DependencyLicenses" - "Link\022\026.google.protobuf.Empty\032\034.google.pr" - "otobuf.StringValue\022G\n\017LandingPageLink\022\026." - "google.protobuf.Empty\032\034.google.protobuf." - "StringValue\022J\n\022SetColorSchemeName\022\034.goog" - "le.protobuf.StringValue\032\026.google.protobu" - "f.Empty\022G\n\017ColorSchemeName\022\026.google.prot" - "obuf.Empty\032\034.google.protobuf.StringValue" - "\022J\n\022CurrentEmailClient\022\026.google.protobuf" - ".Empty\032\034.google.protobuf.StringValue\022;\n\t" - "ReportBug\022\026.grpc.ReportBugRequest\032\026.goog" - "le.protobuf.Empty\022E\n\rForceLauncher\022\034.goo" - "gle.protobuf.StringValue\032\026.google.protob" - "uf.Empty\022I\n\021SetMainExecutable\022\034.google.p" - "rotobuf.StringValue\032\026.google.protobuf.Em" - "pty\0223\n\005Login\022\022.grpc.LoginRequest\032\026.googl" - "e.protobuf.Empty\0226\n\010Login2FA\022\022.grpc.Logi" - "nRequest\032\026.google.protobuf.Empty\022=\n\017Logi" - "n2Passwords\022\022.grpc.LoginRequest\032\026.google" - ".protobuf.Empty\022=\n\nLoginAbort\022\027.grpc.Log" - "inAbortRequest\032\026.google.protobuf.Empty\022=" - "\n\013CheckUpdate\022\026.google.protobuf.Empty\032\026." - "google.protobuf.Empty\022\?\n\rInstallUpdate\022\026" - ".google.protobuf.Empty\032\026.google.protobuf" - ".Empty\022L\n\026SetIsAutomaticUpdateOn\022\032.googl" - "e.protobuf.BoolValue\032\026.google.protobuf.E" - "mpty\022I\n\023IsAutomaticUpdateOn\022\026.google.pro" - "tobuf.Empty\032\032.google.protobuf.BoolValue\022" - "J\n\024IsCacheOnDiskEnabled\022\026.google.protobu" - "f.Empty\032\032.google.protobuf.BoolValue\022E\n\rD" - "iskCachePath\022\026.google.protobuf.Empty\032\034.g" - "oogle.protobuf.StringValue\022I\n\020ChangeLoca" - "lCache\022\035.grpc.ChangeLocalCacheRequest\032\026." - "google.protobuf.Empty\022E\n\017SetIsDoHEnabled" - "\022\032.google.protobuf.BoolValue\032\026.google.pr" - "otobuf.Empty\022B\n\014IsDoHEnabled\022\026.google.pr" + "pc.UpdateCheckFinishedH\000\0224\n\016versionChang" + "ed\030\010 \001(\0132\032.grpc.UpdateVersionChangedH\000B\007" + "\n\005event\"7\n\020UpdateErrorEvent\022#\n\004type\030\001 \001(" + "\0162\025.grpc.UpdateErrorType\")\n\026UpdateManual" + "ReadyEvent\022\017\n\007version\030\001 \001(\t\" \n\036UpdateMan" + "ualRestartNeededEvent\"#\n\020UpdateForceEven" + "t\022\017\n\007version\030\001 \001(\t\"\033\n\031UpdateSilentRestar" + "tNeeded\"\027\n\025UpdateIsLatestVersion\"\025\n\023Upda" + "teCheckFinished\"\026\n\024UpdateVersionChanged\"" + "\325\002\n\nCacheEvent\022&\n\005error\030\001 \001(\0132\025.grpc.Cac" + "heErrorEventH\000\022G\n\026locationChangedSuccess" + "\030\002 \001(\0132%.grpc.CacheLocationChangeSuccess" + "EventH\000\022G\n\030changeLocalCacheFinished\030\003 \001(" + "\0132#.grpc.ChangeLocalCacheFinishedEventH\000" + "\022H\n\033isCacheOnDiskEnabledChanged\030\004 \001(\0132!." + "grpc.IsCacheOnDiskEnabledChangedH\000\022:\n\024di" + "skCachePathChanged\030\005 \001(\0132\032.grpc.DiskCach" + "ePathChangedH\000B\007\n\005event\"5\n\017CacheErrorEve" + "nt\022\"\n\004type\030\001 \001(\0162\024.grpc.CacheErrorType\"!" + "\n\037CacheLocationChangeSuccessEvent\"\037\n\035Cha" + "ngeLocalCacheFinishedEvent\".\n\033IsCacheOnD" + "iskEnabledChanged\022\017\n\007enabled\030\001 \001(\010\"$\n\024Di" + "skCachePathChanged\022\014\n\004path\030\001 \001(\t\"\315\001\n\021Mai" + "lSettingsEvent\022-\n\005error\030\001 \001(\0132\034.grpc.Mai" + "lSettingsErrorEventH\000\022A\n\025useSslForSmtpFi" + "nished\030\002 \001(\0132 .grpc.UseSslForSmtpFinishe" + "dEventH\000\022=\n\023changePortsFinished\030\003 \001(\0132\036." + "grpc.ChangePortsFinishedEventH\000B\007\n\005event" + "\"C\n\026MailSettingsErrorEvent\022)\n\004type\030\001 \001(\016" + "2\033.grpc.MailSettingsErrorType\"\034\n\032UseSslF" + "orSmtpFinishedEvent\"\032\n\030ChangePortsFinish" + "edEvent\"\307\001\n\rKeychainEvent\022C\n\026changeKeych" + "ainFinished\030\001 \001(\0132!.grpc.ChangeKeychainF" + "inishedEventH\000\0221\n\rhasNoKeychain\030\002 \001(\0132\030." + "grpc.HasNoKeychainEventH\000\0225\n\017rebuildKeyc" + "hain\030\003 \001(\0132\032.grpc.RebuildKeychainEventH\000" + "B\007\n\005event\"\035\n\033ChangeKeychainFinishedEvent" + "\"\024\n\022HasNoKeychainEvent\"\026\n\024RebuildKeychai" + "nEvent\"\207\002\n\tMailEvent\022J\n\034noActiveKeyForRe" + "cipientEvent\030\001 \001(\0132\".grpc.NoActiveKeyFor" + "RecipientEventH\000\0223\n\016addressChanged\030\002 \001(\013" + "2\031.grpc.AddressChangedEventH\000\022\?\n\024address" + "ChangedLogout\030\003 \001(\0132\037.grpc.AddressChange" + "dLogoutEventH\000\022/\n\014apiCertIssue\030\006 \001(\0132\027.g" + "rpc.ApiCertIssueEventH\000B\007\n\005event\"-\n\034NoAc" + "tiveKeyForRecipientEvent\022\r\n\005email\030\001 \001(\t\"" + "&\n\023AddressChangedEvent\022\017\n\007address\030\001 \001(\t\"" + ",\n\031AddressChangedLogoutEvent\022\017\n\007address\030" + "\001 \001(\t\"\023\n\021ApiCertIssueEvent\"\303\001\n\tUserEvent" + "\022E\n\027toggleSplitModeFinished\030\001 \001(\0132\".grpc" + ".ToggleSplitModeFinishedEventH\000\0227\n\020userD" + "isconnected\030\002 \001(\0132\033.grpc.UserDisconnecte" + "dEventH\000\022-\n\013userChanged\030\003 \001(\0132\026.grpc.Use" + "rChangedEventH\000B\007\n\005event\".\n\034ToggleSplitM" + "odeFinishedEvent\022\016\n\006userID\030\001 \001(\t\")\n\025User" + "DisconnectedEvent\022\020\n\010username\030\001 \001(\t\"\"\n\020U" + "serChangedEvent\022\016\n\006userID\030\001 \001(\t*q\n\010LogLe" + "vel\022\r\n\tLOG_PANIC\020\000\022\r\n\tLOG_FATAL\020\001\022\r\n\tLOG" + "_ERROR\020\002\022\014\n\010LOG_WARN\020\003\022\014\n\010LOG_INFO\020\004\022\r\n\t" + "LOG_DEBUG\020\005\022\r\n\tLOG_TRACE\020\006*\242\001\n\016LoginErro" + "rType\022\033\n\027USERNAME_PASSWORD_ERROR\020\000\022\r\n\tFR" + "EE_USER\020\001\022\024\n\020CONNECTION_ERROR\020\002\022\r\n\tTFA_E" + "RROR\020\003\022\r\n\tTFA_ABORT\020\004\022\027\n\023TWO_PASSWORDS_E" + "RROR\020\005\022\027\n\023TWO_PASSWORDS_ABORT\020\006*[\n\017Updat" + "eErrorType\022\027\n\023UPDATE_MANUAL_ERROR\020\000\022\026\n\022U" + "PDATE_FORCE_ERROR\020\001\022\027\n\023UPDATE_SILENT_ERR" + "OR\020\002*W\n\016CacheErrorType\022\033\n\027CACHE_UNAVAILA" + "BLE_ERROR\020\000\022\031\n\025CACHE_CANT_MOVE_ERROR\020\001\022\r" + "\n\tDISK_FULL\020\002*A\n\025MailSettingsErrorType\022\023" + "\n\017IMAP_PORT_ISSUE\020\000\022\023\n\017SMTP_PORT_ISSUE\020\001" + "2\234\037\n\006Bridge\022\?\n\013AddLogEntry\022\030.grpc.AddLog" + "EntryRequest\032\026.google.protobuf.Empty\022:\n\010" + "GuiReady\022\026.google.protobuf.Empty\032\026.googl" + "e.protobuf.Empty\0226\n\004Quit\022\026.google.protob" + "uf.Empty\032\026.google.protobuf.Empty\0229\n\007Rest" + "art\022\026.google.protobuf.Empty\032\026.google.pro" + "tobuf.Empty\022C\n\rShowOnStartup\022\026.google.pr" "otobuf.Empty\032\032.google.protobuf.BoolValue" - "\022F\n\020SetUseSslForSmtp\022\032.google.protobuf.B" - "oolValue\032\026.google.protobuf.Empty\022C\n\rUseS" - "slForSmtp\022\026.google.protobuf.Empty\032\032.goog" - "le.protobuf.BoolValue\022@\n\010Hostname\022\026.goog" - "le.protobuf.Empty\032\034.google.protobuf.Stri" - "ngValue\022\?\n\010ImapPort\022\026.google.protobuf.Em" - "pty\032\033.google.protobuf.Int32Value\022\?\n\010Smtp" - "Port\022\026.google.protobuf.Empty\032\033.google.pr" - "otobuf.Int32Value\022\?\n\013ChangePorts\022\030.grpc." - "ChangePortsRequest\032\026.google.protobuf.Emp" - "ty\022E\n\nIsPortFree\022\033.google.protobuf.Int32" - "Value\032\032.google.protobuf.BoolValue\022N\n\022Ava" - "ilableKeychains\022\026.google.protobuf.Empty\032" - " .grpc.AvailableKeychainsResponse\022J\n\022Set" - "CurrentKeychain\022\034.google.protobuf.String" - "Value\032\026.google.protobuf.Empty\022G\n\017Current" - "Keychain\022\026.google.protobuf.Empty\032\034.googl" - "e.protobuf.StringValue\022=\n\013GetUserList\022\026." - "google.protobuf.Empty\032\026.grpc.UserListRes" - "ponse\0223\n\007GetUser\022\034.google.protobuf.Strin" - "gValue\032\n.grpc.User\022F\n\020SetUserSplitMode\022\032" - ".grpc.UserSplitModeRequest\032\026.google.prot" - "obuf.Empty\022B\n\nLogoutUser\022\034.google.protob" - "uf.StringValue\032\026.google.protobuf.Empty\022B" - "\n\nRemoveUser\022\034.google.protobuf.StringVal" - "ue\032\026.google.protobuf.Empty\022Q\n\026ConfigureU" - "serAppleMail\022\037.grpc.ConfigureAppleMailRe" - "quest\032\026.google.protobuf.Empty\022\?\n\016RunEven" - "tStream\022\030.grpc.EventStreamRequest\032\021.grpc" - ".StreamEvent0\001\022A\n\017StopEventStream\022\026.goog" - "le.protobuf.Empty\032\026.google.protobuf.Empt" - "yB6Z4github.com/ProtonMail/proton-bridge" - "/v2/internal/grpcb\006proto3" + "\022F\n\020ShowSplashScreen\022\026.google.protobuf.E" + "mpty\032\032.google.protobuf.BoolValue\022E\n\017IsFi" + "rstGuiStart\022\026.google.protobuf.Empty\032\032.go" + "ogle.protobuf.BoolValue\022F\n\020SetIsAutostar" + "tOn\022\032.google.protobuf.BoolValue\032\026.google" + ".protobuf.Empty\022C\n\rIsAutostartOn\022\026.googl" + "e.protobuf.Empty\032\032.google.protobuf.BoolV" + "alue\022F\n\020SetIsBetaEnabled\022\032.google.protob" + "uf.BoolValue\032\026.google.protobuf.Empty\022C\n\r" + "IsBetaEnabled\022\026.google.protobuf.Empty\032\032." + "google.protobuf.BoolValue\022I\n\023SetIsAllMai" + "lVisible\022\032.google.protobuf.BoolValue\032\026.g" + "oogle.protobuf.Empty\022F\n\020IsAllMailVisible" + "\022\026.google.protobuf.Empty\032\032.google.protob" + "uf.BoolValue\022<\n\004GoOs\022\026.google.protobuf.E" + "mpty\032\034.google.protobuf.StringValue\022>\n\014Tr" + "iggerReset\022\026.google.protobuf.Empty\032\026.goo" + "gle.protobuf.Empty\022\?\n\007Version\022\026.google.p" + "rotobuf.Empty\032\034.google.protobuf.StringVa" + "lue\022@\n\010LogsPath\022\026.google.protobuf.Empty\032" + "\034.google.protobuf.StringValue\022C\n\013License" + "Path\022\026.google.protobuf.Empty\032\034.google.pr" + "otobuf.StringValue\022L\n\024ReleaseNotesPageLi" + "nk\022\026.google.protobuf.Empty\032\034.google.prot" + "obuf.StringValue\022N\n\026DependencyLicensesLi" + "nk\022\026.google.protobuf.Empty\032\034.google.prot" + "obuf.StringValue\022G\n\017LandingPageLink\022\026.go" + "ogle.protobuf.Empty\032\034.google.protobuf.St" + "ringValue\022J\n\022SetColorSchemeName\022\034.google" + ".protobuf.StringValue\032\026.google.protobuf." + "Empty\022G\n\017ColorSchemeName\022\026.google.protob" + "uf.Empty\032\034.google.protobuf.StringValue\022J" + "\n\022CurrentEmailClient\022\026.google.protobuf.E" + "mpty\032\034.google.protobuf.StringValue\022;\n\tRe" + "portBug\022\026.grpc.ReportBugRequest\032\026.google" + ".protobuf.Empty\022E\n\rForceLauncher\022\034.googl" + "e.protobuf.StringValue\032\026.google.protobuf" + ".Empty\022I\n\021SetMainExecutable\022\034.google.pro" + "tobuf.StringValue\032\026.google.protobuf.Empt" + "y\0223\n\005Login\022\022.grpc.LoginRequest\032\026.google." + "protobuf.Empty\0226\n\010Login2FA\022\022.grpc.LoginR" + "equest\032\026.google.protobuf.Empty\022=\n\017Login2" + "Passwords\022\022.grpc.LoginRequest\032\026.google.p" + "rotobuf.Empty\022=\n\nLoginAbort\022\027.grpc.Login" + "AbortRequest\032\026.google.protobuf.Empty\022=\n\013" + "CheckUpdate\022\026.google.protobuf.Empty\032\026.go" + "ogle.protobuf.Empty\022\?\n\rInstallUpdate\022\026.g" + "oogle.protobuf.Empty\032\026.google.protobuf.E" + "mpty\022L\n\026SetIsAutomaticUpdateOn\022\032.google." + "protobuf.BoolValue\032\026.google.protobuf.Emp" + "ty\022I\n\023IsAutomaticUpdateOn\022\026.google.proto" + "buf.Empty\032\032.google.protobuf.BoolValue\022J\n" + "\024IsCacheOnDiskEnabled\022\026.google.protobuf." + "Empty\032\032.google.protobuf.BoolValue\022E\n\rDis" + "kCachePath\022\026.google.protobuf.Empty\032\034.goo" + "gle.protobuf.StringValue\022I\n\020ChangeLocalC" + "ache\022\035.grpc.ChangeLocalCacheRequest\032\026.go" + "ogle.protobuf.Empty\022E\n\017SetIsDoHEnabled\022\032" + ".google.protobuf.BoolValue\032\026.google.prot" + "obuf.Empty\022B\n\014IsDoHEnabled\022\026.google.prot" + "obuf.Empty\032\032.google.protobuf.BoolValue\022F" + "\n\020SetUseSslForSmtp\022\032.google.protobuf.Boo" + "lValue\032\026.google.protobuf.Empty\022C\n\rUseSsl" + "ForSmtp\022\026.google.protobuf.Empty\032\032.google" + ".protobuf.BoolValue\022@\n\010Hostname\022\026.google" + ".protobuf.Empty\032\034.google.protobuf.String" + "Value\022\?\n\010ImapPort\022\026.google.protobuf.Empt" + "y\032\033.google.protobuf.Int32Value\022\?\n\010SmtpPo" + "rt\022\026.google.protobuf.Empty\032\033.google.prot" + "obuf.Int32Value\022\?\n\013ChangePorts\022\030.grpc.Ch" + "angePortsRequest\032\026.google.protobuf.Empty" + "\022E\n\nIsPortFree\022\033.google.protobuf.Int32Va" + "lue\032\032.google.protobuf.BoolValue\022N\n\022Avail" + "ableKeychains\022\026.google.protobuf.Empty\032 ." + "grpc.AvailableKeychainsResponse\022J\n\022SetCu" + "rrentKeychain\022\034.google.protobuf.StringVa" + "lue\032\026.google.protobuf.Empty\022G\n\017CurrentKe" + "ychain\022\026.google.protobuf.Empty\032\034.google." + "protobuf.StringValue\022=\n\013GetUserList\022\026.go" + "ogle.protobuf.Empty\032\026.grpc.UserListRespo" + "nse\0223\n\007GetUser\022\034.google.protobuf.StringV" + "alue\032\n.grpc.User\022F\n\020SetUserSplitMode\022\032.g" + "rpc.UserSplitModeRequest\032\026.google.protob" + "uf.Empty\022B\n\nLogoutUser\022\034.google.protobuf" + ".StringValue\032\026.google.protobuf.Empty\022B\n\n" + "RemoveUser\022\034.google.protobuf.StringValue" + "\032\026.google.protobuf.Empty\022Q\n\026ConfigureUse" + "rAppleMail\022\037.grpc.ConfigureAppleMailRequ" + "est\032\026.google.protobuf.Empty\022\?\n\016RunEventS" + "tream\022\030.grpc.EventStreamRequest\032\021.grpc.S" + "treamEvent0\001\022A\n\017StopEventStream\022\026.google" + ".protobuf.Empty\032\026.google.protobuf.EmptyB" + "6Z4github.com/ProtonMail/proton-bridge/v" + "2/internal/grpcb\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps[2] = { &::descriptor_table_google_2fprotobuf_2fempty_2eproto, @@ -1576,9 +1598,9 @@ static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps }; static ::_pbi::once_flag descriptor_table_bridge_2eproto_once; const ::_pbi::DescriptorTable descriptor_table_bridge_2eproto = { - false, false, 9545, descriptor_table_protodef_bridge_2eproto, + false, false, 9623, descriptor_table_protodef_bridge_2eproto, "bridge.proto", - &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 57, + &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 58, schemas, file_default_instances, TableStruct_bridge_2eproto::offsets, file_level_metadata_bridge_2eproto, file_level_enum_descriptors_bridge_2eproto, file_level_service_descriptors_bridge_2eproto, @@ -7703,6 +7725,7 @@ class UpdateEvent::_Internal { static const ::grpc::UpdateSilentRestartNeeded& silentrestartneeded(const UpdateEvent* msg); static const ::grpc::UpdateIsLatestVersion& islatestversion(const UpdateEvent* msg); static const ::grpc::UpdateCheckFinished& checkfinished(const UpdateEvent* msg); + static const ::grpc::UpdateVersionChanged& versionchanged(const UpdateEvent* msg); }; const ::grpc::UpdateErrorEvent& @@ -7733,6 +7756,10 @@ const ::grpc::UpdateCheckFinished& UpdateEvent::_Internal::checkfinished(const UpdateEvent* msg) { return *msg->_impl_.event_.checkfinished_; } +const ::grpc::UpdateVersionChanged& +UpdateEvent::_Internal::versionchanged(const UpdateEvent* msg) { + return *msg->_impl_.event_.versionchanged_; +} void UpdateEvent::set_allocated_error(::grpc::UpdateErrorEvent* error) { ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); clear_event(); @@ -7838,6 +7865,21 @@ void UpdateEvent::set_allocated_checkfinished(::grpc::UpdateCheckFinished* check } // @@protoc_insertion_point(field_set_allocated:grpc.UpdateEvent.checkFinished) } +void UpdateEvent::set_allocated_versionchanged(::grpc::UpdateVersionChanged* versionchanged) { + ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation(); + clear_event(); + if (versionchanged) { + ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena = + ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(versionchanged); + if (message_arena != submessage_arena) { + versionchanged = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage( + message_arena, versionchanged, submessage_arena); + } + set_has_versionchanged(); + _impl_.event_.versionchanged_ = versionchanged; + } + // @@protoc_insertion_point(field_set_allocated:grpc.UpdateEvent.versionChanged) +} UpdateEvent::UpdateEvent(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned) : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { @@ -7890,6 +7932,11 @@ UpdateEvent::UpdateEvent(const UpdateEvent& from) from._internal_checkfinished()); break; } + case kVersionChanged: { + _this->_internal_mutable_versionchanged()->::grpc::UpdateVersionChanged::MergeFrom( + from._internal_versionchanged()); + break; + } case EVENT_NOT_SET: { break; } @@ -7974,6 +8021,12 @@ void UpdateEvent::clear_event() { } break; } + case kVersionChanged: { + if (GetArenaForAllocation() == nullptr) { + delete _impl_.event_.versionchanged_; + } + break; + } case EVENT_NOT_SET: { break; } @@ -8054,6 +8107,14 @@ const char* UpdateEvent::_InternalParse(const char* ptr, ::_pbi::ParseContext* c } else goto handle_unusual; continue; + // .grpc.UpdateVersionChanged versionChanged = 8; + case 8: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 66)) { + ptr = ctx->ParseMessage(_internal_mutable_versionchanged(), ptr); + CHK_(ptr); + } else + goto handle_unusual; + continue; default: goto handle_unusual; } // switch @@ -8132,6 +8193,13 @@ uint8_t* UpdateEvent::_InternalSerialize( _Internal::checkfinished(this).GetCachedSize(), target, stream); } + // .grpc.UpdateVersionChanged versionChanged = 8; + if (_internal_has_versionchanged()) { + target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite:: + InternalWriteMessage(8, _Internal::versionchanged(this), + _Internal::versionchanged(this).GetCachedSize(), target, stream); + } + if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream); @@ -8198,6 +8266,13 @@ size_t UpdateEvent::ByteSizeLong() const { *_impl_.event_.checkfinished_); break; } + // .grpc.UpdateVersionChanged versionChanged = 8; + case kVersionChanged: { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize( + *_impl_.event_.versionchanged_); + break; + } case EVENT_NOT_SET: { break; } @@ -8256,6 +8331,11 @@ void UpdateEvent::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PR from._internal_checkfinished()); break; } + case kVersionChanged: { + _this->_internal_mutable_versionchanged()->::grpc::UpdateVersionChanged::MergeFrom( + from._internal_versionchanged()); + break; + } case EVENT_NOT_SET: { break; } @@ -9036,6 +9116,46 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateCheckFinished::GetClassD // =================================================================== +class UpdateVersionChanged::_Internal { + public: +}; + +UpdateVersionChanged::UpdateVersionChanged(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase(arena, is_message_owned) { + // @@protoc_insertion_point(arena_constructor:grpc.UpdateVersionChanged) +} +UpdateVersionChanged::UpdateVersionChanged(const UpdateVersionChanged& from) + : ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase() { + UpdateVersionChanged* const _this = this; (void)_this; + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + // @@protoc_insertion_point(copy_constructor:grpc.UpdateVersionChanged) +} + + + + + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UpdateVersionChanged::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl, + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl, +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateVersionChanged::GetClassData() const { return &_class_data_; } + + + + + + + +::PROTOBUF_NAMESPACE_ID::Metadata UpdateVersionChanged::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, + file_level_metadata_bridge_2eproto[34]); +} + +// =================================================================== + class CacheEvent::_Internal { public: static const ::grpc::CacheErrorEvent& error(const CacheEvent* msg); @@ -9510,7 +9630,7 @@ void CacheEvent::InternalSwap(CacheEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata CacheEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[34]); + file_level_metadata_bridge_2eproto[35]); } // =================================================================== @@ -9691,7 +9811,7 @@ void CacheErrorEvent::InternalSwap(CacheErrorEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata CacheErrorEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[35]); + file_level_metadata_bridge_2eproto[36]); } // =================================================================== @@ -9731,7 +9851,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CacheLocationChangeSuccessEven ::PROTOBUF_NAMESPACE_ID::Metadata CacheLocationChangeSuccessEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[36]); + file_level_metadata_bridge_2eproto[37]); } // =================================================================== @@ -9771,7 +9891,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeLocalCacheFinishedEvent: ::PROTOBUF_NAMESPACE_ID::Metadata ChangeLocalCacheFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[37]); + file_level_metadata_bridge_2eproto[38]); } // =================================================================== @@ -9949,7 +10069,7 @@ void IsCacheOnDiskEnabledChanged::InternalSwap(IsCacheOnDiskEnabledChanged* othe ::PROTOBUF_NAMESPACE_ID::Metadata IsCacheOnDiskEnabledChanged::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[38]); + file_level_metadata_bridge_2eproto[39]); } // =================================================================== @@ -10152,7 +10272,7 @@ void DiskCachePathChanged::InternalSwap(DiskCachePathChanged* other) { ::PROTOBUF_NAMESPACE_ID::Metadata DiskCachePathChanged::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[39]); + file_level_metadata_bridge_2eproto[40]); } // =================================================================== @@ -10515,7 +10635,7 @@ void MailSettingsEvent::InternalSwap(MailSettingsEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata MailSettingsEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[40]); + file_level_metadata_bridge_2eproto[41]); } // =================================================================== @@ -10696,7 +10816,7 @@ void MailSettingsErrorEvent::InternalSwap(MailSettingsErrorEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata MailSettingsErrorEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[41]); + file_level_metadata_bridge_2eproto[42]); } // =================================================================== @@ -10736,7 +10856,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UseSslForSmtpFinishedEvent::Ge ::PROTOBUF_NAMESPACE_ID::Metadata UseSslForSmtpFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[42]); + file_level_metadata_bridge_2eproto[43]); } // =================================================================== @@ -10776,7 +10896,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangePortsFinishedEvent::GetC ::PROTOBUF_NAMESPACE_ID::Metadata ChangePortsFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[43]); + file_level_metadata_bridge_2eproto[44]); } // =================================================================== @@ -11139,7 +11259,7 @@ void KeychainEvent::InternalSwap(KeychainEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata KeychainEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[44]); + file_level_metadata_bridge_2eproto[45]); } // =================================================================== @@ -11179,7 +11299,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ChangeKeychainFinishedEvent::G ::PROTOBUF_NAMESPACE_ID::Metadata ChangeKeychainFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[45]); + file_level_metadata_bridge_2eproto[46]); } // =================================================================== @@ -11219,7 +11339,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*HasNoKeychainEvent::GetClassDa ::PROTOBUF_NAMESPACE_ID::Metadata HasNoKeychainEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[46]); + file_level_metadata_bridge_2eproto[47]); } // =================================================================== @@ -11259,7 +11379,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RebuildKeychainEvent::GetClass ::PROTOBUF_NAMESPACE_ID::Metadata RebuildKeychainEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[47]); + file_level_metadata_bridge_2eproto[48]); } // =================================================================== @@ -11680,7 +11800,7 @@ void MailEvent::InternalSwap(MailEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata MailEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[48]); + file_level_metadata_bridge_2eproto[49]); } // =================================================================== @@ -11883,7 +12003,7 @@ void NoActiveKeyForRecipientEvent::InternalSwap(NoActiveKeyForRecipientEvent* ot ::PROTOBUF_NAMESPACE_ID::Metadata NoActiveKeyForRecipientEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[49]); + file_level_metadata_bridge_2eproto[50]); } // =================================================================== @@ -12086,7 +12206,7 @@ void AddressChangedEvent::InternalSwap(AddressChangedEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata AddressChangedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[50]); + file_level_metadata_bridge_2eproto[51]); } // =================================================================== @@ -12289,7 +12409,7 @@ void AddressChangedLogoutEvent::InternalSwap(AddressChangedLogoutEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata AddressChangedLogoutEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[51]); + file_level_metadata_bridge_2eproto[52]); } // =================================================================== @@ -12329,7 +12449,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ApiCertIssueEvent::GetClassDat ::PROTOBUF_NAMESPACE_ID::Metadata ApiCertIssueEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[52]); + file_level_metadata_bridge_2eproto[53]); } // =================================================================== @@ -12692,7 +12812,7 @@ void UserEvent::InternalSwap(UserEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UserEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[53]); + file_level_metadata_bridge_2eproto[54]); } // =================================================================== @@ -12895,7 +13015,7 @@ void ToggleSplitModeFinishedEvent::InternalSwap(ToggleSplitModeFinishedEvent* ot ::PROTOBUF_NAMESPACE_ID::Metadata ToggleSplitModeFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[54]); + file_level_metadata_bridge_2eproto[55]); } // =================================================================== @@ -13098,7 +13218,7 @@ void UserDisconnectedEvent::InternalSwap(UserDisconnectedEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UserDisconnectedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[55]); + file_level_metadata_bridge_2eproto[56]); } // =================================================================== @@ -13301,7 +13421,7 @@ void UserChangedEvent::InternalSwap(UserChangedEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UserChangedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[56]); + file_level_metadata_bridge_2eproto[57]); } // @@protoc_insertion_point(namespace_scope) @@ -13443,6 +13563,10 @@ template<> PROTOBUF_NOINLINE ::grpc::UpdateCheckFinished* Arena::CreateMaybeMessage< ::grpc::UpdateCheckFinished >(Arena* arena) { return Arena::CreateMessageInternal< ::grpc::UpdateCheckFinished >(arena); } +template<> PROTOBUF_NOINLINE ::grpc::UpdateVersionChanged* +Arena::CreateMaybeMessage< ::grpc::UpdateVersionChanged >(Arena* arena) { + return Arena::CreateMessageInternal< ::grpc::UpdateVersionChanged >(arena); +} template<> PROTOBUF_NOINLINE ::grpc::CacheEvent* Arena::CreateMaybeMessage< ::grpc::CacheEvent >(Arena* arena) { return Arena::CreateMessageInternal< ::grpc::CacheEvent >(arena); diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h index da09d9ec..efdcaea5 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h @@ -199,6 +199,9 @@ extern UpdateManualRestartNeededEventDefaultTypeInternal _UpdateManualRestartNee class UpdateSilentRestartNeeded; struct UpdateSilentRestartNeededDefaultTypeInternal; extern UpdateSilentRestartNeededDefaultTypeInternal _UpdateSilentRestartNeeded_default_instance_; +class UpdateVersionChanged; +struct UpdateVersionChangedDefaultTypeInternal; +extern UpdateVersionChangedDefaultTypeInternal _UpdateVersionChanged_default_instance_; class UseSslForSmtpFinishedEvent; struct UseSslForSmtpFinishedEventDefaultTypeInternal; extern UseSslForSmtpFinishedEventDefaultTypeInternal _UseSslForSmtpFinishedEvent_default_instance_; @@ -272,6 +275,7 @@ template<> ::grpc::UpdateIsLatestVersion* Arena::CreateMaybeMessage<::grpc::Upda template<> ::grpc::UpdateManualReadyEvent* Arena::CreateMaybeMessage<::grpc::UpdateManualReadyEvent>(Arena*); template<> ::grpc::UpdateManualRestartNeededEvent* Arena::CreateMaybeMessage<::grpc::UpdateManualRestartNeededEvent>(Arena*); template<> ::grpc::UpdateSilentRestartNeeded* Arena::CreateMaybeMessage<::grpc::UpdateSilentRestartNeeded>(Arena*); +template<> ::grpc::UpdateVersionChanged* Arena::CreateMaybeMessage<::grpc::UpdateVersionChanged>(Arena*); template<> ::grpc::UseSslForSmtpFinishedEvent* Arena::CreateMaybeMessage<::grpc::UseSslForSmtpFinishedEvent>(Arena*); template<> ::grpc::User* Arena::CreateMaybeMessage<::grpc::User>(Arena*); template<> ::grpc::UserChangedEvent* Arena::CreateMaybeMessage<::grpc::UserChangedEvent>(Arena*); @@ -4953,6 +4957,7 @@ class UpdateEvent final : kSilentRestartNeeded = 5, kIsLatestVersion = 6, kCheckFinished = 7, + kVersionChanged = 8, EVENT_NOT_SET = 0, }; @@ -5041,6 +5046,7 @@ class UpdateEvent final : kSilentRestartNeededFieldNumber = 5, kIsLatestVersionFieldNumber = 6, kCheckFinishedFieldNumber = 7, + kVersionChangedFieldNumber = 8, }; // .grpc.UpdateErrorEvent error = 1; bool has_error() const; @@ -5168,6 +5174,24 @@ class UpdateEvent final : ::grpc::UpdateCheckFinished* checkfinished); ::grpc::UpdateCheckFinished* unsafe_arena_release_checkfinished(); + // .grpc.UpdateVersionChanged versionChanged = 8; + bool has_versionchanged() const; + private: + bool _internal_has_versionchanged() const; + public: + void clear_versionchanged(); + const ::grpc::UpdateVersionChanged& versionchanged() const; + PROTOBUF_NODISCARD ::grpc::UpdateVersionChanged* release_versionchanged(); + ::grpc::UpdateVersionChanged* mutable_versionchanged(); + void set_allocated_versionchanged(::grpc::UpdateVersionChanged* versionchanged); + private: + const ::grpc::UpdateVersionChanged& _internal_versionchanged() const; + ::grpc::UpdateVersionChanged* _internal_mutable_versionchanged(); + public: + void unsafe_arena_set_allocated_versionchanged( + ::grpc::UpdateVersionChanged* versionchanged); + ::grpc::UpdateVersionChanged* unsafe_arena_release_versionchanged(); + void clear_event(); EventCase event_case() const; // @@protoc_insertion_point(class_scope:grpc.UpdateEvent) @@ -5180,6 +5204,7 @@ class UpdateEvent final : void set_has_silentrestartneeded(); void set_has_islatestversion(); void set_has_checkfinished(); + void set_has_versionchanged(); inline bool has_event() const; inline void clear_has_event(); @@ -5198,6 +5223,7 @@ class UpdateEvent final : ::grpc::UpdateSilentRestartNeeded* silentrestartneeded_; ::grpc::UpdateIsLatestVersion* islatestversion_; ::grpc::UpdateCheckFinished* checkfinished_; + ::grpc::UpdateVersionChanged* versionchanged_; } event_; mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; uint32_t _oneof_case_[1]; @@ -6134,6 +6160,124 @@ class UpdateCheckFinished final : }; // ------------------------------------------------------------------- +class UpdateVersionChanged final : + public ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase /* @@protoc_insertion_point(class_definition:grpc.UpdateVersionChanged) */ { + public: + inline UpdateVersionChanged() : UpdateVersionChanged(nullptr) {} + explicit PROTOBUF_CONSTEXPR UpdateVersionChanged(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + UpdateVersionChanged(const UpdateVersionChanged& from); + UpdateVersionChanged(UpdateVersionChanged&& from) noexcept + : UpdateVersionChanged() { + *this = ::std::move(from); + } + + inline UpdateVersionChanged& operator=(const UpdateVersionChanged& from) { + CopyFrom(from); + return *this; + } + inline UpdateVersionChanged& operator=(UpdateVersionChanged&& from) noexcept { + if (this == &from) return *this; + if (GetOwningArena() == from.GetOwningArena() + #ifdef PROTOBUF_FORCE_COPY_IN_MOVE + && GetOwningArena() != nullptr + #endif // !PROTOBUF_FORCE_COPY_IN_MOVE + ) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::PROTOBUF_NAMESPACE_ID::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::PROTOBUF_NAMESPACE_ID::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const UpdateVersionChanged& default_instance() { + return *internal_default_instance(); + } + static inline const UpdateVersionChanged* internal_default_instance() { + return reinterpret_cast( + &_UpdateVersionChanged_default_instance_); + } + static constexpr int kIndexInFileMessages = + 34; + + friend void swap(UpdateVersionChanged& a, UpdateVersionChanged& b) { + a.Swap(&b); + } + inline void Swap(UpdateVersionChanged* other) { + if (other == this) return; + #ifdef PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() != nullptr && + GetOwningArena() == other->GetOwningArena()) { + #else // PROTOBUF_FORCE_COPY_IN_SWAP + if (GetOwningArena() == other->GetOwningArena()) { + #endif // !PROTOBUF_FORCE_COPY_IN_SWAP + InternalSwap(other); + } else { + ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(UpdateVersionChanged* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + UpdateVersionChanged* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyFrom; + inline void CopyFrom(const UpdateVersionChanged& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::CopyImpl(*this, from); + } + using ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeFrom; + void MergeFrom(const UpdateVersionChanged& from) { + ::PROTOBUF_NAMESPACE_ID::internal::ZeroFieldsBase::MergeImpl(*this, from); + } + public: + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "grpc.UpdateVersionChanged"; + } + protected: + explicit UpdateVersionChanged(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned = false); + public: + + static const ClassData _class_data_; + const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*GetClassData() const final; + + ::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // @@protoc_insertion_point(class_scope:grpc.UpdateVersionChanged) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + }; + friend struct ::TableStruct_bridge_2eproto; +}; +// ------------------------------------------------------------------- + class CacheEvent final : public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.CacheEvent) */ { public: @@ -6191,7 +6335,7 @@ class CacheEvent final : &_CacheEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 34; + 35; friend void swap(CacheEvent& a, CacheEvent& b) { a.Swap(&b); @@ -6444,7 +6588,7 @@ class CacheErrorEvent final : &_CacheErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 35; + 36; friend void swap(CacheErrorEvent& a, CacheErrorEvent& b) { a.Swap(&b); @@ -6591,7 +6735,7 @@ class CacheLocationChangeSuccessEvent final : &_CacheLocationChangeSuccessEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 36; + 37; friend void swap(CacheLocationChangeSuccessEvent& a, CacheLocationChangeSuccessEvent& b) { a.Swap(&b); @@ -6709,7 +6853,7 @@ class ChangeLocalCacheFinishedEvent final : &_ChangeLocalCacheFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 37; + 38; friend void swap(ChangeLocalCacheFinishedEvent& a, ChangeLocalCacheFinishedEvent& b) { a.Swap(&b); @@ -6828,7 +6972,7 @@ class IsCacheOnDiskEnabledChanged final : &_IsCacheOnDiskEnabledChanged_default_instance_); } static constexpr int kIndexInFileMessages = - 38; + 39; friend void swap(IsCacheOnDiskEnabledChanged& a, IsCacheOnDiskEnabledChanged& b) { a.Swap(&b); @@ -6976,7 +7120,7 @@ class DiskCachePathChanged final : &_DiskCachePathChanged_default_instance_); } static constexpr int kIndexInFileMessages = - 39; + 40; friend void swap(DiskCachePathChanged& a, DiskCachePathChanged& b) { a.Swap(&b); @@ -7136,7 +7280,7 @@ class MailSettingsEvent final : &_MailSettingsEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 40; + 41; friend void swap(MailSettingsEvent& a, MailSettingsEvent& b) { a.Swap(&b); @@ -7347,7 +7491,7 @@ class MailSettingsErrorEvent final : &_MailSettingsErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 41; + 42; friend void swap(MailSettingsErrorEvent& a, MailSettingsErrorEvent& b) { a.Swap(&b); @@ -7494,7 +7638,7 @@ class UseSslForSmtpFinishedEvent final : &_UseSslForSmtpFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 42; + 43; friend void swap(UseSslForSmtpFinishedEvent& a, UseSslForSmtpFinishedEvent& b) { a.Swap(&b); @@ -7612,7 +7756,7 @@ class ChangePortsFinishedEvent final : &_ChangePortsFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 43; + 44; friend void swap(ChangePortsFinishedEvent& a, ChangePortsFinishedEvent& b) { a.Swap(&b); @@ -7738,7 +7882,7 @@ class KeychainEvent final : &_KeychainEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 44; + 45; friend void swap(KeychainEvent& a, KeychainEvent& b) { a.Swap(&b); @@ -7948,7 +8092,7 @@ class ChangeKeychainFinishedEvent final : &_ChangeKeychainFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 45; + 46; friend void swap(ChangeKeychainFinishedEvent& a, ChangeKeychainFinishedEvent& b) { a.Swap(&b); @@ -8066,7 +8210,7 @@ class HasNoKeychainEvent final : &_HasNoKeychainEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 46; + 47; friend void swap(HasNoKeychainEvent& a, HasNoKeychainEvent& b) { a.Swap(&b); @@ -8184,7 +8328,7 @@ class RebuildKeychainEvent final : &_RebuildKeychainEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 47; + 48; friend void swap(RebuildKeychainEvent& a, RebuildKeychainEvent& b) { a.Swap(&b); @@ -8311,7 +8455,7 @@ class MailEvent final : &_MailEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 48; + 49; friend void swap(MailEvent& a, MailEvent& b) { a.Swap(&b); @@ -8543,7 +8687,7 @@ class NoActiveKeyForRecipientEvent final : &_NoActiveKeyForRecipientEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 49; + 50; friend void swap(NoActiveKeyForRecipientEvent& a, NoActiveKeyForRecipientEvent& b) { a.Swap(&b); @@ -8696,7 +8840,7 @@ class AddressChangedEvent final : &_AddressChangedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 50; + 51; friend void swap(AddressChangedEvent& a, AddressChangedEvent& b) { a.Swap(&b); @@ -8849,7 +8993,7 @@ class AddressChangedLogoutEvent final : &_AddressChangedLogoutEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 51; + 52; friend void swap(AddressChangedLogoutEvent& a, AddressChangedLogoutEvent& b) { a.Swap(&b); @@ -9001,7 +9145,7 @@ class ApiCertIssueEvent final : &_ApiCertIssueEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 52; + 53; friend void swap(ApiCertIssueEvent& a, ApiCertIssueEvent& b) { a.Swap(&b); @@ -9127,7 +9271,7 @@ class UserEvent final : &_UserEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 53; + 54; friend void swap(UserEvent& a, UserEvent& b) { a.Swap(&b); @@ -9338,7 +9482,7 @@ class ToggleSplitModeFinishedEvent final : &_ToggleSplitModeFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 54; + 55; friend void swap(ToggleSplitModeFinishedEvent& a, ToggleSplitModeFinishedEvent& b) { a.Swap(&b); @@ -9491,7 +9635,7 @@ class UserDisconnectedEvent final : &_UserDisconnectedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 55; + 56; friend void swap(UserDisconnectedEvent& a, UserDisconnectedEvent& b) { a.Swap(&b); @@ -9644,7 +9788,7 @@ class UserChangedEvent final : &_UserChangedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 56; + 57; friend void swap(UserChangedEvent& a, UserChangedEvent& b) { a.Swap(&b); @@ -13437,6 +13581,80 @@ inline ::grpc::UpdateCheckFinished* UpdateEvent::mutable_checkfinished() { return _msg; } +// .grpc.UpdateVersionChanged versionChanged = 8; +inline bool UpdateEvent::_internal_has_versionchanged() const { + return event_case() == kVersionChanged; +} +inline bool UpdateEvent::has_versionchanged() const { + return _internal_has_versionchanged(); +} +inline void UpdateEvent::set_has_versionchanged() { + _impl_._oneof_case_[0] = kVersionChanged; +} +inline void UpdateEvent::clear_versionchanged() { + if (_internal_has_versionchanged()) { + if (GetArenaForAllocation() == nullptr) { + delete _impl_.event_.versionchanged_; + } + clear_has_event(); + } +} +inline ::grpc::UpdateVersionChanged* UpdateEvent::release_versionchanged() { + // @@protoc_insertion_point(field_release:grpc.UpdateEvent.versionChanged) + if (_internal_has_versionchanged()) { + clear_has_event(); + ::grpc::UpdateVersionChanged* temp = _impl_.event_.versionchanged_; + if (GetArenaForAllocation() != nullptr) { + temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp); + } + _impl_.event_.versionchanged_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::grpc::UpdateVersionChanged& UpdateEvent::_internal_versionchanged() const { + return _internal_has_versionchanged() + ? *_impl_.event_.versionchanged_ + : reinterpret_cast< ::grpc::UpdateVersionChanged&>(::grpc::_UpdateVersionChanged_default_instance_); +} +inline const ::grpc::UpdateVersionChanged& UpdateEvent::versionchanged() const { + // @@protoc_insertion_point(field_get:grpc.UpdateEvent.versionChanged) + return _internal_versionchanged(); +} +inline ::grpc::UpdateVersionChanged* UpdateEvent::unsafe_arena_release_versionchanged() { + // @@protoc_insertion_point(field_unsafe_arena_release:grpc.UpdateEvent.versionChanged) + if (_internal_has_versionchanged()) { + clear_has_event(); + ::grpc::UpdateVersionChanged* temp = _impl_.event_.versionchanged_; + _impl_.event_.versionchanged_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline void UpdateEvent::unsafe_arena_set_allocated_versionchanged(::grpc::UpdateVersionChanged* versionchanged) { + clear_event(); + if (versionchanged) { + set_has_versionchanged(); + _impl_.event_.versionchanged_ = versionchanged; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.UpdateEvent.versionChanged) +} +inline ::grpc::UpdateVersionChanged* UpdateEvent::_internal_mutable_versionchanged() { + if (!_internal_has_versionchanged()) { + clear_event(); + set_has_versionchanged(); + _impl_.event_.versionchanged_ = CreateMaybeMessage< ::grpc::UpdateVersionChanged >(GetArenaForAllocation()); + } + return _impl_.event_.versionchanged_; +} +inline ::grpc::UpdateVersionChanged* UpdateEvent::mutable_versionchanged() { + ::grpc::UpdateVersionChanged* _msg = _internal_mutable_versionchanged(); + // @@protoc_insertion_point(field_mutable:grpc.UpdateEvent.versionChanged) + return _msg; +} + inline bool UpdateEvent::has_event() const { return event_case() != EVENT_NOT_SET; } @@ -13596,6 +13814,10 @@ inline void UpdateForceEvent::set_allocated_version(std::string* version) { // ------------------------------------------------------------------- +// UpdateVersionChanged + +// ------------------------------------------------------------------- + // CacheEvent // .grpc.CacheErrorEvent error = 1; @@ -15588,6 +15810,8 @@ inline void UserChangedEvent::set_allocated_userid(std::string* userid) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/internal/frontend/grpc/bridge.pb.go b/internal/frontend/grpc/bridge.pb.go index a074d31e..6bf327b3 100644 --- a/internal/frontend/grpc/bridge.pb.go +++ b/internal/frontend/grpc/bridge.pb.go @@ -1976,6 +1976,7 @@ type UpdateEvent struct { // *UpdateEvent_SilentRestartNeeded // *UpdateEvent_IsLatestVersion // *UpdateEvent_CheckFinished + // *UpdateEvent_VersionChanged Event isUpdateEvent_Event `protobuf_oneof:"event"` } @@ -2067,6 +2068,13 @@ func (x *UpdateEvent) GetCheckFinished() *UpdateCheckFinished { return nil } +func (x *UpdateEvent) GetVersionChanged() *UpdateVersionChanged { + if x, ok := x.GetEvent().(*UpdateEvent_VersionChanged); ok { + return x.VersionChanged + } + return nil +} + type isUpdateEvent_Event interface { isUpdateEvent_Event() } @@ -2099,6 +2107,10 @@ type UpdateEvent_CheckFinished struct { CheckFinished *UpdateCheckFinished `protobuf:"bytes,7,opt,name=checkFinished,proto3,oneof"` } +type UpdateEvent_VersionChanged struct { + VersionChanged *UpdateVersionChanged `protobuf:"bytes,8,opt,name=versionChanged,proto3,oneof"` +} + func (*UpdateEvent_Error) isUpdateEvent_Event() {} func (*UpdateEvent_ManualReady) isUpdateEvent_Event() {} @@ -2113,6 +2125,8 @@ func (*UpdateEvent_IsLatestVersion) isUpdateEvent_Event() {} func (*UpdateEvent_CheckFinished) isUpdateEvent_Event() {} +func (*UpdateEvent_VersionChanged) isUpdateEvent_Event() {} + type UpdateErrorEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2406,6 +2420,44 @@ func (*UpdateCheckFinished) Descriptor() ([]byte, []int) { return file_bridge_proto_rawDescGZIP(), []int{33} } +type UpdateVersionChanged struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateVersionChanged) Reset() { + *x = UpdateVersionChanged{} + if protoimpl.UnsafeEnabled { + mi := &file_bridge_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateVersionChanged) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateVersionChanged) ProtoMessage() {} + +func (x *UpdateVersionChanged) ProtoReflect() protoreflect.Message { + mi := &file_bridge_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 UpdateVersionChanged.ProtoReflect.Descriptor instead. +func (*UpdateVersionChanged) Descriptor() ([]byte, []int) { + return file_bridge_proto_rawDescGZIP(), []int{34} +} + //********************************************************** // Cache on disk related events //********************************************************** @@ -2426,7 +2478,7 @@ type CacheEvent struct { func (x *CacheEvent) Reset() { *x = CacheEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[34] + mi := &file_bridge_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2439,7 +2491,7 @@ func (x *CacheEvent) String() string { func (*CacheEvent) ProtoMessage() {} func (x *CacheEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[34] + mi := &file_bridge_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2452,7 +2504,7 @@ func (x *CacheEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheEvent.ProtoReflect.Descriptor instead. func (*CacheEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{34} + return file_bridge_proto_rawDescGZIP(), []int{35} } func (m *CacheEvent) GetEvent() isCacheEvent_Event { @@ -2542,7 +2594,7 @@ type CacheErrorEvent struct { func (x *CacheErrorEvent) Reset() { *x = CacheErrorEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[35] + mi := &file_bridge_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2555,7 +2607,7 @@ func (x *CacheErrorEvent) String() string { func (*CacheErrorEvent) ProtoMessage() {} func (x *CacheErrorEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[35] + mi := &file_bridge_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2568,7 +2620,7 @@ func (x *CacheErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheErrorEvent.ProtoReflect.Descriptor instead. func (*CacheErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{35} + return file_bridge_proto_rawDescGZIP(), []int{36} } func (x *CacheErrorEvent) GetType() CacheErrorType { @@ -2587,7 +2639,7 @@ type CacheLocationChangeSuccessEvent struct { func (x *CacheLocationChangeSuccessEvent) Reset() { *x = CacheLocationChangeSuccessEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[36] + mi := &file_bridge_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2600,7 +2652,7 @@ func (x *CacheLocationChangeSuccessEvent) String() string { func (*CacheLocationChangeSuccessEvent) ProtoMessage() {} func (x *CacheLocationChangeSuccessEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[36] + mi := &file_bridge_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2613,7 +2665,7 @@ func (x *CacheLocationChangeSuccessEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheLocationChangeSuccessEvent.ProtoReflect.Descriptor instead. func (*CacheLocationChangeSuccessEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{36} + return file_bridge_proto_rawDescGZIP(), []int{37} } type ChangeLocalCacheFinishedEvent struct { @@ -2625,7 +2677,7 @@ type ChangeLocalCacheFinishedEvent struct { func (x *ChangeLocalCacheFinishedEvent) Reset() { *x = ChangeLocalCacheFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[37] + mi := &file_bridge_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2638,7 +2690,7 @@ func (x *ChangeLocalCacheFinishedEvent) String() string { func (*ChangeLocalCacheFinishedEvent) ProtoMessage() {} func (x *ChangeLocalCacheFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[37] + mi := &file_bridge_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2651,7 +2703,7 @@ func (x *ChangeLocalCacheFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeLocalCacheFinishedEvent.ProtoReflect.Descriptor instead. func (*ChangeLocalCacheFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{37} + return file_bridge_proto_rawDescGZIP(), []int{38} } type IsCacheOnDiskEnabledChanged struct { @@ -2665,7 +2717,7 @@ type IsCacheOnDiskEnabledChanged struct { func (x *IsCacheOnDiskEnabledChanged) Reset() { *x = IsCacheOnDiskEnabledChanged{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[38] + mi := &file_bridge_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2678,7 +2730,7 @@ func (x *IsCacheOnDiskEnabledChanged) String() string { func (*IsCacheOnDiskEnabledChanged) ProtoMessage() {} func (x *IsCacheOnDiskEnabledChanged) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[38] + mi := &file_bridge_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2691,7 +2743,7 @@ func (x *IsCacheOnDiskEnabledChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use IsCacheOnDiskEnabledChanged.ProtoReflect.Descriptor instead. func (*IsCacheOnDiskEnabledChanged) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{38} + return file_bridge_proto_rawDescGZIP(), []int{39} } func (x *IsCacheOnDiskEnabledChanged) GetEnabled() bool { @@ -2712,7 +2764,7 @@ type DiskCachePathChanged struct { func (x *DiskCachePathChanged) Reset() { *x = DiskCachePathChanged{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[39] + mi := &file_bridge_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2725,7 +2777,7 @@ func (x *DiskCachePathChanged) String() string { func (*DiskCachePathChanged) ProtoMessage() {} func (x *DiskCachePathChanged) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[39] + mi := &file_bridge_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2738,7 +2790,7 @@ func (x *DiskCachePathChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use DiskCachePathChanged.ProtoReflect.Descriptor instead. func (*DiskCachePathChanged) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{39} + return file_bridge_proto_rawDescGZIP(), []int{40} } func (x *DiskCachePathChanged) GetPath() string { @@ -2766,7 +2818,7 @@ type MailSettingsEvent struct { func (x *MailSettingsEvent) Reset() { *x = MailSettingsEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[40] + mi := &file_bridge_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2779,7 +2831,7 @@ func (x *MailSettingsEvent) String() string { func (*MailSettingsEvent) ProtoMessage() {} func (x *MailSettingsEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[40] + mi := &file_bridge_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2792,7 +2844,7 @@ func (x *MailSettingsEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use MailSettingsEvent.ProtoReflect.Descriptor instead. func (*MailSettingsEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{40} + return file_bridge_proto_rawDescGZIP(), []int{41} } func (m *MailSettingsEvent) GetEvent() isMailSettingsEvent_Event { @@ -2856,7 +2908,7 @@ type MailSettingsErrorEvent struct { func (x *MailSettingsErrorEvent) Reset() { *x = MailSettingsErrorEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[41] + mi := &file_bridge_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2869,7 +2921,7 @@ func (x *MailSettingsErrorEvent) String() string { func (*MailSettingsErrorEvent) ProtoMessage() {} func (x *MailSettingsErrorEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[41] + mi := &file_bridge_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2882,7 +2934,7 @@ func (x *MailSettingsErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use MailSettingsErrorEvent.ProtoReflect.Descriptor instead. func (*MailSettingsErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{41} + return file_bridge_proto_rawDescGZIP(), []int{42} } func (x *MailSettingsErrorEvent) GetType() MailSettingsErrorType { @@ -2901,7 +2953,7 @@ type UseSslForSmtpFinishedEvent struct { func (x *UseSslForSmtpFinishedEvent) Reset() { *x = UseSslForSmtpFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[42] + mi := &file_bridge_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2914,7 +2966,7 @@ func (x *UseSslForSmtpFinishedEvent) String() string { func (*UseSslForSmtpFinishedEvent) ProtoMessage() {} func (x *UseSslForSmtpFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[42] + mi := &file_bridge_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2927,7 +2979,7 @@ func (x *UseSslForSmtpFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UseSslForSmtpFinishedEvent.ProtoReflect.Descriptor instead. func (*UseSslForSmtpFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{42} + return file_bridge_proto_rawDescGZIP(), []int{43} } type ChangePortsFinishedEvent struct { @@ -2939,7 +2991,7 @@ type ChangePortsFinishedEvent struct { func (x *ChangePortsFinishedEvent) Reset() { *x = ChangePortsFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[43] + mi := &file_bridge_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2952,7 +3004,7 @@ func (x *ChangePortsFinishedEvent) String() string { func (*ChangePortsFinishedEvent) ProtoMessage() {} func (x *ChangePortsFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[43] + mi := &file_bridge_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2965,7 +3017,7 @@ func (x *ChangePortsFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePortsFinishedEvent.ProtoReflect.Descriptor instead. func (*ChangePortsFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{43} + return file_bridge_proto_rawDescGZIP(), []int{44} } //********************************************************** @@ -2986,7 +3038,7 @@ type KeychainEvent struct { func (x *KeychainEvent) Reset() { *x = KeychainEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[44] + mi := &file_bridge_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2999,7 +3051,7 @@ func (x *KeychainEvent) String() string { func (*KeychainEvent) ProtoMessage() {} func (x *KeychainEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[44] + mi := &file_bridge_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3012,7 +3064,7 @@ func (x *KeychainEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use KeychainEvent.ProtoReflect.Descriptor instead. func (*KeychainEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{44} + return file_bridge_proto_rawDescGZIP(), []int{45} } func (m *KeychainEvent) GetEvent() isKeychainEvent_Event { @@ -3074,7 +3126,7 @@ type ChangeKeychainFinishedEvent struct { func (x *ChangeKeychainFinishedEvent) Reset() { *x = ChangeKeychainFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[45] + mi := &file_bridge_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3087,7 +3139,7 @@ func (x *ChangeKeychainFinishedEvent) String() string { func (*ChangeKeychainFinishedEvent) ProtoMessage() {} func (x *ChangeKeychainFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[45] + mi := &file_bridge_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3100,7 +3152,7 @@ func (x *ChangeKeychainFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeKeychainFinishedEvent.ProtoReflect.Descriptor instead. func (*ChangeKeychainFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{45} + return file_bridge_proto_rawDescGZIP(), []int{46} } type HasNoKeychainEvent struct { @@ -3112,7 +3164,7 @@ type HasNoKeychainEvent struct { func (x *HasNoKeychainEvent) Reset() { *x = HasNoKeychainEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[46] + mi := &file_bridge_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3125,7 +3177,7 @@ func (x *HasNoKeychainEvent) String() string { func (*HasNoKeychainEvent) ProtoMessage() {} func (x *HasNoKeychainEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[46] + mi := &file_bridge_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3138,7 +3190,7 @@ func (x *HasNoKeychainEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use HasNoKeychainEvent.ProtoReflect.Descriptor instead. func (*HasNoKeychainEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{46} + return file_bridge_proto_rawDescGZIP(), []int{47} } type RebuildKeychainEvent struct { @@ -3150,7 +3202,7 @@ type RebuildKeychainEvent struct { func (x *RebuildKeychainEvent) Reset() { *x = RebuildKeychainEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[47] + mi := &file_bridge_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3163,7 +3215,7 @@ func (x *RebuildKeychainEvent) String() string { func (*RebuildKeychainEvent) ProtoMessage() {} func (x *RebuildKeychainEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[47] + mi := &file_bridge_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3176,7 +3228,7 @@ func (x *RebuildKeychainEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use RebuildKeychainEvent.ProtoReflect.Descriptor instead. func (*RebuildKeychainEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{47} + return file_bridge_proto_rawDescGZIP(), []int{48} } //********************************************************** @@ -3198,7 +3250,7 @@ type MailEvent struct { func (x *MailEvent) Reset() { *x = MailEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[48] + mi := &file_bridge_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3211,7 +3263,7 @@ func (x *MailEvent) String() string { func (*MailEvent) ProtoMessage() {} func (x *MailEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[48] + mi := &file_bridge_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3224,7 +3276,7 @@ func (x *MailEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use MailEvent.ProtoReflect.Descriptor instead. func (*MailEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{48} + return file_bridge_proto_rawDescGZIP(), []int{49} } func (m *MailEvent) GetEvent() isMailEvent_Event { @@ -3301,7 +3353,7 @@ type NoActiveKeyForRecipientEvent struct { func (x *NoActiveKeyForRecipientEvent) Reset() { *x = NoActiveKeyForRecipientEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[49] + mi := &file_bridge_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3314,7 +3366,7 @@ func (x *NoActiveKeyForRecipientEvent) String() string { func (*NoActiveKeyForRecipientEvent) ProtoMessage() {} func (x *NoActiveKeyForRecipientEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[49] + mi := &file_bridge_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3327,7 +3379,7 @@ func (x *NoActiveKeyForRecipientEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use NoActiveKeyForRecipientEvent.ProtoReflect.Descriptor instead. func (*NoActiveKeyForRecipientEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{49} + return file_bridge_proto_rawDescGZIP(), []int{50} } func (x *NoActiveKeyForRecipientEvent) GetEmail() string { @@ -3348,7 +3400,7 @@ type AddressChangedEvent struct { func (x *AddressChangedEvent) Reset() { *x = AddressChangedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[50] + mi := &file_bridge_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3361,7 +3413,7 @@ func (x *AddressChangedEvent) String() string { func (*AddressChangedEvent) ProtoMessage() {} func (x *AddressChangedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[50] + mi := &file_bridge_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3374,7 +3426,7 @@ func (x *AddressChangedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressChangedEvent.ProtoReflect.Descriptor instead. func (*AddressChangedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{50} + return file_bridge_proto_rawDescGZIP(), []int{51} } func (x *AddressChangedEvent) GetAddress() string { @@ -3395,7 +3447,7 @@ type AddressChangedLogoutEvent struct { func (x *AddressChangedLogoutEvent) Reset() { *x = AddressChangedLogoutEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[51] + mi := &file_bridge_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3408,7 +3460,7 @@ func (x *AddressChangedLogoutEvent) String() string { func (*AddressChangedLogoutEvent) ProtoMessage() {} func (x *AddressChangedLogoutEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[51] + mi := &file_bridge_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3421,7 +3473,7 @@ func (x *AddressChangedLogoutEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressChangedLogoutEvent.ProtoReflect.Descriptor instead. func (*AddressChangedLogoutEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{51} + return file_bridge_proto_rawDescGZIP(), []int{52} } func (x *AddressChangedLogoutEvent) GetAddress() string { @@ -3440,7 +3492,7 @@ type ApiCertIssueEvent struct { func (x *ApiCertIssueEvent) Reset() { *x = ApiCertIssueEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[52] + mi := &file_bridge_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3453,7 +3505,7 @@ func (x *ApiCertIssueEvent) String() string { func (*ApiCertIssueEvent) ProtoMessage() {} func (x *ApiCertIssueEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[52] + mi := &file_bridge_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3466,7 +3518,7 @@ func (x *ApiCertIssueEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiCertIssueEvent.ProtoReflect.Descriptor instead. func (*ApiCertIssueEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{52} + return file_bridge_proto_rawDescGZIP(), []int{53} } type UserEvent struct { @@ -3484,7 +3536,7 @@ type UserEvent struct { func (x *UserEvent) Reset() { *x = UserEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[53] + mi := &file_bridge_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3497,7 +3549,7 @@ func (x *UserEvent) String() string { func (*UserEvent) ProtoMessage() {} func (x *UserEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[53] + mi := &file_bridge_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3510,7 +3562,7 @@ func (x *UserEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UserEvent.ProtoReflect.Descriptor instead. func (*UserEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{53} + return file_bridge_proto_rawDescGZIP(), []int{54} } func (m *UserEvent) GetEvent() isUserEvent_Event { @@ -3574,7 +3626,7 @@ type ToggleSplitModeFinishedEvent struct { func (x *ToggleSplitModeFinishedEvent) Reset() { *x = ToggleSplitModeFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[54] + mi := &file_bridge_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3587,7 +3639,7 @@ func (x *ToggleSplitModeFinishedEvent) String() string { func (*ToggleSplitModeFinishedEvent) ProtoMessage() {} func (x *ToggleSplitModeFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[54] + mi := &file_bridge_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3600,7 +3652,7 @@ func (x *ToggleSplitModeFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ToggleSplitModeFinishedEvent.ProtoReflect.Descriptor instead. func (*ToggleSplitModeFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{54} + return file_bridge_proto_rawDescGZIP(), []int{55} } func (x *ToggleSplitModeFinishedEvent) GetUserID() string { @@ -3621,7 +3673,7 @@ type UserDisconnectedEvent struct { func (x *UserDisconnectedEvent) Reset() { *x = UserDisconnectedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[55] + mi := &file_bridge_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3634,7 +3686,7 @@ func (x *UserDisconnectedEvent) String() string { func (*UserDisconnectedEvent) ProtoMessage() {} func (x *UserDisconnectedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[55] + mi := &file_bridge_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3647,7 +3699,7 @@ func (x *UserDisconnectedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UserDisconnectedEvent.ProtoReflect.Descriptor instead. func (*UserDisconnectedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{55} + return file_bridge_proto_rawDescGZIP(), []int{56} } func (x *UserDisconnectedEvent) GetUsername() string { @@ -3668,7 +3720,7 @@ type UserChangedEvent struct { func (x *UserChangedEvent) Reset() { *x = UserChangedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[56] + mi := &file_bridge_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3681,7 +3733,7 @@ func (x *UserChangedEvent) String() string { func (*UserChangedEvent) ProtoMessage() {} func (x *UserChangedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[56] + mi := &file_bridge_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3694,7 +3746,7 @@ func (x *UserChangedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UserChangedEvent.ProtoReflect.Descriptor instead. func (*UserChangedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{56} + return file_bridge_proto_rawDescGZIP(), []int{57} } func (x *UserChangedEvent) GetUserID() string { @@ -3897,7 +3949,7 @@ var file_bridge_proto_rawDesc = []byte{ 0x76, 0x65, 0x6e, 0x74, 0x22, 0x2c, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x22, 0xf3, 0x03, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, + 0x49, 0x44, 0x22, 0xb9, 0x04, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, @@ -3927,458 +3979,464 @@ var file_bridge_proto_rawDesc = []byte{ 0x63, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x48, 0x00, - 0x52, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x42, - 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3d, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x2c, 0x0a, - 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x1b, 0x0a, 0x19, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x49, 0x73, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0xc1, 0x03, 0x0a, 0x0a, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5f, 0x0a, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x61, 0x0a, 0x18, 0x63, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x18, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x1b, 0x69, 0x73, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, - 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x48, 0x00, 0x52, 0x1b, 0x69, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, - 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x64, 0x12, 0x50, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, - 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x64, - 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3b, 0x0a, 0x0f, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x1f, 0x0a, 0x1d, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x37, 0x0a, - 0x1b, 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x22, 0x80, 0x02, 0x0a, 0x11, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4d, - 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x58, - 0x0a, 0x15, 0x75, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, - 0x74, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x15, 0x75, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, - 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x49, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, - 0x70, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x1a, - 0x0a, 0x18, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x4b, - 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x16, - 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x16, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, - 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x68, 0x61, 0x73, - 0x4e, 0x6f, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x61, 0x73, 0x4e, 0x6f, 0x4b, 0x65, 0x79, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x61, - 0x73, 0x4e, 0x6f, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x46, 0x0a, 0x0f, 0x72, - 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x48, - 0x61, 0x73, 0x4e, 0x6f, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xd9, 0x02, 0x0a, 0x09, 0x4d, 0x61, - 0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x1c, 0x6e, 0x6f, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, - 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x1c, 0x6e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, - 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x43, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x3d, 0x0a, - 0x0c, 0x61, 0x70, 0x69, 0x43, 0x65, 0x72, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x65, - 0x72, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, - 0x61, 0x70, 0x69, 0x43, 0x65, 0x72, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x1c, 0x4e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x52, 0x0d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, + 0x44, 0x0a, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3d, + 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x15, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, + 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, + 0x64, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x20, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x22, 0x2c, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x69, 0x6c, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x22, 0x17, + 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x15, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x22, 0x16, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x22, 0xc1, 0x03, 0x0a, 0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x5f, 0x0a, 0x16, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x16, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x61, 0x0a, 0x18, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x18, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x65, 0x0a, 0x1b, 0x69, 0x73, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, + 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x48, 0x00, 0x52, 0x1b, 0x69, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, + 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, + 0x50, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x48, 0x00, 0x52, 0x14, 0x64, 0x69, 0x73, + 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x3b, 0x0a, 0x0f, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x61, 0x63, 0x68, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x37, 0x0a, 0x1b, 0x49, + 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x50, 0x61, 0x74, 0x68, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x22, 0x80, 0x02, 0x0a, 0x11, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x69, + 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x58, 0x0a, 0x15, + 0x75, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x15, 0x75, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x52, 0x0a, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x13, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x22, 0x49, 0x0a, 0x16, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x1c, + 0x0a, 0x1a, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x1a, 0x0a, 0x18, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x4b, 0x65, 0x79, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x16, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x16, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, + 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x4e, 0x6f, + 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x48, 0x61, 0x73, 0x4e, 0x6f, 0x4b, 0x65, 0x79, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x4e, + 0x6f, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x46, 0x0a, 0x0f, 0x72, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x0f, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x48, 0x61, 0x73, + 0x4e, 0x6f, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, + 0x16, 0x0a, 0x14, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xd9, 0x02, 0x0a, 0x09, 0x4d, 0x61, 0x69, 0x6c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x1c, 0x6e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2f, 0x0a, 0x13, 0x41, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x4e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x6f, + 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x1c, 0x6e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4b, 0x65, 0x79, 0x46, 0x6f, + 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x43, 0x0a, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, - 0x6e, 0x74, 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, 0x22, 0x35, 0x0a, 0x19, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, - 0x67, 0x6f, 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x70, 0x69, 0x43, 0x65, 0x72, 0x74, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xfb, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x17, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, - 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x74, - 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x44, 0x69, - 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x10, 0x75, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, - 0x64, 0x12, 0x3a, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x42, 0x07, 0x0a, - 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x33, - 0x0a, 0x15, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, - 0x61, 0x6d, 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x2a, - 0x71, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x4c, - 0x4f, 0x47, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, - 0x47, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, - 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, - 0x46, 0x4f, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x45, 0x42, 0x55, - 0x47, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, - 0x10, 0x06, 0x2a, 0xa2, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, - 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x52, 0x45, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, - 0x01, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x41, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x41, 0x5f, 0x41, 0x42, - 0x4f, 0x52, 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x57, 0x4f, 0x5f, 0x50, 0x41, 0x53, - 0x53, 0x57, 0x4f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x17, - 0x0a, 0x13, 0x54, 0x57, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x53, 0x5f, - 0x41, 0x42, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x2a, 0x5b, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, - 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4f, - 0x52, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x4c, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0x02, 0x2a, 0x57, 0x0a, 0x0e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, - 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, - 0x52, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x43, 0x41, 0x4e, - 0x54, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x2a, 0x41, 0x0a, - 0x15, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x50, - 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, - 0x4d, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x01, - 0x32, 0x9c, 0x1f, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x41, - 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x08, - 0x47, 0x75, 0x69, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x61, + 0x70, 0x69, 0x43, 0x65, 0x72, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x69, 0x43, 0x65, 0x72, 0x74, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x70, + 0x69, 0x43, 0x65, 0x72, 0x74, 0x49, 0x73, 0x73, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x22, 0x34, 0x0a, 0x1c, 0x4e, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4b, + 0x65, 0x79, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x2f, 0x0a, 0x13, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, + 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, 0x22, 0x35, 0x0a, 0x19, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x4c, 0x6f, 0x67, 0x6f, + 0x75, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x70, 0x69, 0x43, 0x65, 0x72, 0x74, 0x49, 0x73, 0x73, 0x75, + 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xfb, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5e, 0x0a, 0x17, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x70, + 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x75, + 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, + 0x3a, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, + 0x75, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x22, 0x36, 0x0a, 0x1c, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x70, + 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x33, 0x0a, 0x15, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x2a, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x2a, 0x71, 0x0a, + 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, + 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, + 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x57, 0x41, + 0x52, 0x4e, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, + 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, + 0x2a, 0xa2, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x55, 0x53, 0x45, 0x52, 0x4e, 0x41, 0x4d, 0x45, 0x5f, + 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x52, 0x45, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x41, 0x5f, 0x45, 0x52, 0x52, + 0x4f, 0x52, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x41, 0x5f, 0x41, 0x42, 0x4f, 0x52, + 0x54, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x57, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, + 0x4f, 0x52, 0x44, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, + 0x54, 0x57, 0x4f, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x53, 0x5f, 0x41, 0x42, + 0x4f, 0x52, 0x54, 0x10, 0x06, 0x2a, 0x5b, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x43, + 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x5f, 0x53, 0x49, 0x4c, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x02, 0x2a, 0x57, 0x0a, 0x0e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x55, 0x4e, + 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x54, 0x5f, + 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x2a, 0x41, 0x0a, 0x15, 0x4d, + 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4d, 0x54, + 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x01, 0x32, 0x9c, + 0x1f, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, + 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x47, 0x75, + 0x69, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x04, 0x51, 0x75, 0x69, 0x74, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x39, + 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x53, 0x68, 0x6f, + 0x77, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, + 0x0a, 0x10, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x70, 0x6c, 0x61, 0x73, 0x68, 0x53, 0x63, 0x72, 0x65, + 0x65, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x49, 0x73, 0x46, 0x69, 0x72, 0x73, + 0x74, 0x47, 0x75, 0x69, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, + 0x10, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, + 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, + 0x74, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x49, 0x73, + 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x49, 0x73, 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, 0x6c, 0x56, + 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x47, 0x6f, + 0x4f, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x04, 0x51, 0x75, 0x69, 0x74, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x39, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x53, - 0x68, 0x6f, 0x77, 0x4f, 0x6e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x46, 0x0a, 0x10, 0x53, 0x68, 0x6f, 0x77, 0x53, 0x70, 0x6c, 0x61, 0x73, 0x68, 0x53, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0f, 0x49, 0x73, 0x46, 0x69, - 0x72, 0x73, 0x74, 0x47, 0x75, 0x69, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73, 0x41, 0x75, 0x74, - 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, - 0x53, 0x65, 0x74, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x13, 0x53, 0x65, 0x74, - 0x49, 0x73, 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, - 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x49, 0x73, 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, - 0x6c, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x04, - 0x47, 0x6f, 0x4f, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x0c, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x07, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x4c, 0x6f, 0x67, + 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x4c, - 0x6f, 0x67, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x4c, + 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x4c, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, + 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, + 0x0a, 0x16, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x69, 0x63, 0x65, + 0x6e, 0x73, 0x65, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, + 0x0a, 0x0f, 0x4c, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6e, + 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x12, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x75, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x61, + 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x11, + 0x53, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x08, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x46, 0x41, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, 0x72, + 0x74, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x49, 0x0a, 0x13, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, - 0x0b, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x14, 0x49, + 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x6b, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, + 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, + 0x68, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x53, 0x65, 0x74, + 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x42, 0x0a, 0x0c, 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, 0x53, 0x73, + 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, + 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x40, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0a, 0x49, 0x73, 0x50, 0x6f, 0x72, 0x74, + 0x46, 0x72, 0x65, 0x65, 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, + 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, + 0x69, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, + 0x12, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, 0x68, + 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x4c, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, - 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x47, 0x0a, 0x0f, 0x4c, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x67, 0x65, 0x4c, - 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x74, - 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x63, - 0x68, 0x65, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, - 0x0a, 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x63, 0x65, - 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, - 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x36, - 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x46, 0x41, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, - 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, - 0x6f, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x41, 0x62, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x49, 0x0a, 0x13, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, - 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, - 0x14, 0x49, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x0d, 0x44, 0x69, 0x73, - 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x49, 0x0a, 0x10, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0f, 0x53, - 0x65, 0x74, 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0c, 0x49, 0x73, 0x44, 0x6f, 0x48, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, - 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x53, 0x73, 0x6c, 0x46, 0x6f, 0x72, 0x53, 0x6d, 0x74, 0x70, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x49, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x72, + 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x53, 0x6d, 0x74, 0x70, 0x50, 0x6f, - 0x72, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, - 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0a, 0x49, 0x73, 0x50, 0x6f, - 0x72, 0x74, 0x46, 0x72, 0x65, 0x65, 0x12, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x4e, 0x0a, 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, 0x79, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x20, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x65, - 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, - 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x16, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x33, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x0a, 0x2e, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, + 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x0a, 0x2e, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x2e, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x42, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x75, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, - 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0e, 0x52, - 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0f, - 0x53, 0x74, 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, - 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2d, - 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x75, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, + 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0e, 0x52, 0x75, 0x6e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x74, + 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x36, 0x5a, + 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2d, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4394,7 +4452,7 @@ func file_bridge_proto_rawDescGZIP() []byte { } var file_bridge_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_bridge_proto_msgTypes = make([]protoimpl.MessageInfo, 57) +var file_bridge_proto_msgTypes = make([]protoimpl.MessageInfo, 58) var file_bridge_proto_goTypes = []interface{}{ (LogLevel)(0), // 0: grpc.LogLevel (LoginErrorType)(0), // 1: grpc.LoginErrorType @@ -4435,33 +4493,34 @@ var file_bridge_proto_goTypes = []interface{}{ (*UpdateSilentRestartNeeded)(nil), // 36: grpc.UpdateSilentRestartNeeded (*UpdateIsLatestVersion)(nil), // 37: grpc.UpdateIsLatestVersion (*UpdateCheckFinished)(nil), // 38: grpc.UpdateCheckFinished - (*CacheEvent)(nil), // 39: grpc.CacheEvent - (*CacheErrorEvent)(nil), // 40: grpc.CacheErrorEvent - (*CacheLocationChangeSuccessEvent)(nil), // 41: grpc.CacheLocationChangeSuccessEvent - (*ChangeLocalCacheFinishedEvent)(nil), // 42: grpc.ChangeLocalCacheFinishedEvent - (*IsCacheOnDiskEnabledChanged)(nil), // 43: grpc.IsCacheOnDiskEnabledChanged - (*DiskCachePathChanged)(nil), // 44: grpc.DiskCachePathChanged - (*MailSettingsEvent)(nil), // 45: grpc.MailSettingsEvent - (*MailSettingsErrorEvent)(nil), // 46: grpc.MailSettingsErrorEvent - (*UseSslForSmtpFinishedEvent)(nil), // 47: grpc.UseSslForSmtpFinishedEvent - (*ChangePortsFinishedEvent)(nil), // 48: grpc.ChangePortsFinishedEvent - (*KeychainEvent)(nil), // 49: grpc.KeychainEvent - (*ChangeKeychainFinishedEvent)(nil), // 50: grpc.ChangeKeychainFinishedEvent - (*HasNoKeychainEvent)(nil), // 51: grpc.HasNoKeychainEvent - (*RebuildKeychainEvent)(nil), // 52: grpc.RebuildKeychainEvent - (*MailEvent)(nil), // 53: grpc.MailEvent - (*NoActiveKeyForRecipientEvent)(nil), // 54: grpc.NoActiveKeyForRecipientEvent - (*AddressChangedEvent)(nil), // 55: grpc.AddressChangedEvent - (*AddressChangedLogoutEvent)(nil), // 56: grpc.AddressChangedLogoutEvent - (*ApiCertIssueEvent)(nil), // 57: grpc.ApiCertIssueEvent - (*UserEvent)(nil), // 58: grpc.UserEvent - (*ToggleSplitModeFinishedEvent)(nil), // 59: grpc.ToggleSplitModeFinishedEvent - (*UserDisconnectedEvent)(nil), // 60: grpc.UserDisconnectedEvent - (*UserChangedEvent)(nil), // 61: grpc.UserChangedEvent - (*emptypb.Empty)(nil), // 62: google.protobuf.Empty - (*wrapperspb.BoolValue)(nil), // 63: google.protobuf.BoolValue - (*wrapperspb.StringValue)(nil), // 64: google.protobuf.StringValue - (*wrapperspb.Int32Value)(nil), // 65: google.protobuf.Int32Value + (*UpdateVersionChanged)(nil), // 39: grpc.UpdateVersionChanged + (*CacheEvent)(nil), // 40: grpc.CacheEvent + (*CacheErrorEvent)(nil), // 41: grpc.CacheErrorEvent + (*CacheLocationChangeSuccessEvent)(nil), // 42: grpc.CacheLocationChangeSuccessEvent + (*ChangeLocalCacheFinishedEvent)(nil), // 43: grpc.ChangeLocalCacheFinishedEvent + (*IsCacheOnDiskEnabledChanged)(nil), // 44: grpc.IsCacheOnDiskEnabledChanged + (*DiskCachePathChanged)(nil), // 45: grpc.DiskCachePathChanged + (*MailSettingsEvent)(nil), // 46: grpc.MailSettingsEvent + (*MailSettingsErrorEvent)(nil), // 47: grpc.MailSettingsErrorEvent + (*UseSslForSmtpFinishedEvent)(nil), // 48: grpc.UseSslForSmtpFinishedEvent + (*ChangePortsFinishedEvent)(nil), // 49: grpc.ChangePortsFinishedEvent + (*KeychainEvent)(nil), // 50: grpc.KeychainEvent + (*ChangeKeychainFinishedEvent)(nil), // 51: grpc.ChangeKeychainFinishedEvent + (*HasNoKeychainEvent)(nil), // 52: grpc.HasNoKeychainEvent + (*RebuildKeychainEvent)(nil), // 53: grpc.RebuildKeychainEvent + (*MailEvent)(nil), // 54: grpc.MailEvent + (*NoActiveKeyForRecipientEvent)(nil), // 55: grpc.NoActiveKeyForRecipientEvent + (*AddressChangedEvent)(nil), // 56: grpc.AddressChangedEvent + (*AddressChangedLogoutEvent)(nil), // 57: grpc.AddressChangedLogoutEvent + (*ApiCertIssueEvent)(nil), // 58: grpc.ApiCertIssueEvent + (*UserEvent)(nil), // 59: grpc.UserEvent + (*ToggleSplitModeFinishedEvent)(nil), // 60: grpc.ToggleSplitModeFinishedEvent + (*UserDisconnectedEvent)(nil), // 61: grpc.UserDisconnectedEvent + (*UserChangedEvent)(nil), // 62: grpc.UserChangedEvent + (*emptypb.Empty)(nil), // 63: google.protobuf.Empty + (*wrapperspb.BoolValue)(nil), // 64: google.protobuf.BoolValue + (*wrapperspb.StringValue)(nil), // 65: google.protobuf.StringValue + (*wrapperspb.Int32Value)(nil), // 66: google.protobuf.Int32Value } var file_bridge_proto_depIdxs = []int32{ 0, // 0: grpc.AddLogEntryRequest.level:type_name -> grpc.LogLevel @@ -4469,11 +4528,11 @@ var file_bridge_proto_depIdxs = []int32{ 18, // 2: grpc.StreamEvent.app:type_name -> grpc.AppEvent 26, // 3: grpc.StreamEvent.login:type_name -> grpc.LoginEvent 31, // 4: grpc.StreamEvent.update:type_name -> grpc.UpdateEvent - 39, // 5: grpc.StreamEvent.cache:type_name -> grpc.CacheEvent - 45, // 6: grpc.StreamEvent.mailSettings:type_name -> grpc.MailSettingsEvent - 49, // 7: grpc.StreamEvent.keychain:type_name -> grpc.KeychainEvent - 53, // 8: grpc.StreamEvent.mail:type_name -> grpc.MailEvent - 58, // 9: grpc.StreamEvent.user:type_name -> grpc.UserEvent + 40, // 5: grpc.StreamEvent.cache:type_name -> grpc.CacheEvent + 46, // 6: grpc.StreamEvent.mailSettings:type_name -> grpc.MailSettingsEvent + 50, // 7: grpc.StreamEvent.keychain:type_name -> grpc.KeychainEvent + 54, // 8: grpc.StreamEvent.mail:type_name -> grpc.MailEvent + 59, // 9: grpc.StreamEvent.user:type_name -> grpc.UserEvent 19, // 10: grpc.AppEvent.internetStatus:type_name -> grpc.InternetStatusEvent 20, // 11: grpc.AppEvent.toggleAutostartFinished:type_name -> grpc.ToggleAutostartFinishedEvent 21, // 12: grpc.AppEvent.resetFinished:type_name -> grpc.ResetFinishedEvent @@ -4494,148 +4553,149 @@ var file_bridge_proto_depIdxs = []int32{ 36, // 27: grpc.UpdateEvent.silentRestartNeeded:type_name -> grpc.UpdateSilentRestartNeeded 37, // 28: grpc.UpdateEvent.isLatestVersion:type_name -> grpc.UpdateIsLatestVersion 38, // 29: grpc.UpdateEvent.checkFinished:type_name -> grpc.UpdateCheckFinished - 2, // 30: grpc.UpdateErrorEvent.type:type_name -> grpc.UpdateErrorType - 40, // 31: grpc.CacheEvent.error:type_name -> grpc.CacheErrorEvent - 41, // 32: grpc.CacheEvent.locationChangedSuccess:type_name -> grpc.CacheLocationChangeSuccessEvent - 42, // 33: grpc.CacheEvent.changeLocalCacheFinished:type_name -> grpc.ChangeLocalCacheFinishedEvent - 43, // 34: grpc.CacheEvent.isCacheOnDiskEnabledChanged:type_name -> grpc.IsCacheOnDiskEnabledChanged - 44, // 35: grpc.CacheEvent.diskCachePathChanged:type_name -> grpc.DiskCachePathChanged - 3, // 36: grpc.CacheErrorEvent.type:type_name -> grpc.CacheErrorType - 46, // 37: grpc.MailSettingsEvent.error:type_name -> grpc.MailSettingsErrorEvent - 47, // 38: grpc.MailSettingsEvent.useSslForSmtpFinished:type_name -> grpc.UseSslForSmtpFinishedEvent - 48, // 39: grpc.MailSettingsEvent.changePortsFinished:type_name -> grpc.ChangePortsFinishedEvent - 4, // 40: grpc.MailSettingsErrorEvent.type:type_name -> grpc.MailSettingsErrorType - 50, // 41: grpc.KeychainEvent.changeKeychainFinished:type_name -> grpc.ChangeKeychainFinishedEvent - 51, // 42: grpc.KeychainEvent.hasNoKeychain:type_name -> grpc.HasNoKeychainEvent - 52, // 43: grpc.KeychainEvent.rebuildKeychain:type_name -> grpc.RebuildKeychainEvent - 54, // 44: grpc.MailEvent.noActiveKeyForRecipientEvent:type_name -> grpc.NoActiveKeyForRecipientEvent - 55, // 45: grpc.MailEvent.addressChanged:type_name -> grpc.AddressChangedEvent - 56, // 46: grpc.MailEvent.addressChangedLogout:type_name -> grpc.AddressChangedLogoutEvent - 57, // 47: grpc.MailEvent.apiCertIssue:type_name -> grpc.ApiCertIssueEvent - 59, // 48: grpc.UserEvent.toggleSplitModeFinished:type_name -> grpc.ToggleSplitModeFinishedEvent - 60, // 49: grpc.UserEvent.userDisconnected:type_name -> grpc.UserDisconnectedEvent - 61, // 50: grpc.UserEvent.userChanged:type_name -> grpc.UserChangedEvent - 5, // 51: grpc.Bridge.AddLogEntry:input_type -> grpc.AddLogEntryRequest - 62, // 52: grpc.Bridge.GuiReady:input_type -> google.protobuf.Empty - 62, // 53: grpc.Bridge.Quit:input_type -> google.protobuf.Empty - 62, // 54: grpc.Bridge.Restart:input_type -> google.protobuf.Empty - 62, // 55: grpc.Bridge.ShowOnStartup:input_type -> google.protobuf.Empty - 62, // 56: grpc.Bridge.ShowSplashScreen:input_type -> google.protobuf.Empty - 62, // 57: grpc.Bridge.IsFirstGuiStart:input_type -> google.protobuf.Empty - 63, // 58: grpc.Bridge.SetIsAutostartOn:input_type -> google.protobuf.BoolValue - 62, // 59: grpc.Bridge.IsAutostartOn:input_type -> google.protobuf.Empty - 63, // 60: grpc.Bridge.SetIsBetaEnabled:input_type -> google.protobuf.BoolValue - 62, // 61: grpc.Bridge.IsBetaEnabled:input_type -> google.protobuf.Empty - 63, // 62: grpc.Bridge.SetIsAllMailVisible:input_type -> google.protobuf.BoolValue - 62, // 63: grpc.Bridge.IsAllMailVisible:input_type -> google.protobuf.Empty - 62, // 64: grpc.Bridge.GoOs:input_type -> google.protobuf.Empty - 62, // 65: grpc.Bridge.TriggerReset:input_type -> google.protobuf.Empty - 62, // 66: grpc.Bridge.Version:input_type -> google.protobuf.Empty - 62, // 67: grpc.Bridge.LogsPath:input_type -> google.protobuf.Empty - 62, // 68: grpc.Bridge.LicensePath:input_type -> google.protobuf.Empty - 62, // 69: grpc.Bridge.ReleaseNotesPageLink:input_type -> google.protobuf.Empty - 62, // 70: grpc.Bridge.DependencyLicensesLink:input_type -> google.protobuf.Empty - 62, // 71: grpc.Bridge.LandingPageLink:input_type -> google.protobuf.Empty - 64, // 72: grpc.Bridge.SetColorSchemeName:input_type -> google.protobuf.StringValue - 62, // 73: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty - 62, // 74: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty - 6, // 75: grpc.Bridge.ReportBug:input_type -> grpc.ReportBugRequest - 64, // 76: grpc.Bridge.ForceLauncher:input_type -> google.protobuf.StringValue - 64, // 77: grpc.Bridge.SetMainExecutable:input_type -> google.protobuf.StringValue - 7, // 78: grpc.Bridge.Login:input_type -> grpc.LoginRequest - 7, // 79: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest - 7, // 80: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest - 8, // 81: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest - 62, // 82: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty - 62, // 83: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty - 63, // 84: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue - 62, // 85: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty - 62, // 86: grpc.Bridge.IsCacheOnDiskEnabled:input_type -> google.protobuf.Empty - 62, // 87: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty - 9, // 88: grpc.Bridge.ChangeLocalCache:input_type -> grpc.ChangeLocalCacheRequest - 63, // 89: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue - 62, // 90: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty - 63, // 91: grpc.Bridge.SetUseSslForSmtp:input_type -> google.protobuf.BoolValue - 62, // 92: grpc.Bridge.UseSslForSmtp:input_type -> google.protobuf.Empty - 62, // 93: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty - 62, // 94: grpc.Bridge.ImapPort:input_type -> google.protobuf.Empty - 62, // 95: grpc.Bridge.SmtpPort:input_type -> google.protobuf.Empty - 10, // 96: grpc.Bridge.ChangePorts:input_type -> grpc.ChangePortsRequest - 65, // 97: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value - 62, // 98: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty - 64, // 99: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue - 62, // 100: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty - 62, // 101: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty - 64, // 102: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue - 13, // 103: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest - 64, // 104: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue - 64, // 105: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue - 15, // 106: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest - 16, // 107: grpc.Bridge.RunEventStream:input_type -> grpc.EventStreamRequest - 62, // 108: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty - 62, // 109: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty - 62, // 110: grpc.Bridge.GuiReady:output_type -> google.protobuf.Empty - 62, // 111: grpc.Bridge.Quit:output_type -> google.protobuf.Empty - 62, // 112: grpc.Bridge.Restart:output_type -> google.protobuf.Empty - 63, // 113: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue - 63, // 114: grpc.Bridge.ShowSplashScreen:output_type -> google.protobuf.BoolValue - 63, // 115: grpc.Bridge.IsFirstGuiStart:output_type -> google.protobuf.BoolValue - 62, // 116: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty - 63, // 117: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue - 62, // 118: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty - 63, // 119: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue - 62, // 120: grpc.Bridge.SetIsAllMailVisible:output_type -> google.protobuf.Empty - 63, // 121: grpc.Bridge.IsAllMailVisible:output_type -> google.protobuf.BoolValue - 64, // 122: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue - 62, // 123: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty - 64, // 124: grpc.Bridge.Version:output_type -> google.protobuf.StringValue - 64, // 125: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue - 64, // 126: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue - 64, // 127: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue - 64, // 128: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue - 64, // 129: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue - 62, // 130: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty - 64, // 131: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue - 64, // 132: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue - 62, // 133: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty - 62, // 134: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty - 62, // 135: grpc.Bridge.SetMainExecutable:output_type -> google.protobuf.Empty - 62, // 136: grpc.Bridge.Login:output_type -> google.protobuf.Empty - 62, // 137: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty - 62, // 138: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty - 62, // 139: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty - 62, // 140: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty - 62, // 141: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty - 62, // 142: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty - 63, // 143: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue - 63, // 144: grpc.Bridge.IsCacheOnDiskEnabled:output_type -> google.protobuf.BoolValue - 64, // 145: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue - 62, // 146: grpc.Bridge.ChangeLocalCache:output_type -> google.protobuf.Empty - 62, // 147: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty - 63, // 148: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue - 62, // 149: grpc.Bridge.SetUseSslForSmtp:output_type -> google.protobuf.Empty - 63, // 150: grpc.Bridge.UseSslForSmtp:output_type -> google.protobuf.BoolValue - 64, // 151: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue - 65, // 152: grpc.Bridge.ImapPort:output_type -> google.protobuf.Int32Value - 65, // 153: grpc.Bridge.SmtpPort:output_type -> google.protobuf.Int32Value - 62, // 154: grpc.Bridge.ChangePorts:output_type -> google.protobuf.Empty - 63, // 155: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue - 11, // 156: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse - 62, // 157: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty - 64, // 158: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue - 14, // 159: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse - 12, // 160: grpc.Bridge.GetUser:output_type -> grpc.User - 62, // 161: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty - 62, // 162: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty - 62, // 163: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty - 62, // 164: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty - 17, // 165: grpc.Bridge.RunEventStream:output_type -> grpc.StreamEvent - 62, // 166: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty - 109, // [109:167] is the sub-list for method output_type - 51, // [51:109] is the sub-list for method input_type - 51, // [51:51] is the sub-list for extension type_name - 51, // [51:51] is the sub-list for extension extendee - 0, // [0:51] is the sub-list for field type_name + 39, // 30: grpc.UpdateEvent.versionChanged:type_name -> grpc.UpdateVersionChanged + 2, // 31: grpc.UpdateErrorEvent.type:type_name -> grpc.UpdateErrorType + 41, // 32: grpc.CacheEvent.error:type_name -> grpc.CacheErrorEvent + 42, // 33: grpc.CacheEvent.locationChangedSuccess:type_name -> grpc.CacheLocationChangeSuccessEvent + 43, // 34: grpc.CacheEvent.changeLocalCacheFinished:type_name -> grpc.ChangeLocalCacheFinishedEvent + 44, // 35: grpc.CacheEvent.isCacheOnDiskEnabledChanged:type_name -> grpc.IsCacheOnDiskEnabledChanged + 45, // 36: grpc.CacheEvent.diskCachePathChanged:type_name -> grpc.DiskCachePathChanged + 3, // 37: grpc.CacheErrorEvent.type:type_name -> grpc.CacheErrorType + 47, // 38: grpc.MailSettingsEvent.error:type_name -> grpc.MailSettingsErrorEvent + 48, // 39: grpc.MailSettingsEvent.useSslForSmtpFinished:type_name -> grpc.UseSslForSmtpFinishedEvent + 49, // 40: grpc.MailSettingsEvent.changePortsFinished:type_name -> grpc.ChangePortsFinishedEvent + 4, // 41: grpc.MailSettingsErrorEvent.type:type_name -> grpc.MailSettingsErrorType + 51, // 42: grpc.KeychainEvent.changeKeychainFinished:type_name -> grpc.ChangeKeychainFinishedEvent + 52, // 43: grpc.KeychainEvent.hasNoKeychain:type_name -> grpc.HasNoKeychainEvent + 53, // 44: grpc.KeychainEvent.rebuildKeychain:type_name -> grpc.RebuildKeychainEvent + 55, // 45: grpc.MailEvent.noActiveKeyForRecipientEvent:type_name -> grpc.NoActiveKeyForRecipientEvent + 56, // 46: grpc.MailEvent.addressChanged:type_name -> grpc.AddressChangedEvent + 57, // 47: grpc.MailEvent.addressChangedLogout:type_name -> grpc.AddressChangedLogoutEvent + 58, // 48: grpc.MailEvent.apiCertIssue:type_name -> grpc.ApiCertIssueEvent + 60, // 49: grpc.UserEvent.toggleSplitModeFinished:type_name -> grpc.ToggleSplitModeFinishedEvent + 61, // 50: grpc.UserEvent.userDisconnected:type_name -> grpc.UserDisconnectedEvent + 62, // 51: grpc.UserEvent.userChanged:type_name -> grpc.UserChangedEvent + 5, // 52: grpc.Bridge.AddLogEntry:input_type -> grpc.AddLogEntryRequest + 63, // 53: grpc.Bridge.GuiReady:input_type -> google.protobuf.Empty + 63, // 54: grpc.Bridge.Quit:input_type -> google.protobuf.Empty + 63, // 55: grpc.Bridge.Restart:input_type -> google.protobuf.Empty + 63, // 56: grpc.Bridge.ShowOnStartup:input_type -> google.protobuf.Empty + 63, // 57: grpc.Bridge.ShowSplashScreen:input_type -> google.protobuf.Empty + 63, // 58: grpc.Bridge.IsFirstGuiStart:input_type -> google.protobuf.Empty + 64, // 59: grpc.Bridge.SetIsAutostartOn:input_type -> google.protobuf.BoolValue + 63, // 60: grpc.Bridge.IsAutostartOn:input_type -> google.protobuf.Empty + 64, // 61: grpc.Bridge.SetIsBetaEnabled:input_type -> google.protobuf.BoolValue + 63, // 62: grpc.Bridge.IsBetaEnabled:input_type -> google.protobuf.Empty + 64, // 63: grpc.Bridge.SetIsAllMailVisible:input_type -> google.protobuf.BoolValue + 63, // 64: grpc.Bridge.IsAllMailVisible:input_type -> google.protobuf.Empty + 63, // 65: grpc.Bridge.GoOs:input_type -> google.protobuf.Empty + 63, // 66: grpc.Bridge.TriggerReset:input_type -> google.protobuf.Empty + 63, // 67: grpc.Bridge.Version:input_type -> google.protobuf.Empty + 63, // 68: grpc.Bridge.LogsPath:input_type -> google.protobuf.Empty + 63, // 69: grpc.Bridge.LicensePath:input_type -> google.protobuf.Empty + 63, // 70: grpc.Bridge.ReleaseNotesPageLink:input_type -> google.protobuf.Empty + 63, // 71: grpc.Bridge.DependencyLicensesLink:input_type -> google.protobuf.Empty + 63, // 72: grpc.Bridge.LandingPageLink:input_type -> google.protobuf.Empty + 65, // 73: grpc.Bridge.SetColorSchemeName:input_type -> google.protobuf.StringValue + 63, // 74: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty + 63, // 75: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty + 6, // 76: grpc.Bridge.ReportBug:input_type -> grpc.ReportBugRequest + 65, // 77: grpc.Bridge.ForceLauncher:input_type -> google.protobuf.StringValue + 65, // 78: grpc.Bridge.SetMainExecutable:input_type -> google.protobuf.StringValue + 7, // 79: grpc.Bridge.Login:input_type -> grpc.LoginRequest + 7, // 80: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest + 7, // 81: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest + 8, // 82: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest + 63, // 83: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty + 63, // 84: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty + 64, // 85: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue + 63, // 86: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty + 63, // 87: grpc.Bridge.IsCacheOnDiskEnabled:input_type -> google.protobuf.Empty + 63, // 88: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty + 9, // 89: grpc.Bridge.ChangeLocalCache:input_type -> grpc.ChangeLocalCacheRequest + 64, // 90: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue + 63, // 91: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty + 64, // 92: grpc.Bridge.SetUseSslForSmtp:input_type -> google.protobuf.BoolValue + 63, // 93: grpc.Bridge.UseSslForSmtp:input_type -> google.protobuf.Empty + 63, // 94: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty + 63, // 95: grpc.Bridge.ImapPort:input_type -> google.protobuf.Empty + 63, // 96: grpc.Bridge.SmtpPort:input_type -> google.protobuf.Empty + 10, // 97: grpc.Bridge.ChangePorts:input_type -> grpc.ChangePortsRequest + 66, // 98: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value + 63, // 99: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty + 65, // 100: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue + 63, // 101: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty + 63, // 102: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty + 65, // 103: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue + 13, // 104: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest + 65, // 105: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue + 65, // 106: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue + 15, // 107: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest + 16, // 108: grpc.Bridge.RunEventStream:input_type -> grpc.EventStreamRequest + 63, // 109: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty + 63, // 110: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty + 63, // 111: grpc.Bridge.GuiReady:output_type -> google.protobuf.Empty + 63, // 112: grpc.Bridge.Quit:output_type -> google.protobuf.Empty + 63, // 113: grpc.Bridge.Restart:output_type -> google.protobuf.Empty + 64, // 114: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue + 64, // 115: grpc.Bridge.ShowSplashScreen:output_type -> google.protobuf.BoolValue + 64, // 116: grpc.Bridge.IsFirstGuiStart:output_type -> google.protobuf.BoolValue + 63, // 117: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty + 64, // 118: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue + 63, // 119: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty + 64, // 120: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue + 63, // 121: grpc.Bridge.SetIsAllMailVisible:output_type -> google.protobuf.Empty + 64, // 122: grpc.Bridge.IsAllMailVisible:output_type -> google.protobuf.BoolValue + 65, // 123: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue + 63, // 124: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty + 65, // 125: grpc.Bridge.Version:output_type -> google.protobuf.StringValue + 65, // 126: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue + 65, // 127: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue + 65, // 128: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue + 65, // 129: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue + 65, // 130: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue + 63, // 131: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty + 65, // 132: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue + 65, // 133: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue + 63, // 134: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty + 63, // 135: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty + 63, // 136: grpc.Bridge.SetMainExecutable:output_type -> google.protobuf.Empty + 63, // 137: grpc.Bridge.Login:output_type -> google.protobuf.Empty + 63, // 138: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty + 63, // 139: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty + 63, // 140: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty + 63, // 141: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty + 63, // 142: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty + 63, // 143: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty + 64, // 144: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue + 64, // 145: grpc.Bridge.IsCacheOnDiskEnabled:output_type -> google.protobuf.BoolValue + 65, // 146: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue + 63, // 147: grpc.Bridge.ChangeLocalCache:output_type -> google.protobuf.Empty + 63, // 148: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty + 64, // 149: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue + 63, // 150: grpc.Bridge.SetUseSslForSmtp:output_type -> google.protobuf.Empty + 64, // 151: grpc.Bridge.UseSslForSmtp:output_type -> google.protobuf.BoolValue + 65, // 152: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue + 66, // 153: grpc.Bridge.ImapPort:output_type -> google.protobuf.Int32Value + 66, // 154: grpc.Bridge.SmtpPort:output_type -> google.protobuf.Int32Value + 63, // 155: grpc.Bridge.ChangePorts:output_type -> google.protobuf.Empty + 64, // 156: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue + 11, // 157: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse + 63, // 158: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty + 65, // 159: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue + 14, // 160: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse + 12, // 161: grpc.Bridge.GetUser:output_type -> grpc.User + 63, // 162: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty + 63, // 163: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty + 63, // 164: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty + 63, // 165: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty + 17, // 166: grpc.Bridge.RunEventStream:output_type -> grpc.StreamEvent + 63, // 167: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty + 110, // [110:168] is the sub-list for method output_type + 52, // [52:110] is the sub-list for method input_type + 52, // [52:52] is the sub-list for extension type_name + 52, // [52:52] is the sub-list for extension extendee + 0, // [0:52] is the sub-list for field type_name } func init() { file_bridge_proto_init() } @@ -5053,7 +5113,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheEvent); i { + switch v := v.(*UpdateVersionChanged); i { case 0: return &v.state case 1: @@ -5065,7 +5125,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheErrorEvent); i { + switch v := v.(*CacheEvent); i { case 0: return &v.state case 1: @@ -5077,7 +5137,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheLocationChangeSuccessEvent); i { + switch v := v.(*CacheErrorEvent); i { case 0: return &v.state case 1: @@ -5089,7 +5149,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeLocalCacheFinishedEvent); i { + switch v := v.(*CacheLocationChangeSuccessEvent); i { case 0: return &v.state case 1: @@ -5101,7 +5161,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsCacheOnDiskEnabledChanged); i { + switch v := v.(*ChangeLocalCacheFinishedEvent); i { case 0: return &v.state case 1: @@ -5113,7 +5173,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskCachePathChanged); i { + switch v := v.(*IsCacheOnDiskEnabledChanged); i { case 0: return &v.state case 1: @@ -5125,7 +5185,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailSettingsEvent); i { + switch v := v.(*DiskCachePathChanged); i { case 0: return &v.state case 1: @@ -5137,7 +5197,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailSettingsErrorEvent); i { + switch v := v.(*MailSettingsEvent); i { case 0: return &v.state case 1: @@ -5149,7 +5209,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UseSslForSmtpFinishedEvent); i { + switch v := v.(*MailSettingsErrorEvent); i { case 0: return &v.state case 1: @@ -5161,7 +5221,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePortsFinishedEvent); i { + switch v := v.(*UseSslForSmtpFinishedEvent); i { case 0: return &v.state case 1: @@ -5173,7 +5233,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeychainEvent); i { + switch v := v.(*ChangePortsFinishedEvent); i { case 0: return &v.state case 1: @@ -5185,7 +5245,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeKeychainFinishedEvent); i { + switch v := v.(*KeychainEvent); i { case 0: return &v.state case 1: @@ -5197,7 +5257,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HasNoKeychainEvent); i { + switch v := v.(*ChangeKeychainFinishedEvent); i { case 0: return &v.state case 1: @@ -5209,7 +5269,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RebuildKeychainEvent); i { + switch v := v.(*HasNoKeychainEvent); i { case 0: return &v.state case 1: @@ -5221,7 +5281,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailEvent); i { + switch v := v.(*RebuildKeychainEvent); i { case 0: return &v.state case 1: @@ -5233,7 +5293,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoActiveKeyForRecipientEvent); i { + switch v := v.(*MailEvent); i { case 0: return &v.state case 1: @@ -5245,7 +5305,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressChangedEvent); i { + switch v := v.(*NoActiveKeyForRecipientEvent); i { case 0: return &v.state case 1: @@ -5257,7 +5317,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressChangedLogoutEvent); i { + switch v := v.(*AddressChangedEvent); i { case 0: return &v.state case 1: @@ -5269,7 +5329,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiCertIssueEvent); i { + switch v := v.(*AddressChangedLogoutEvent); i { case 0: return &v.state case 1: @@ -5281,7 +5341,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserEvent); i { + switch v := v.(*ApiCertIssueEvent); i { case 0: return &v.state case 1: @@ -5293,7 +5353,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ToggleSplitModeFinishedEvent); i { + switch v := v.(*UserEvent); i { case 0: return &v.state case 1: @@ -5305,7 +5365,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDisconnectedEvent); i { + switch v := v.(*ToggleSplitModeFinishedEvent); i { case 0: return &v.state case 1: @@ -5317,6 +5377,18 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserDisconnectedEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_bridge_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserChangedEvent); i { case 0: return &v.state @@ -5363,31 +5435,32 @@ func file_bridge_proto_init() { (*UpdateEvent_SilentRestartNeeded)(nil), (*UpdateEvent_IsLatestVersion)(nil), (*UpdateEvent_CheckFinished)(nil), + (*UpdateEvent_VersionChanged)(nil), } - file_bridge_proto_msgTypes[34].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[35].OneofWrappers = []interface{}{ (*CacheEvent_Error)(nil), (*CacheEvent_LocationChangedSuccess)(nil), (*CacheEvent_ChangeLocalCacheFinished)(nil), (*CacheEvent_IsCacheOnDiskEnabledChanged)(nil), (*CacheEvent_DiskCachePathChanged)(nil), } - file_bridge_proto_msgTypes[40].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[41].OneofWrappers = []interface{}{ (*MailSettingsEvent_Error)(nil), (*MailSettingsEvent_UseSslForSmtpFinished)(nil), (*MailSettingsEvent_ChangePortsFinished)(nil), } - file_bridge_proto_msgTypes[44].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[45].OneofWrappers = []interface{}{ (*KeychainEvent_ChangeKeychainFinished)(nil), (*KeychainEvent_HasNoKeychain)(nil), (*KeychainEvent_RebuildKeychain)(nil), } - file_bridge_proto_msgTypes[48].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[49].OneofWrappers = []interface{}{ (*MailEvent_NoActiveKeyForRecipientEvent)(nil), (*MailEvent_AddressChanged)(nil), (*MailEvent_AddressChangedLogout)(nil), (*MailEvent_ApiCertIssue)(nil), } - file_bridge_proto_msgTypes[53].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[54].OneofWrappers = []interface{}{ (*UserEvent_ToggleSplitModeFinished)(nil), (*UserEvent_UserDisconnected)(nil), (*UserEvent_UserChanged)(nil), @@ -5398,7 +5471,7 @@ func file_bridge_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bridge_proto_rawDesc, NumEnums: 5, - NumMessages: 57, + NumMessages: 58, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/frontend/grpc/bridge.proto b/internal/frontend/grpc/bridge.proto index 74924930..1649bda8 100644 --- a/internal/frontend/grpc/bridge.proto +++ b/internal/frontend/grpc/bridge.proto @@ -305,6 +305,7 @@ message UpdateEvent { UpdateSilentRestartNeeded silentRestartNeeded = 5; UpdateIsLatestVersion isLatestVersion = 6; UpdateCheckFinished checkFinished = 7; + UpdateVersionChanged versionChanged = 8; } } @@ -334,6 +335,8 @@ message UpdateIsLatestVersion {} message UpdateCheckFinished {} +message UpdateVersionChanged {} + //********************************************************** // Cache on disk related events //********************************************************** @@ -400,9 +403,9 @@ message ChangePortsFinishedEvent {} //********************************************************** message KeychainEvent { oneof event { - ChangeKeychainFinishedEvent changeKeychainFinished = 1; - HasNoKeychainEvent hasNoKeychain = 2; - RebuildKeychainEvent rebuildKeychain = 3; + ChangeKeychainFinishedEvent changeKeychainFinished = 1; + HasNoKeychainEvent hasNoKeychain = 2; + RebuildKeychainEvent rebuildKeychain = 3; } } @@ -415,10 +418,10 @@ message RebuildKeychainEvent {} //********************************************************** message MailEvent { oneof event { - NoActiveKeyForRecipientEvent noActiveKeyForRecipientEvent = 1; - AddressChangedEvent addressChanged = 2; - AddressChangedLogoutEvent addressChangedLogout = 3; - ApiCertIssueEvent apiCertIssue = 6; + NoActiveKeyForRecipientEvent noActiveKeyForRecipientEvent = 1; + AddressChangedEvent addressChanged = 2; + AddressChangedLogoutEvent addressChangedLogout = 3; + ApiCertIssueEvent apiCertIssue = 6; } } diff --git a/internal/frontend/grpc/event_factory.go b/internal/frontend/grpc/event_factory.go index 6b9239c9..fe3bc54b 100644 --- a/internal/frontend/grpc/event_factory.go +++ b/internal/frontend/grpc/event_factory.go @@ -93,6 +93,10 @@ func NewUpdateCheckFinishedEvent() *StreamEvent { return updateEvent(&UpdateEvent{Event: &UpdateEvent_CheckFinished{CheckFinished: &UpdateCheckFinished{}}}) } +func NewUpdateVersionChangedEvent() *StreamEvent { + return updateEvent(&UpdateEvent{Event: &UpdateEvent_VersionChanged{VersionChanged: &UpdateVersionChanged{}}}) +} + func NewCacheErrorEvent(err CacheErrorType) *StreamEvent { return cacheEvent(&CacheEvent{Event: &CacheEvent_Error{Error: &CacheErrorEvent{Type: err}}}) } diff --git a/internal/frontend/grpc/service.go b/internal/frontend/grpc/service.go index bc927d14..88417155 100644 --- a/internal/frontend/grpc/service.go +++ b/internal/frontend/grpc/service.go @@ -163,6 +163,7 @@ func (s *Service) NotifyManualUpdate(version updater.VersionInfo, canInstall boo func (s *Service) SetVersion(update updater.VersionInfo) { s.newVersionInfo = update + _ = s.SendEvent(NewUpdateVersionChangedEvent()) } func (s *Service) NotifySilentUpdateInstalled() {